diff --git a/include/libcper/Cper.h b/include/libcper/Cper.h
index 82f68c1..0dc3c12 100644
--- a/include/libcper/Cper.h
+++ b/include/libcper/Cper.h
@@ -77,82 +77,60 @@
 /// GUID value indicating the record association with an error event notification type.
 ///@{
 #define EFI_EVENT_NOTIFICATION_TYEP_CMC_GUID                                   \
-	{                                                                      \
-		0x2DCE8BB1, 0xBDD7, 0x450e,                                    \
-		{                                                              \
-			0xB9, 0xAD, 0x9C, 0xF4, 0xEB, 0xD4, 0xF8, 0x90         \
-		}                                                              \
-	}
+	{ 0x2DCE8BB1,                                                          \
+	  0xBDD7,                                                              \
+	  0x450e,                                                              \
+	  { 0xB9, 0xAD, 0x9C, 0xF4, 0xEB, 0xD4, 0xF8, 0x90 } }
 #define EFI_EVENT_NOTIFICATION_TYEP_CPE_GUID                                   \
-	{                                                                      \
-		0x4E292F96, 0xD843, 0x4a55,                                    \
-		{                                                              \
-			0xA8, 0xC2, 0xD4, 0x81, 0xF2, 0x7E, 0xBE, 0xEE         \
-		}                                                              \
-	}
+	{ 0x4E292F96,                                                          \
+	  0xD843,                                                              \
+	  0x4a55,                                                              \
+	  { 0xA8, 0xC2, 0xD4, 0x81, 0xF2, 0x7E, 0xBE, 0xEE } }
 #define EFI_EVENT_NOTIFICATION_TYEP_MCE_GUID                                   \
-	{                                                                      \
-		0xE8F56FFE, 0x919C, 0x4cc5,                                    \
-		{                                                              \
-			0xBA, 0x88, 0x65, 0xAB, 0xE1, 0x49, 0x13, 0xBB         \
-		}                                                              \
-	}
+	{ 0xE8F56FFE,                                                          \
+	  0x919C,                                                              \
+	  0x4cc5,                                                              \
+	  { 0xBA, 0x88, 0x65, 0xAB, 0xE1, 0x49, 0x13, 0xBB } }
 #define EFI_EVENT_NOTIFICATION_TYEP_PCIE_GUID                                  \
-	{                                                                      \
-		0xCF93C01F, 0x1A16, 0x4dfc,                                    \
-		{                                                              \
-			0xB8, 0xBC, 0x9C, 0x4D, 0xAF, 0x67, 0xC1, 0x04         \
-		}                                                              \
-	}
+	{ 0xCF93C01F,                                                          \
+	  0x1A16,                                                              \
+	  0x4dfc,                                                              \
+	  { 0xB8, 0xBC, 0x9C, 0x4D, 0xAF, 0x67, 0xC1, 0x04 } }
 #define EFI_EVENT_NOTIFICATION_TYEP_INIT_GUID                                  \
-	{                                                                      \
-		0xCC5263E8, 0x9308, 0x454a,                                    \
-		{                                                              \
-			0x89, 0xD0, 0x34, 0x0B, 0xD3, 0x9B, 0xC9, 0x8E         \
-		}                                                              \
-	}
+	{ 0xCC5263E8,                                                          \
+	  0x9308,                                                              \
+	  0x454a,                                                              \
+	  { 0x89, 0xD0, 0x34, 0x0B, 0xD3, 0x9B, 0xC9, 0x8E } }
 #define EFI_EVENT_NOTIFICATION_TYEP_NMI_GUID                                   \
-	{                                                                      \
-		0x5BAD89FF, 0xB7E6, 0x42c9,                                    \
-		{                                                              \
-			0x81, 0x4A, 0xCF, 0x24, 0x85, 0xD6, 0xE9, 0x8A         \
-		}                                                              \
-	}
+	{ 0x5BAD89FF,                                                          \
+	  0xB7E6,                                                              \
+	  0x42c9,                                                              \
+	  { 0x81, 0x4A, 0xCF, 0x24, 0x85, 0xD6, 0xE9, 0x8A } }
 #define EFI_EVENT_NOTIFICATION_TYEP_BOOT_GUID                                  \
-	{                                                                      \
-		0x3D61A466, 0xAB40, 0x409a,                                    \
-		{                                                              \
-			0xA6, 0x98, 0xF3, 0x62, 0xD4, 0x64, 0xB3, 0x8F         \
-		}                                                              \
-	}
+	{ 0x3D61A466,                                                          \
+	  0xAB40,                                                              \
+	  0x409a,                                                              \
+	  { 0xA6, 0x98, 0xF3, 0x62, 0xD4, 0x64, 0xB3, 0x8F } }
 #define EFI_EVENT_NOTIFICATION_TYEP_DMAR_GUID                                  \
-	{                                                                      \
-		0x667DD791, 0xC6B3, 0x4c27,                                    \
-		{                                                              \
-			0x8A, 0x6B, 0x0F, 0x8E, 0x72, 0x2D, 0xEB, 0x41         \
-		}                                                              \
-	}
+	{ 0x667DD791,                                                          \
+	  0xC6B3,                                                              \
+	  0x4c27,                                                              \
+	  { 0x8A, 0x6B, 0x0F, 0x8E, 0x72, 0x2D, 0xEB, 0x41 } }
 #define EFI_EVENT_NOTIFICATION_TYPE_DMAR_SEA                                   \
-	{                                                                      \
-		0x9A78788A, 0xBBE8, 0x11E4,                                    \
-		{                                                              \
-			0x80, 0x9E, 0x67, 0x61, 0x1E, 0x5D, 0x46, 0xB0         \
-		}                                                              \
-	}
+	{ 0x9A78788A,                                                          \
+	  0xBBE8,                                                              \
+	  0x11E4,                                                              \
+	  { 0x80, 0x9E, 0x67, 0x61, 0x1E, 0x5D, 0x46, 0xB0 } }
 #define EFI_EVENT_NOTIFICATION_TYPE_DMAR_SEI                                   \
-	{                                                                      \
-		0x5C284C81, 0xB0AE, 0x4E87,                                    \
-		{                                                              \
-			0xA3, 0x22, 0xB0, 0x4C, 0x85, 0x62, 0x43, 0x23         \
-		}                                                              \
-	}
+	{ 0x5C284C81,                                                          \
+	  0xB0AE,                                                              \
+	  0x4E87,                                                              \
+	  { 0xA3, 0x22, 0xB0, 0x4C, 0x85, 0x62, 0x43, 0x23 } }
 #define EFI_EVENT_NOTIFICATION_TYPE_DMAR_PEI                                   \
-	{                                                                      \
-		0x09A9D5AC, 0x5204, 0x4214,                                    \
-		{                                                              \
-			0x96, 0xE5, 0x94, 0x99, 0x2E, 0x75, 0x2B, 0xCD         \
-		}                                                              \
-	}
+	{ 0x09A9D5AC,                                                          \
+	  0x5204,                                                              \
+	  0x4214,                                                              \
+	  { 0x96, 0xE5, 0x94, 0x99, 0x2E, 0x75, 0x2B, 0xCD } }
 ///@}
 
 ///
@@ -215,103 +193,75 @@
 /// Error Sectition Type GUIDs in Error Section Descriptor
 ///@{
 #define EFI_ERROR_SECTION_PROCESSOR_GENERIC_GUID                               \
-	{                                                                      \
-		0x9876ccad, 0x47b4, 0x4bdb,                                    \
-		{                                                              \
-			0xb6, 0x5e, 0x16, 0xf1, 0x93, 0xc4, 0xf3, 0xdb         \
-		}                                                              \
-	}
+	{ 0x9876ccad,                                                          \
+	  0x47b4,                                                              \
+	  0x4bdb,                                                              \
+	  { 0xb6, 0x5e, 0x16, 0xf1, 0x93, 0xc4, 0xf3, 0xdb } }
 #define EFI_ERROR_SECTION_PROCESSOR_SPECIFIC_GUID                              \
-	{                                                                      \
-		0xdc3ea0b0, 0xa144, 0x4797,                                    \
-		{                                                              \
-			0xb9, 0x5b, 0x53, 0xfa, 0x24, 0x2b, 0x6e, 0x1d         \
-		}                                                              \
-	}
+	{ 0xdc3ea0b0,                                                          \
+	  0xa144,                                                              \
+	  0x4797,                                                              \
+	  { 0xb9, 0x5b, 0x53, 0xfa, 0x24, 0x2b, 0x6e, 0x1d } }
 #define EFI_ERROR_SECTION_PROCESSOR_SPECIFIC_IA32X64_GUID                      \
-	{                                                                      \
-		0xdc3ea0b0, 0xa144, 0x4797,                                    \
-		{                                                              \
-			0xb9, 0x5b, 0x53, 0xfa, 0x24, 0x2b, 0x6e, 0x1d         \
-		}                                                              \
-	}
+	{ 0xdc3ea0b0,                                                          \
+	  0xa144,                                                              \
+	  0x4797,                                                              \
+	  { 0xb9, 0x5b, 0x53, 0xfa, 0x24, 0x2b, 0x6e, 0x1d } }
 #define EFI_ERROR_SECTION_PROCESSOR_SPECIFIC_ARM_GUID                          \
-	{                                                                      \
-		0xe19e3d16, 0xbc11, 0x11e4,                                    \
-		{                                                              \
-			0x9c, 0xaa, 0xc2, 0x05, 0x1d, 0x5d, 0x46, 0xb0         \
-		}                                                              \
-	}
+	{ 0xe19e3d16,                                                          \
+	  0xbc11,                                                              \
+	  0x11e4,                                                              \
+	  { 0x9c, 0xaa, 0xc2, 0x05, 0x1d, 0x5d, 0x46, 0xb0 } }
 #define EFI_ERROR_SECTION_PLATFORM_MEMORY_GUID                                 \
-	{                                                                      \
-		0xa5bc1114, 0x6f64, 0x4ede,                                    \
-		{                                                              \
-			0xb8, 0x63, 0x3e, 0x83, 0xed, 0x7c, 0x83, 0xb1         \
-		}                                                              \
-	}
+	{ 0xa5bc1114,                                                          \
+	  0x6f64,                                                              \
+	  0x4ede,                                                              \
+	  { 0xb8, 0x63, 0x3e, 0x83, 0xed, 0x7c, 0x83, 0xb1 } }
 #define EFI_ERROR_SECTION_PLATFORM_MEMORY2_GUID                                \
-	{                                                                      \
-		0x61EC04FC, 0x48E6, 0xD813,                                    \
-		{                                                              \
-			0x25, 0xC9, 0x8D, 0xAA, 0x44, 0x75, 0x0B, 0x12         \
-		}                                                              \
-	}
+	{ 0x61EC04FC,                                                          \
+	  0x48E6,                                                              \
+	  0xD813,                                                              \
+	  { 0x25, 0xC9, 0x8D, 0xAA, 0x44, 0x75, 0x0B, 0x12 } }
 #define EFI_ERROR_SECTION_PCIE_GUID                                            \
-	{                                                                      \
-		0xd995e954, 0xbbc1, 0x430f,                                    \
-		{                                                              \
-			0xad, 0x91, 0xb4, 0x4d, 0xcb, 0x3c, 0x6f, 0x35         \
-		}                                                              \
-	}
+	{ 0xd995e954,                                                          \
+	  0xbbc1,                                                              \
+	  0x430f,                                                              \
+	  { 0xad, 0x91, 0xb4, 0x4d, 0xcb, 0x3c, 0x6f, 0x35 } }
 #define EFI_ERROR_SECTION_FW_ERROR_RECORD_GUID                                 \
-	{                                                                      \
-		0x81212a96, 0x09ed, 0x4996,                                    \
-		{                                                              \
-			0x94, 0x71, 0x8d, 0x72, 0x9c, 0x8e, 0x69, 0xed         \
-		}                                                              \
-	}
+	{ 0x81212a96,                                                          \
+	  0x09ed,                                                              \
+	  0x4996,                                                              \
+	  { 0x94, 0x71, 0x8d, 0x72, 0x9c, 0x8e, 0x69, 0xed } }
 #define EFI_ERROR_SECTION_PCI_PCIX_BUS_GUID                                    \
-	{                                                                      \
-		0xc5753963, 0x3b84, 0x4095,                                    \
-		{                                                              \
-			0xbf, 0x78, 0xed, 0xda, 0xd3, 0xf9, 0xc9, 0xdd         \
-		}                                                              \
-	}
+	{ 0xc5753963,                                                          \
+	  0x3b84,                                                              \
+	  0x4095,                                                              \
+	  { 0xbf, 0x78, 0xed, 0xda, 0xd3, 0xf9, 0xc9, 0xdd } }
 #define EFI_ERROR_SECTION_PCI_DEVICE_GUID                                      \
-	{                                                                      \
-		0xeb5e4685, 0xca66, 0x4769,                                    \
-		{                                                              \
-			0xb6, 0xa2, 0x26, 0x06, 0x8b, 0x00, 0x13, 0x26         \
-		}                                                              \
-	}
+	{ 0xeb5e4685,                                                          \
+	  0xca66,                                                              \
+	  0x4769,                                                              \
+	  { 0xb6, 0xa2, 0x26, 0x06, 0x8b, 0x00, 0x13, 0x26 } }
 #define EFI_ERROR_SECTION_DMAR_GENERIC_GUID                                    \
-	{                                                                      \
-		0x5b51fef7, 0xc79d, 0x4434,                                    \
-		{                                                              \
-			0x8f, 0x1b, 0xaa, 0x62, 0xde, 0x3e, 0x2c, 0x64         \
-		}                                                              \
-	}
+	{ 0x5b51fef7,                                                          \
+	  0xc79d,                                                              \
+	  0x4434,                                                              \
+	  { 0x8f, 0x1b, 0xaa, 0x62, 0xde, 0x3e, 0x2c, 0x64 } }
 #define EFI_ERROR_SECTION_DIRECTED_IO_DMAR_GUID                                \
-	{                                                                      \
-		0x71761d37, 0x32b2, 0x45cd,                                    \
-		{                                                              \
-			0xa7, 0xd0, 0xb0, 0xfe, 0xdd, 0x93, 0xe8, 0xcf         \
-		}                                                              \
-	}
+	{ 0x71761d37,                                                          \
+	  0x32b2,                                                              \
+	  0x45cd,                                                              \
+	  { 0xa7, 0xd0, 0xb0, 0xfe, 0xdd, 0x93, 0xe8, 0xcf } }
 #define EFI_ERROR_SECTION_IOMMU_DMAR_GUID                                      \
-	{                                                                      \
-		0x036f84e1, 0x7f37, 0x428c,                                    \
-		{                                                              \
-			0xa7, 0x9e, 0x57, 0x5f, 0xdf, 0xaa, 0x84, 0xec         \
-		}                                                              \
-	}
+	{ 0x036f84e1,                                                          \
+	  0x7f37,                                                              \
+	  0x428c,                                                              \
+	  { 0xa7, 0x9e, 0x57, 0x5f, 0xdf, 0xaa, 0x84, 0xec } }
 #define EFI_ERROR_SECTION_AMPERE_SPECIFIC_GUID                                 \
-	{                                                                      \
-		0x2826cc9f, 0x448c, 0x4c2b,                                    \
-		{                                                              \
-			0x86, 0xb6, 0xa9, 0x53, 0x94, 0xb7, 0xef, 0x33         \
-		}                                                              \
-	}
+	{ 0x2826cc9f,                                                          \
+	  0x448c,                                                              \
+	  0x4c2b,                                                              \
+	  { 0x86, 0xb6, 0xa9, 0x53, 0x94, 0xb7, 0xef, 0x33 } }
 ///@}
 
 ///
@@ -428,33 +378,25 @@
 /// in IA32/X64 Processor Error Information Structure.
 ///@{
 #define EFI_IA32_X64_ERROR_TYPE_CACHE_CHECK_GUID                               \
-	{                                                                      \
-		0xA55701F5, 0xE3EF, 0x43de,                                    \
-		{                                                              \
-			0xAC, 0x72, 0x24, 0x9B, 0x57, 0x3F, 0xAD, 0x2C         \
-		}                                                              \
-	}
+	{ 0xA55701F5,                                                          \
+	  0xE3EF,                                                              \
+	  0x43de,                                                              \
+	  { 0xAC, 0x72, 0x24, 0x9B, 0x57, 0x3F, 0xAD, 0x2C } }
 #define EFI_IA32_X64_ERROR_TYPE_TLB_CHECK_GUID                                 \
-	{                                                                      \
-		0xFC06B535, 0x5E1F, 0x4562,                                    \
-		{                                                              \
-			0x9F, 0x25, 0x0A, 0x3B, 0x9A, 0xDB, 0x63, 0xC3         \
-		}                                                              \
-	}
+	{ 0xFC06B535,                                                          \
+	  0x5E1F,                                                              \
+	  0x4562,                                                              \
+	  { 0x9F, 0x25, 0x0A, 0x3B, 0x9A, 0xDB, 0x63, 0xC3 } }
 #define EFI_IA32_X64_ERROR_TYPE_BUS_CHECK_GUID                                 \
-	{                                                                      \
-		0x1CF3F8B3, 0xC5B1, 0x49a2,                                    \
-		{                                                              \
-			0xAA, 0x59, 0x5E, 0xEF, 0x92, 0xFF, 0xA6, 0x3C         \
-		}                                                              \
-	}
+	{ 0x1CF3F8B3,                                                          \
+	  0xC5B1,                                                              \
+	  0x49a2,                                                              \
+	  { 0xAA, 0x59, 0x5E, 0xEF, 0x92, 0xFF, 0xA6, 0x3C } }
 #define EFI_IA32_X64_ERROR_TYPE_MS_CHECK_GUID                                  \
-	{                                                                      \
-		0x48AB7F57, 0xDC34, 0x4f6c,                                    \
-		{                                                              \
-			0xA7, 0xD3, 0xB0, 0xB5, 0xB0, 0xA7, 0x43, 0x14         \
-		}                                                              \
-	}
+	{ 0x48AB7F57,                                                          \
+	  0xDC34,                                                              \
+	  0x4f6c,                                                              \
+	  { 0xA7, 0xD3, 0xB0, 0xB5, 0xB0, 0xA7, 0x43, 0x14 } }
 extern EFI_GUID gEfiIa32x64ErrorTypeCacheCheckGuid;
 extern EFI_GUID gEfiIa32x64ErrorTypeTlbCheckGuid;
 extern EFI_GUID gEfiIa32x64ErrorTypeBusCheckGuid;
@@ -863,40 +805,36 @@
 /// CPER Generic Error Codes
 ///
 #define CPER_GENERIC_ERROR_TYPES_KEYS                                          \
-	(int[])                                                                \
-	{                                                                      \
-		1, 16, 4, 5, 6, 7, 8, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25,   \
-			26                                                     \
-	}
+	(                                                                      \
+		int[]){ 1,  16, 4,  5,	6,  7,	8,  9,	17,                    \
+			18, 19, 20, 21, 22, 23, 24, 25, 26 }
 #define CPER_GENERIC_ERROR_TYPES_VALUES                                        \
-	(const char *[])                                                       \
-	{                                                                      \
-		"ERR_INTERNAL", "ERR_BUS", "ERR_MEM", "ERR_TLB", "ERR_CACHE",  \
-			"ERR_FUNCTION", "ERR_SELFTEST", "ERR_FLOW", "ERR_MAP", \
-			"ERR_IMPROPER", "ERR_UNIMPL", "ERR_LOL",               \
-			"ERR_RESPONSE", "ERR_PARITY", "ERR_PROTOCOL",          \
-			"ERR_ERROR", "ERR_TIMEOUT", "ERR_POISONED"             \
-	}
-#define CPER_GENERIC_ERROR_TYPES_DESCRIPTIONS                                               \
-	(const char *[])                                                                    \
-	{                                                                                   \
-		"Error detected internal to the component.",                                \
-			"Error detected in the bus.",                                       \
-			"Storage error in memory (DRAM).",                                  \
-			"Storage error in TLB.", "Storage error in cache.",                 \
-			"Error in one or more functional units.",                           \
-			"Component failed self test.",                                      \
-			"Overflow or underflow of internal queue.",                         \
-			"Virtual address not found on IO-TLB or IO-PDIR.",                  \
-			"Improper access error.",                                           \
-			"Access to a memory address which is not mapped to any component.", \
-			"Loss of Lockstep error.",                                          \
-			"Response not associated with a request.",                          \
-			"Bus parity error (must also set the A, C, or D bits).",            \
-			"Detection of a protocol error.",                                   \
-			"Detection of a PATH_ERROR.",                                       \
-			"Bus operation timeout.",                                           \
-			"A read was issued to data that has been poisoned."                 \
+	(const char *[]){ "ERR_INTERNAL", "ERR_BUS",	 "ERR_MEM",            \
+			  "ERR_TLB",	  "ERR_CACHE",	 "ERR_FUNCTION",       \
+			  "ERR_SELFTEST", "ERR_FLOW",	 "ERR_MAP",            \
+			  "ERR_IMPROPER", "ERR_UNIMPL",	 "ERR_LOL",            \
+			  "ERR_RESPONSE", "ERR_PARITY",	 "ERR_PROTOCOL",       \
+			  "ERR_ERROR",	  "ERR_TIMEOUT", "ERR_POISONED" }
+#define CPER_GENERIC_ERROR_TYPES_DESCRIPTIONS                                       \
+	(const char *[]){                                                           \
+		"Error detected internal to the component.",                        \
+		"Error detected in the bus.",                                       \
+		"Storage error in memory (DRAM).",                                  \
+		"Storage error in TLB.",                                            \
+		"Storage error in cache.",                                          \
+		"Error in one or more functional units.",                           \
+		"Component failed self test.",                                      \
+		"Overflow or underflow of internal queue.",                         \
+		"Virtual address not found on IO-TLB or IO-PDIR.",                  \
+		"Improper access error.",                                           \
+		"Access to a memory address which is not mapped to any component.", \
+		"Loss of Lockstep error.",                                          \
+		"Response not associated with a request.",                          \
+		"Bus parity error (must also set the A, C, or D bits).",            \
+		"Detection of a protocol error.",                                   \
+		"Detection of a PATH_ERROR.",                                       \
+		"Bus operation timeout.",                                           \
+		"A read was issued to data that has been poisoned."                 \
 	}
 
 ///
diff --git a/include/libcper/cper-parse.h b/include/libcper/cper-parse.h
index 4b966f1..123c83e 100644
--- a/include/libcper/cper-parse.h
+++ b/include/libcper/cper-parse.h
@@ -9,33 +9,24 @@
 #include <stdio.h>
 
 #define CPER_HEADER_VALID_BITFIELD_NAMES                                       \
-	(const char *[])                                                       \
-	{                                                                      \
-		"platformIDValid", "timestampValid", "partitionIDValid"        \
-	}
+	(const char *[]){ "platformIDValid", "timestampValid",                 \
+			  "partitionIDValid" }
 #define CPER_SECTION_DESCRIPTOR_VALID_BITFIELD_NAMES                           \
-	(const char *[])                                                       \
-	{                                                                      \
-		"fruIDValid", "fruStringValid"                                 \
-	}
+	(const char *[]){ "fruIDValid", "fruStringValid" }
 #define CPER_SECTION_DESCRIPTOR_FLAGS_BITFIELD_NAMES                           \
-	(const char *[])                                                       \
-	{                                                                      \
-		"primary", "containmentWarning", "reset",                      \
-			"errorThresholdExceeded", "resourceNotAccessible",     \
-			"latentError", "propagated", "overflow"                \
-	}
-#define CPER_HEADER_FLAG_TYPES_KEYS                                            \
-	(int[])                                                                \
-	{                                                                      \
-		1, 2, 4                                                        \
-	}
+	(const char *[]){ "primary",                                           \
+			  "containmentWarning",                                \
+			  "reset",                                             \
+			  "errorThresholdExceeded",                            \
+			  "resourceNotAccessible",                             \
+			  "latentError",                                       \
+			  "propagated",                                        \
+			  "overflow" }
+#define CPER_HEADER_FLAG_TYPES_KEYS (int[]){ 1, 2, 4 }
 #define CPER_HEADER_FLAG_TYPES_VALUES                                          \
-	(const char *[])                                                       \
-	{                                                                      \
-		"HW_ERROR_FLAGS_RECOVERED", "HW_ERROR_FLAGS_PREVERR",          \
-			"HW_ERROR_FLAGS_SIMULATED"                             \
-	}
+	(const char *[]){ "HW_ERROR_FLAGS_RECOVERED",                          \
+			  "HW_ERROR_FLAGS_PREVERR",                            \
+			  "HW_ERROR_FLAGS_SIMULATED" }
 
 json_object *cper_to_ir(FILE *cper_file);
 json_object *cper_single_section_to_ir(FILE *cper_section_file);
diff --git a/include/libcper/generator/gen-utils.h b/include/libcper/generator/gen-utils.h
index 8588cc1..7a015fa 100644
--- a/include/libcper/generator/gen-utils.h
+++ b/include/libcper/generator/gen-utils.h
@@ -10,11 +10,9 @@
 #include <libcper/common-utils.h>
 
 #define CPER_ERROR_TYPES_KEYS                                                  \
-	(int[])                                                                \
-	{                                                                      \
-		1, 16, 4, 5, 6, 7, 8, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25,   \
-			26                                                     \
-	}
+	(                                                                      \
+		int[]){ 1,  16, 4,  5,	6,  7,	8,  9,	17,                    \
+			18, 19, 20, 21, 22, 23, 24, 25, 26 }
 
 size_t generate_random_section(void **location, size_t size);
 UINT8 *generate_random_bytes(size_t size);
diff --git a/include/libcper/sections/cper-section-arm.h b/include/libcper/sections/cper-section-arm.h
index 173d0bc..8242f6c 100644
--- a/include/libcper/sections/cper-section-arm.h
+++ b/include/libcper/sections/cper-section-arm.h
@@ -11,186 +11,122 @@
 #define ARM_SOCK_MASK 0xFF00000000
 
 #define ARM_ERROR_VALID_BITFIELD_NAMES                                         \
-	(const char *[])                                                       \
-	{                                                                      \
-		"mpidrValid", "errorAffinityLevelValid", "runningStateValid",  \
-			"vendorSpecificInfoValid"                              \
-	}
+	(const char *[]){ "mpidrValid", "errorAffinityLevelValid",             \
+			  "runningStateValid", "vendorSpecificInfoValid" }
 #define ARM_ERROR_INFO_ENTRY_VALID_BITFIELD_NAMES                              \
-	(const char *[])                                                       \
-	{                                                                      \
-		"multipleErrorValid", "flagsValid", "errorInformationValid",   \
-			"virtualFaultAddressValid",                            \
-			"physicalFaultAddressValid"                            \
-	}
+	(const char *[]){ "multipleErrorValid", "flagsValid",                  \
+			  "errorInformationValid", "virtualFaultAddressValid", \
+			  "physicalFaultAddressValid" }
 #define ARM_ERROR_INFO_ENTRY_FLAGS_NAMES                                       \
-	(const char *[])                                                       \
-	{                                                                      \
-		"firstErrorCaptured", "lastErrorCaptured", "propagated",       \
-			"overflow"                                             \
-	}
+	(const char *[]){ "firstErrorCaptured", "lastErrorCaptured",           \
+			  "propagated", "overflow" }
 #define ARM_CACHE_TLB_ERROR_VALID_BITFIELD_NAMES                               \
-	(const char *[])                                                       \
-	{                                                                      \
-		"transactionTypeValid", "operationValid", "levelValid",        \
-			"processorContextCorruptValid", "correctedValid",      \
-			"precisePCValid", "restartablePCValid"                 \
+	(const char *[]){                                                      \
+		"transactionTypeValid", "operationValid",                      \
+		"levelValid",		"processorContextCorruptValid",        \
+		"correctedValid",	"precisePCValid",                      \
+		"restartablePCValid"                                           \
 	}
 #define ARM_BUS_ERROR_VALID_BITFIELD_NAMES                                     \
-	(const char *[])                                                       \
-	{                                                                      \
-		"transactionTypeValid", "operationValid", "levelValid",        \
-			"processorContextCorruptValid", "correctedValid",      \
-			"precisePCValid", "restartablePCValid",                \
-			"participationTypeValid", "timedOutValid",             \
-			"addressSpaceValid", "memoryAttributesValid",          \
-			"accessModeValid"                                      \
-	}
-#define ARM_ERROR_TRANSACTION_TYPES_KEYS                                       \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2                                                        \
-	}
+	(const char *[]){ "transactionTypeValid",                              \
+			  "operationValid",                                    \
+			  "levelValid",                                        \
+			  "processorContextCorruptValid",                      \
+			  "correctedValid",                                    \
+			  "precisePCValid",                                    \
+			  "restartablePCValid",                                \
+			  "participationTypeValid",                            \
+			  "timedOutValid",                                     \
+			  "addressSpaceValid",                                 \
+			  "memoryAttributesValid",                             \
+			  "accessModeValid" }
+#define ARM_ERROR_TRANSACTION_TYPES_KEYS (int[]){ 0, 1, 2 }
 #define ARM_ERROR_TRANSACTION_TYPES_VALUES                                     \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Instruction", "Data Access", "Generic"                        \
-	}
-#define ARM_ERROR_INFO_ENTRY_INFO_TYPES_KEYS                                   \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3                                                     \
-	}
+	(const char *[]){ "Instruction", "Data Access", "Generic" }
+#define ARM_ERROR_INFO_ENTRY_INFO_TYPES_KEYS (int[]){ 0, 1, 2, 3 }
 #define ARM_ERROR_INFO_ENTRY_INFO_TYPES_VALUES                                 \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Cache Error", "TLB Error", "Bus Error",                       \
-			"Micro-Architectural Error"                            \
-	}
+	(const char *[]){ "Cache Error", "TLB Error", "Bus Error",             \
+			  "Micro-Architectural Error" }
 #define ARM_CACHE_BUS_OPERATION_TYPES_KEYS                                     \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10                               \
-	}
-#define ARM_CACHE_BUS_OPERATION_TYPES_VALUES                                   \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Generic Error", "Generic Read", "Generic Write", "Data Read", \
-			"Data Write", "Instruction Fetch", "Prefetch",         \
-			"Eviction", "Snooping", "Snooped", "Management"        \
-	}
-#define ARM_TLB_OPERATION_TYPES_KEYS                                           \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3, 4, 5, 6, 7, 8                                      \
-	}
+	(int[]){ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
+#define ARM_CACHE_BUS_OPERATION_TYPES_VALUES                                    \
+	(const char *[]){ "Generic Error", "Generic Read", "Generic Write",     \
+			  "Data Read",	   "Data Write",   "Instruction Fetch", \
+			  "Prefetch",	   "Eviction",	   "Snooping",          \
+			  "Snooped",	   "Management" }
+#define ARM_TLB_OPERATION_TYPES_KEYS (int[]){ 0, 1, 2, 3, 4, 5, 6, 7, 8 }
 #define ARM_TLB_OPERATION_TYPES_VALUES                                         \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Generic Error", "Generic Read", "Generic Write", "Data Read", \
-			"Data Write", "Instruction Fetch", "Prefetch",         \
-			"Local Management Operation",                          \
-			"External Management Operation"                        \
-	}
-#define ARM_BUS_PARTICIPATION_TYPES_KEYS                                       \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3                                                     \
-	}
+	(const char *[]){ "Generic Error",                                     \
+			  "Generic Read",                                      \
+			  "Generic Write",                                     \
+			  "Data Read",                                         \
+			  "Data Write",                                        \
+			  "Instruction Fetch",                                 \
+			  "Prefetch",                                          \
+			  "Local Management Operation",                        \
+			  "External Management Operation" }
+#define ARM_BUS_PARTICIPATION_TYPES_KEYS (int[]){ 0, 1, 2, 3 }
 #define ARM_BUS_PARTICIPATION_TYPES_VALUES                                     \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Local Processor Originated Request",                          \
-			"Local Processor Responded to Request",                \
-			"Local Processor Observed", "Generic"                  \
-	}
-#define ARM_BUS_ADDRESS_SPACE_TYPES_KEYS                                       \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 3                                                        \
-	}
+	(const char *[]){ "Local Processor Originated Request",                \
+			  "Local Processor Responded to Request",              \
+			  "Local Processor Observed", "Generic" }
+#define ARM_BUS_ADDRESS_SPACE_TYPES_KEYS (int[]){ 0, 1, 3 }
 #define ARM_BUS_ADDRESS_SPACE_TYPES_VALUES                                     \
-	(const char *[])                                                       \
-	{                                                                      \
-		"External Memory Access", "Internal Memory Access",            \
-			"Device Memory Access"                                 \
-	}
+	(const char *[]){ "External Memory Access", "Internal Memory Access",  \
+			  "Device Memory Access" }
 #define ARM_PROCESSOR_INFO_REGISTER_CONTEXT_TYPES_KEYS                         \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3, 4, 5, 6, 7, 8                                      \
-	}
+	(int[]){ 0, 1, 2, 3, 4, 5, 6, 7, 8 }
 #define ARM_PROCESSOR_INFO_REGISTER_CONTEXT_TYPES_VALUES                       \
-	(const char *[])                                                       \
-	{                                                                      \
-		"AArch32 General Purpose Registers",                           \
-			"AArch32 EL1 Context Registers",                       \
-			"AArch32 EL2 Context Registers",                       \
-			"AArch32 Secure Context Registers",                    \
-			"AArch64 General Purpose Registers",                   \
-			"AArch64 EL1 Context Registers",                       \
-			"AArch64 EL2 Context Registers",                       \
-			"AArch64 EL3 Context Registers",                       \
-			"Miscellaneous System Register Structure"              \
-	}
+	(const char *[]){ "AArch32 General Purpose Registers",                 \
+			  "AArch32 EL1 Context Registers",                     \
+			  "AArch32 EL2 Context Registers",                     \
+			  "AArch32 Secure Context Registers",                  \
+			  "AArch64 General Purpose Registers",                 \
+			  "AArch64 EL1 Context Registers",                     \
+			  "AArch64 EL2 Context Registers",                     \
+			  "AArch64 EL3 Context Registers",                     \
+			  "Miscellaneous System Register Structure" }
 #define ARM_AARCH32_GPR_NAMES                                                  \
-	(const char *[])                                                       \
-	{                                                                      \
-		"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9",    \
-			"r10", "r11", "r12", "r13_sp", "r14_lr", "r15_pc"      \
-	}
+	(const char *[]){ "r0",	 "r1",	   "r2",     "r3",    "r4",  "r5",     \
+			  "r6",	 "r7",	   "r8",     "r9",    "r10", "r11",    \
+			  "r12", "r13_sp", "r14_lr", "r15_pc" }
 #define ARM_AARCH32_EL1_REGISTER_NAMES                                         \
-	(const char *[])                                                       \
-	{                                                                      \
-		"dfar", "dfsr", "ifar", "isr", "mair0", "mair1", "midr",       \
-			"mpidr", "nmrr", "prrr", "sctlr_ns", "spsr",           \
-			"spsr_abt", "spsr_fiq", "spsr_irq", "spsr_svc",        \
-			"spsr_und", "tpidrprw", "tpidruro", "tpidrurw",        \
-			"ttbcr", "ttbr0", "ttbr1", "dacr"                      \
-	}
+	(const char *[]){ "dfar",     "dfsr",	  "ifar",     "isr",           \
+			  "mair0",    "mair1",	  "midr",     "mpidr",         \
+			  "nmrr",     "prrr",	  "sctlr_ns", "spsr",          \
+			  "spsr_abt", "spsr_fiq", "spsr_irq", "spsr_svc",      \
+			  "spsr_und", "tpidrprw", "tpidruro", "tpidrurw",      \
+			  "ttbcr",    "ttbr0",	  "ttbr1",    "dacr" }
 #define ARM_AARCH32_EL2_REGISTER_NAMES                                         \
-	(const char *[])                                                       \
-	{                                                                      \
-		"elr_hyp", "hamair0", "hamair1", "hcr", "hcr2", "hdfar",       \
-			"hifar", "hpfar", "hsr", "htcr", "htpidr", "httbr",    \
-			"spsr_hyp", "vtcr", "vttbr", "dacr32_el2"              \
-	}
+	(const char *[]){ "elr_hyp",  "hamair0", "hamair1", "hcr",             \
+			  "hcr2",     "hdfar",	 "hifar",   "hpfar",           \
+			  "hsr",      "htcr",	 "htpidr",  "httbr",           \
+			  "spsr_hyp", "vtcr",	 "vttbr",   "dacr32_el2" }
 #define ARM_AARCH32_SECURE_REGISTER_NAMES                                      \
-	(const char *[])                                                       \
-	{                                                                      \
-		"sctlr_s", "spsr_mon"                                          \
-	}
+	(const char *[]){ "sctlr_s", "spsr_mon" }
 #define ARM_AARCH64_GPR_NAMES                                                  \
-	(const char *[])                                                       \
-	{                                                                      \
-		"x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9",    \
-			"x10", "x11", "x12", "x13", "x14", "x15", "x16",       \
-			"x17", "x18", "x19", "x20", "x21", "x22", "x23",       \
-			"x24", "x25", "x26", "x27", "x28", "x29", "x30", "sp"  \
-	}
+	(const char *[]){ "x0",	 "x1",	"x2",  "x3",  "x4",  "x5",  "x6",      \
+			  "x7",	 "x8",	"x9",  "x10", "x11", "x12", "x13",     \
+			  "x14", "x15", "x16", "x17", "x18", "x19", "x20",     \
+			  "x21", "x22", "x23", "x24", "x25", "x26", "x27",     \
+			  "x28", "x29", "x30", "sp" }
 #define ARM_AARCH64_EL1_REGISTER_NAMES                                         \
-	(const char *[])                                                       \
-	{                                                                      \
-		"elr_el1", "esr_el1", "far_el1", "isr_el1", "mair_el1",        \
-			"midr_el1", "mpidr_el1", "sctlr_el1", "sp_el0",        \
-			"sp_el1", "spsr_el1", "tcr_el1", "tpidr_el0",          \
-			"tpidr_el1", "tpidrro_el0", "ttbr0_el1", "ttbr1_el1"   \
+	(const char *[]){                                                      \
+		"elr_el1",   "esr_el1",	  "far_el1",	 "isr_el1",            \
+		"mair_el1",  "midr_el1",  "mpidr_el1",	 "sctlr_el1",          \
+		"sp_el0",    "sp_el1",	  "spsr_el1",	 "tcr_el1",            \
+		"tpidr_el0", "tpidr_el1", "tpidrro_el0", "ttbr0_el1",          \
+		"ttbr1_el1"                                                    \
 	}
 #define ARM_AARCH64_EL2_REGISTER_NAMES                                         \
-	(const char *[])                                                       \
-	{                                                                      \
-		"elr_el2", "esr_el2", "far_el2", "hacr_el2", "hcr_el2",        \
-			"hpfar_el2", "mair_el2", "sctlr_el2", "sp_el2",        \
-			"spsr_el2", "tcr_el2", "tpidr_el2", "ttbr0_el2",       \
-			"vtcr_el2", "vttbr_el2"                                \
-	}
+	(const char *[]){ "elr_el2",   "esr_el2",   "far_el2",	"hacr_el2",    \
+			  "hcr_el2",   "hpfar_el2", "mair_el2", "sctlr_el2",   \
+			  "sp_el2",    "spsr_el2",  "tcr_el2",	"tpidr_el2",   \
+			  "ttbr0_el2", "vtcr_el2",  "vttbr_el2" }
 #define ARM_AARCH64_EL3_REGISTER_NAMES                                         \
-	(const char *[])                                                       \
-	{                                                                      \
-		"elr_el3", "esr_el3", "far_el3", "mair_el3", "sctlr_el3",      \
-			"sp_el3", "spsr_el3", "tcr_el3", "tpidr_el3",          \
-			"ttbr0_el3"                                            \
-	}
+	(const char *[]){ "elr_el3",   "esr_el3",  "far_el3",  "mair_el3",     \
+			  "sctlr_el3", "sp_el3",   "spsr_el3", "tcr_el3",      \
+			  "tpidr_el3", "ttbr0_el3" }
 
 json_object *cper_section_arm_to_ir(void *section);
 void ir_section_arm_to_cper(json_object *section, FILE *out);
diff --git a/include/libcper/sections/cper-section-ccix-per.h b/include/libcper/sections/cper-section-ccix-per.h
index 80f7ae4..6246554 100644
--- a/include/libcper/sections/cper-section-ccix-per.h
+++ b/include/libcper/sections/cper-section-ccix-per.h
@@ -9,10 +9,8 @@
 #include <libcper/Cper.h>
 
 #define CCIX_PER_ERROR_VALID_BITFIELD_NAMES                                    \
-	(const char *[])                                                       \
-	{                                                                      \
-		"ccixSourceIDValid", "ccixPortIDValid", "ccixPERLogValid"      \
-	}
+	(const char *[]){ "ccixSourceIDValid", "ccixPortIDValid",              \
+			  "ccixPERLogValid" }
 
 ///
 /// CCIX PER Log Error Section
diff --git a/include/libcper/sections/cper-section-cxl-component.h b/include/libcper/sections/cper-section-cxl-component.h
index 2e60294..d5fa315 100644
--- a/include/libcper/sections/cper-section-cxl-component.h
+++ b/include/libcper/sections/cper-section-cxl-component.h
@@ -9,11 +9,8 @@
 #include <libcper/Cper.h>
 
 #define CXL_COMPONENT_ERROR_VALID_BITFIELD_NAMES                               \
-	(const char *[])                                                       \
-	{                                                                      \
-		"deviceIDValid", "deviceSerialValid",                          \
-			"cxlComponentEventLogValid"                            \
-	}
+	(const char *[]){ "deviceIDValid", "deviceSerialValid",                \
+			  "cxlComponentEventLogValid" }
 
 ///
 /// CXL Generic Component Error Section
diff --git a/include/libcper/sections/cper-section-cxl-protocol.h b/include/libcper/sections/cper-section-cxl-protocol.h
index 28e745b..ed37d96 100644
--- a/include/libcper/sections/cper-section-cxl-protocol.h
+++ b/include/libcper/sections/cper-section-cxl-protocol.h
@@ -9,22 +9,16 @@
 #include <libcper/Cper.h>
 
 #define CXL_PROTOCOL_ERROR_VALID_BITFIELD_NAMES                                \
-	(const char *[])                                                       \
-	{                                                                      \
-		"cxlAgentTypeValid", "cxlAgentAddressValid", "deviceIDValid",  \
-			"deviceSerialValid", "capabilityStructureValid",       \
-			"cxlDVSECValid", "cxlErrorLogValid"                    \
-	}
-#define CXL_PROTOCOL_ERROR_AGENT_TYPES_KEYS                                    \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1                                                           \
-	}
+	(const char *[]){ "cxlAgentTypeValid",                                 \
+			  "cxlAgentAddressValid",                              \
+			  "deviceIDValid",                                     \
+			  "deviceSerialValid",                                 \
+			  "capabilityStructureValid",                          \
+			  "cxlDVSECValid",                                     \
+			  "cxlErrorLogValid" }
+#define CXL_PROTOCOL_ERROR_AGENT_TYPES_KEYS (int[]){ 0, 1 }
 #define CXL_PROTOCOL_ERROR_AGENT_TYPES_VALUES                                  \
-	(const char *[])                                                       \
-	{                                                                      \
-		"CXL 1.1 Device", "CXL 1.1 Host Downstream Port"               \
-	}
+	(const char *[]){ "CXL 1.1 Device", "CXL 1.1 Host Downstream Port" }
 #define CXL_PROTOCOL_ERROR_DEVICE_AGENT		      0
 #define CXL_PROTOCOL_ERROR_HOST_DOWNSTREAM_PORT_AGENT 1
 
diff --git a/include/libcper/sections/cper-section-dmar-generic.h b/include/libcper/sections/cper-section-dmar-generic.h
index 5a6dd4f..5c1cadf 100644
--- a/include/libcper/sections/cper-section-dmar-generic.h
+++ b/include/libcper/sections/cper-section-dmar-generic.h
@@ -9,65 +9,38 @@
 #include <libcper/Cper.h>
 
 #define DMAR_GENERIC_ERROR_FAULT_REASON_TYPES_KEYS                             \
-	(int[])                                                                \
-	{                                                                      \
-		0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB          \
-	}
+	(int[]){ 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB }
 #define DMAR_GENERIC_ERROR_FAULT_REASON_TYPES_VALUES                           \
-	(const char *[])                                                       \
-	{                                                                      \
-		"DMT Entry Missing", "DMT Entry Invalid", "DMT Access Error",  \
-			"DMT Reserved Bit Invalid",                            \
-			"DMA Address Out of Bounds", "Invalid Read/Write",     \
-			"Invalid Device Request", "ATT Access Error",          \
-			"ATT Reserved Bit Invalid", "Illegal Command",         \
-			"Command Buffer Access Error"                          \
+	(const char *[]){                                                      \
+		"DMT Entry Missing",	      "DMT Entry Invalid",             \
+		"DMT Access Error",	      "DMT Reserved Bit Invalid",      \
+		"DMA Address Out of Bounds",  "Invalid Read/Write",            \
+		"Invalid Device Request",     "ATT Access Error",              \
+		"ATT Reserved Bit Invalid",   "Illegal Command",               \
+		"Command Buffer Access Error"                                  \
 	}
-#define DMAR_GENERIC_ERROR_FAULT_REASON_TYPES_DESCRIPTIONS                                                   \
-	(const char *[])                                                                                     \
-	{                                                                                                    \
-		"Domain mapping table entry is not present.",                                                \
-			"Invalid domain mapping table entry.",                                               \
-			"DMAr unit's attempt to access the domain mapping table resulted in an error.",      \
-			"Reserved bit set to non-zero value in the domain mapping table.",                   \
-			"DMA request to access an address beyond the device address width.",                 \
-			"Invalid read or write access.",                                                     \
-			"Invalid device request.",                                                           \
-			"DMAr unit's attempt to access the address translation table resulted in an error.", \
-			"Reserved bit set to non-zero value in the address translation table.",              \
-			"Illegal command error.",                                                            \
-			"DMAr unit's attempt to access the command buffer resulted in an error."             \
+#define DMAR_GENERIC_ERROR_FAULT_REASON_TYPES_DESCRIPTIONS                                           \
+	(const char *[]){                                                                            \
+		"Domain mapping table entry is not present.",                                        \
+		"Invalid domain mapping table entry.",                                               \
+		"DMAr unit's attempt to access the domain mapping table resulted in an error.",      \
+		"Reserved bit set to non-zero value in the domain mapping table.",                   \
+		"DMA request to access an address beyond the device address width.",                 \
+		"Invalid read or write access.",                                                     \
+		"Invalid device request.",                                                           \
+		"DMAr unit's attempt to access the address translation table resulted in an error.", \
+		"Reserved bit set to non-zero value in the address translation table.",              \
+		"Illegal command error.",                                                            \
+		"DMAr unit's attempt to access the command buffer resulted in an error."             \
 	}
-#define DMAR_GENERIC_ERROR_ACCESS_TYPES_KEYS                                   \
-	(int[])                                                                \
-	{                                                                      \
-		0x0, 0x1                                                       \
-	}
+#define DMAR_GENERIC_ERROR_ACCESS_TYPES_KEYS (int[]){ 0x0, 0x1 }
 #define DMAR_GENERIC_ERROR_ACCESS_TYPES_VALUES                                 \
-	(const char *[])                                                       \
-	{                                                                      \
-		"DMA Write", "DMA Read"                                        \
-	}
-#define DMAR_GENERIC_ERROR_ADDRESS_TYPES_KEYS                                  \
-	(int[])                                                                \
-	{                                                                      \
-		0x0, 0x1                                                       \
-	}
+	(const char *[]){ "DMA Write", "DMA Read" }
+#define DMAR_GENERIC_ERROR_ADDRESS_TYPES_KEYS (int[]){ 0x0, 0x1 }
 #define DMAR_GENERIC_ERROR_ADDRESS_TYPES_VALUES                                \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Untranslated Request", "Translation Request"                  \
-	}
-#define DMAR_GENERIC_ERROR_ARCH_TYPES_KEYS                                     \
-	(int[])                                                                \
-	{                                                                      \
-		0x0, 0x1                                                       \
-	}
-#define DMAR_GENERIC_ERROR_ARCH_TYPES_VALUES                                   \
-	(const char *[])                                                       \
-	{                                                                      \
-		"VT-d", "IOMMU"                                                \
-	}
+	(const char *[]){ "Untranslated Request", "Translation Request" }
+#define DMAR_GENERIC_ERROR_ARCH_TYPES_KEYS   (int[]){ 0x0, 0x1 }
+#define DMAR_GENERIC_ERROR_ARCH_TYPES_VALUES (const char *[]){ "VT-d", "IOMMU" }
 
 json_object *cper_section_dmar_generic_to_ir(void *section);
 void ir_section_dmar_generic_to_cper(json_object *section, FILE *out);
diff --git a/include/libcper/sections/cper-section-dmar-vtd.h b/include/libcper/sections/cper-section-dmar-vtd.h
index 5c3c876..907bba8 100644
--- a/include/libcper/sections/cper-section-dmar-vtd.h
+++ b/include/libcper/sections/cper-section-dmar-vtd.h
@@ -8,16 +8,9 @@
 #include <json.h>
 #include <libcper/Cper.h>
 
-#define VTD_FAULT_RECORD_TYPES_KEYS                                            \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1                                                           \
-	}
+#define VTD_FAULT_RECORD_TYPES_KEYS (int[]){ 0, 1 }
 #define VTD_FAULT_RECORD_TYPES_VALUES                                          \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Write Request", "Read/AtomicOp Request"                       \
-	}
+	(const char *[]){ "Write Request", "Read/AtomicOp Request" }
 
 typedef struct {
 	UINT64 Resv1 : 12;
diff --git a/include/libcper/sections/cper-section-firmware.h b/include/libcper/sections/cper-section-firmware.h
index ea1e19a..8f7f0e9 100644
--- a/include/libcper/sections/cper-section-firmware.h
+++ b/include/libcper/sections/cper-section-firmware.h
@@ -8,18 +8,11 @@
 #include <json.h>
 #include <libcper/Cper.h>
 
-#define FIRMWARE_ERROR_RECORD_TYPES_KEYS                                       \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2                                                        \
-	}
+#define FIRMWARE_ERROR_RECORD_TYPES_KEYS (int[]){ 0, 1, 2 }
 #define FIRMWARE_ERROR_RECORD_TYPES_VALUES                                     \
-	(const char *[])                                                       \
-	{                                                                      \
-		"IPF SAL Error Record",                                        \
-			"SOC Firmware Error Record (Type1 Legacy)",            \
-			"SOC Firmware Error Record (Type2)"                    \
-	}
+	(const char *[]){ "IPF SAL Error Record",                              \
+			  "SOC Firmware Error Record (Type1 Legacy)",          \
+			  "SOC Firmware Error Record (Type2)" }
 
 json_object *cper_section_firmware_to_ir(void *section);
 void ir_section_firmware_to_cper(json_object *section, FILE *out);
diff --git a/include/libcper/sections/cper-section-generic.h b/include/libcper/sections/cper-section-generic.h
index 6ec3ba4..dce583d 100644
--- a/include/libcper/sections/cper-section-generic.h
+++ b/include/libcper/sections/cper-section-generic.h
@@ -8,63 +8,35 @@
 #include <json.h>
 #include <libcper/Cper.h>
 
-#define GENERIC_PROC_TYPES_KEYS                                                \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2                                                        \
-	}
-#define GENERIC_PROC_TYPES_VALUES                                              \
-	(const char *[])                                                       \
-	{                                                                      \
-		"IA32/X64", "IA64", "ARM"                                      \
-	}
-#define GENERIC_ISA_TYPES_KEYS                                                 \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3, 4                                                  \
-	}
+#define GENERIC_PROC_TYPES_KEYS	  (int[]){ 0, 1, 2 }
+#define GENERIC_PROC_TYPES_VALUES (const char *[]){ "IA32/X64", "IA64", "ARM" }
+#define GENERIC_ISA_TYPES_KEYS	  (int[]){ 0, 1, 2, 3, 4 }
 #define GENERIC_ISA_TYPES_VALUES                                               \
-	(const char *[])                                                       \
-	{                                                                      \
-		"IA32", "IA64", "X64", "ARM A32/T32", "ARM A64"                \
-	}
-#define GENERIC_ERROR_TYPES_KEYS                                               \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 4, 8                                                  \
-	}
+	(const char *[]){ "IA32", "IA64", "X64", "ARM A32/T32", "ARM A64" }
+#define GENERIC_ERROR_TYPES_KEYS (int[]){ 0, 1, 2, 4, 8 }
 #define GENERIC_ERROR_TYPES_VALUES                                             \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Unknown", "Cache Error", "TLB Error", "Bus Error",            \
-			"Micro-Architectural Error"                            \
-	}
-#define GENERIC_OPERATION_TYPES_KEYS                                           \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3                                                     \
-	}
+	(const char *[]){ "Unknown", "Cache Error", "TLB Error", "Bus Error",  \
+			  "Micro-Architectural Error" }
+#define GENERIC_OPERATION_TYPES_KEYS (int[]){ 0, 1, 2, 3 }
 #define GENERIC_OPERATION_TYPES_VALUES                                         \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Unknown or Generic", "Data Read", "Data Write",               \
-			"Instruction Execution"                                \
-	}
+	(const char *[]){ "Unknown or Generic", "Data Read", "Data Write",     \
+			  "Instruction Execution" }
 #define GENERIC_VALIDATION_BITFIELD_NAMES                                      \
-	(const char *[])                                                       \
-	{                                                                      \
-		"processorTypeValid", "processorISAValid",                     \
-			"processorErrorTypeValid", "operationValid",           \
-			"flagsValid", "levelValid", "cpuVersionValid",         \
-			"cpuBrandInfoValid", "cpuIDValid",                     \
-			"targetAddressValid", "requestorIDValid",              \
-			"responderIDValid", "instructionIPValid"               \
-	}
+	(const char *[]){ "processorTypeValid",                                \
+			  "processorISAValid",                                 \
+			  "processorErrorTypeValid",                           \
+			  "operationValid",                                    \
+			  "flagsValid",                                        \
+			  "levelValid",                                        \
+			  "cpuVersionValid",                                   \
+			  "cpuBrandInfoValid",                                 \
+			  "cpuIDValid",                                        \
+			  "targetAddressValid",                                \
+			  "requestorIDValid",                                  \
+			  "responderIDValid",                                  \
+			  "instructionIPValid" }
 #define GENERIC_FLAGS_BITFIELD_NAMES                                           \
-	(const char *[])                                                       \
-	{                                                                      \
-		"restartable", "preciseIP", "overflow", "corrected"            \
-	}
+	(const char *[]){ "restartable", "preciseIP", "overflow", "corrected" }
 
 json_object *cper_section_generic_to_ir(void *section);
 void ir_section_generic_to_cper(json_object *section, FILE *out);
diff --git a/include/libcper/sections/cper-section-ia32x64.h b/include/libcper/sections/cper-section-ia32x64.h
index 4da2517..77dd331 100644
--- a/include/libcper/sections/cper-section-ia32x64.h
+++ b/include/libcper/sections/cper-section-ia32x64.h
@@ -9,97 +9,61 @@
 #include <libcper/Cper.h>
 
 #define IA32X64_PROCESSOR_ERROR_VALID_BITFIELD_NAMES                           \
-	(const char *[])                                                       \
-	{                                                                      \
-		"checkInfoValid", "targetAddressIDValid", "requestorIDValid",  \
-			"responderIDValid", "instructionPointerValid"          \
-	}
+	(const char *[]){ "checkInfoValid", "targetAddressIDValid",            \
+			  "requestorIDValid", "responderIDValid",              \
+			  "instructionPointerValid" }
 #define IA32X64_CHECK_INFO_VALID_BITFIELD_NAMES                                \
-	(const char *[])                                                       \
-	{                                                                      \
-		"transactionTypeValid", "operationValid", "levelValid",        \
-			"processorContextCorruptValid", "uncorrectedValid",    \
-			"preciseIPValid", "restartableIPValid",                \
-			"overflowValid", "participationTypeValid",             \
-			"timedOutValid", "addressSpaceValid"                   \
-	}
-#define IA32X64_CHECK_INFO_MS_CHECK_VALID_BITFIELD_NAMES                       \
-	(const char *[])                                                       \
-	{                                                                      \
-		"errorTypeValid", "processorContextCorruptValid",              \
-			"uncorrectedValid", "preciseIPValid",                  \
-			"restartableIPValid", "overflowValid"                  \
-	}
-#define IA32X64_CHECK_INFO_TRANSACTION_TYPES_KEYS                              \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2                                                        \
-	}
+	(const char *[]){ "transactionTypeValid",                              \
+			  "operationValid",                                    \
+			  "levelValid",                                        \
+			  "processorContextCorruptValid",                      \
+			  "uncorrectedValid",                                  \
+			  "preciseIPValid",                                    \
+			  "restartableIPValid",                                \
+			  "overflowValid",                                     \
+			  "participationTypeValid",                            \
+			  "timedOutValid",                                     \
+			  "addressSpaceValid" }
+#define IA32X64_CHECK_INFO_MS_CHECK_VALID_BITFIELD_NAMES                        \
+	(const char *[]){ "errorTypeValid",	"processorContextCorruptValid", \
+			  "uncorrectedValid",	"preciseIPValid",               \
+			  "restartableIPValid", "overflowValid" }
+#define IA32X64_CHECK_INFO_TRANSACTION_TYPES_KEYS (int[]){ 0, 1, 2 }
 #define IA32X64_CHECK_INFO_TRANSACTION_TYPES_VALUES                            \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Instruction", "Data Access", "Generic"                        \
-	}
+	(const char *[]){ "Instruction", "Data Access", "Generic" }
 #define IA32X64_CHECK_INFO_OPERATION_TYPES_KEYS                                \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3, 4, 5, 6, 7, 8                                      \
-	}
-#define IA32X64_CHECK_INFO_OPERATION_TYPES_VALUES                              \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Generic Error", "Generic Read", "Generic Write", "Data Read", \
-			"Data Write", "Instruction Fetch", "Prefetch",         \
-			"Eviction", "Snoop"                                    \
-	}
-#define IA32X64_BUS_CHECK_INFO_PARTICIPATION_TYPES_KEYS                        \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3                                                     \
-	}
+	(int[]){ 0, 1, 2, 3, 4, 5, 6, 7, 8 }
+#define IA32X64_CHECK_INFO_OPERATION_TYPES_VALUES                               \
+	(const char *[]){ "Generic Error", "Generic Read", "Generic Write",     \
+			  "Data Read",	   "Data Write",   "Instruction Fetch", \
+			  "Prefetch",	   "Eviction",	   "Snoop" }
+#define IA32X64_BUS_CHECK_INFO_PARTICIPATION_TYPES_KEYS (int[]){ 0, 1, 2, 3 }
 #define IA32X64_BUS_CHECK_INFO_PARTICIPATION_TYPES_VALUES                      \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Local processor originated request",                          \
-			"Local processor responded to request",                \
-			"Local processor observed", "Generic"                  \
-	}
-#define IA32X64_BUS_CHECK_INFO_ADDRESS_SPACE_TYPES_KEYS                        \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3                                                     \
-	}
+	(const char *[]){ "Local processor originated request",                \
+			  "Local processor responded to request",              \
+			  "Local processor observed", "Generic" }
+#define IA32X64_BUS_CHECK_INFO_ADDRESS_SPACE_TYPES_KEYS (int[]){ 0, 1, 2, 3 }
 #define IA32X64_BUS_CHECK_INFO_ADDRESS_SPACE_TYPES_VALUES                      \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Memory Access", "Reserved", "I/O", "Other Transaction"        \
-	}
-#define IA32X64_MS_CHECK_INFO_ERROR_TYPES_KEYS                                 \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3, 4, 5                                               \
-	}
+	(const char *[]){ "Memory Access", "Reserved", "I/O",                  \
+			  "Other Transaction" }
+#define IA32X64_MS_CHECK_INFO_ERROR_TYPES_KEYS (int[]){ 0, 1, 2, 3, 4, 5 }
 #define IA32X64_MS_CHECK_INFO_ERROR_TYPES_VALUES                               \
-	(const char *[])                                                       \
-	{                                                                      \
-		"No Error", "Unclassified", "Microcode ROM Parity Error",      \
-			"External Error", "FRC Error", "Internal Unclassified" \
-	}
-#define IA32X64_REGISTER_CONTEXT_TYPES_KEYS                                    \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3, 4, 5, 6, 7                                         \
-	}
+	(const char *[]){ "No Error",                                          \
+			  "Unclassified",                                      \
+			  "Microcode ROM Parity Error",                        \
+			  "External Error",                                    \
+			  "FRC Error",                                         \
+			  "Internal Unclassified" }
+#define IA32X64_REGISTER_CONTEXT_TYPES_KEYS (int[]){ 0, 1, 2, 3, 4, 5, 6, 7 }
 #define IA32X64_REGISTER_CONTEXT_TYPES_VALUES                                  \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Unclassified Data", "MSR Registers",                          \
-			"32-bit Mode Execution Context",                       \
-			"64-bit Mode Execution Context", "FXSave Context",     \
-			"32-bit Mode Debug Registers",                         \
-			"64-bit Mode Debug Registers",                         \
-			"Memory Mapper Registers"                              \
-	}
+	(const char *[]){ "Unclassified Data",                                 \
+			  "MSR Registers",                                     \
+			  "32-bit Mode Execution Context",                     \
+			  "64-bit Mode Execution Context",                     \
+			  "FXSave Context",                                    \
+			  "32-bit Mode Debug Registers",                       \
+			  "64-bit Mode Debug Registers",                       \
+			  "Memory Mapper Registers" }
 
 typedef struct {
 	UINT64 Eax;
diff --git a/include/libcper/sections/cper-section-ipf.h b/include/libcper/sections/cper-section-ipf.h
index 95b3012..86e396c 100644
--- a/include/libcper/sections/cper-section-ipf.h
+++ b/include/libcper/sections/cper-section-ipf.h
@@ -9,18 +9,12 @@
 #include <libcper/Cper.h>
 
 #define IPF_MOD_ERROR_VALID_BITFIELD_NAMES                                     \
-	(const char *[])                                                       \
-	{                                                                      \
-		"checkInfoValid", "requestorIdentifierValid",                  \
-			"responderIdentifierValid", "targetIdentifierValid",   \
-			"preciseIPValid"                                       \
-	}
+	(const char *[]){ "checkInfoValid", "requestorIdentifierValid",        \
+			  "responderIdentifierValid", "targetIdentifierValid", \
+			  "preciseIPValid" }
 #define IPF_PSI_STATIC_INFO_VALID_BITFIELD_NAMES                               \
-	(const char *[])                                                       \
-	{                                                                      \
-		"minstateValid", "brValid", "crValid", "arValid", "rrValid",   \
-			"frValid"                                              \
-	}
+	(const char *[]){ "minstateValid", "brValid", "crValid",               \
+			  "arValid",	   "rrValid", "frValid" }
 
 ///
 /// IPF Error Record Section
diff --git a/include/libcper/sections/cper-section-memory.h b/include/libcper/sections/cper-section-memory.h
index 71991f2..f7b7dea 100644
--- a/include/libcper/sections/cper-section-memory.h
+++ b/include/libcper/sections/cper-section-memory.h
@@ -9,49 +9,70 @@
 #include <libcper/Cper.h>
 
 #define MEMORY_ERROR_VALID_BITFIELD_NAMES                                      \
-	(const char *[])                                                       \
-	{                                                                      \
-		"errorStatusValid", "physicalAddressValid",                    \
-			"physicalAddressMaskValid", "nodeValid", "cardValid",  \
-			"moduleValid", "bankValid", "deviceValid", "rowValid", \
-			"columnValid", "bitPositionValid",                     \
-			"platformRequestorIDValid",                            \
-			"platformResponderIDValid",                            \
-			"memoryPlatformTargetValid", "memoryErrorTypeValid",   \
-			"rankNumberValid", "cardHandleValid",                  \
-			"moduleHandleValid", "extendedRowBitsValid",           \
-			"bankGroupValid", "bankAddressValid",                  \
-			"chipIdentificationValid"                              \
-	}
+	(const char *[]){ "errorStatusValid",                                  \
+			  "physicalAddressValid",                              \
+			  "physicalAddressMaskValid",                          \
+			  "nodeValid",                                         \
+			  "cardValid",                                         \
+			  "moduleValid",                                       \
+			  "bankValid",                                         \
+			  "deviceValid",                                       \
+			  "rowValid",                                          \
+			  "columnValid",                                       \
+			  "bitPositionValid",                                  \
+			  "platformRequestorIDValid",                          \
+			  "platformResponderIDValid",                          \
+			  "memoryPlatformTargetValid",                         \
+			  "memoryErrorTypeValid",                              \
+			  "rankNumberValid",                                   \
+			  "cardHandleValid",                                   \
+			  "moduleHandleValid",                                 \
+			  "extendedRowBitsValid",                              \
+			  "bankGroupValid",                                    \
+			  "bankAddressValid",                                  \
+			  "chipIdentificationValid" }
 #define MEMORY_ERROR_TYPES_KEYS                                                \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15           \
-	}
+	(int[]){ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }
 #define MEMORY_ERROR_TYPES_VALUES                                              \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Unknown", "No Error", "Single-bit ECC", "Multi-bit ECC",      \
-			"Single-symbol ChipKill ECC",                          \
-			"Multi-symbol ChipKill ECC", "Master Abort",           \
-			"Target Abort", "Parity Error", "Watchdog Timeout",    \
-			"Invalid Address", "Mirror Broken", "Memory Sparing",  \
-			"Scrub Corrected Error", "Scrub Uncorrected Error",    \
-			"Physical Memory Map-out Event"                        \
-	}
+	(const char *[]){ "Unknown",                                           \
+			  "No Error",                                          \
+			  "Single-bit ECC",                                    \
+			  "Multi-bit ECC",                                     \
+			  "Single-symbol ChipKill ECC",                        \
+			  "Multi-symbol ChipKill ECC",                         \
+			  "Master Abort",                                      \
+			  "Target Abort",                                      \
+			  "Parity Error",                                      \
+			  "Watchdog Timeout",                                  \
+			  "Invalid Address",                                   \
+			  "Mirror Broken",                                     \
+			  "Memory Sparing",                                    \
+			  "Scrub Corrected Error",                             \
+			  "Scrub Uncorrected Error",                           \
+			  "Physical Memory Map-out Event" }
 #define MEMORY_ERROR_2_VALID_BITFIELD_NAMES                                    \
-	(const char *[])                                                       \
-	{                                                                      \
-		"errorStatusValid", "physicalAddressValid",                    \
-			"physicalAddressMaskValid", "nodeValid", "cardValid",  \
-			"moduleValid", "bankValid", "deviceValid", "rowValid", \
-			"columnValid", "rankValid", "bitPositionValid",        \
-			"chipIDValid", "memoryErrorTypeValid", "statusValid",  \
-			"requestorIDValid", "responderIDValid",                \
-			"targetIDValid", "cardHandleValid",                    \
-			"moduleHandleValid", "bankGroupValid",                 \
-			"bankAddressValid"                                     \
-	}
+	(const char *[]){ "errorStatusValid",                                  \
+			  "physicalAddressValid",                              \
+			  "physicalAddressMaskValid",                          \
+			  "nodeValid",                                         \
+			  "cardValid",                                         \
+			  "moduleValid",                                       \
+			  "bankValid",                                         \
+			  "deviceValid",                                       \
+			  "rowValid",                                          \
+			  "columnValid",                                       \
+			  "rankValid",                                         \
+			  "bitPositionValid",                                  \
+			  "chipIDValid",                                       \
+			  "memoryErrorTypeValid",                              \
+			  "statusValid",                                       \
+			  "requestorIDValid",                                  \
+			  "responderIDValid",                                  \
+			  "targetIDValid",                                     \
+			  "cardHandleValid",                                   \
+			  "moduleHandleValid",                                 \
+			  "bankGroupValid",                                    \
+			  "bankAddressValid" }
 
 json_object *cper_section_platform_memory_to_ir(void *section);
 json_object *cper_section_platform_memory2_to_ir(void *section);
diff --git a/include/libcper/sections/cper-section-pci-bus.h b/include/libcper/sections/cper-section-pci-bus.h
index 34fd368..487e3d3 100644
--- a/include/libcper/sections/cper-section-pci-bus.h
+++ b/include/libcper/sections/cper-section-pci-bus.h
@@ -9,27 +9,21 @@
 #include <libcper/Cper.h>
 
 #define PCI_BUS_ERROR_VALID_BITFIELD_NAMES                                     \
-	(const char *[])                                                       \
-	{                                                                      \
-		"errorStatusValid", "errorTypeValid", "busIDValid",            \
-			"busAddressValid", "busDataValid", "commandValid",     \
-			"requestorIDValid", "completerIDValid",                \
-			"targetIDValid"                                        \
-	}
-#define PCI_BUS_ERROR_TYPES_KEYS                                               \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 2, 3, 4, 5, 6, 7                                         \
-	}
+	(const char *[]){ "errorStatusValid", "errorTypeValid",                \
+			  "busIDValid",	      "busAddressValid",               \
+			  "busDataValid",     "commandValid",                  \
+			  "requestorIDValid", "completerIDValid",              \
+			  "targetIDValid" }
+#define PCI_BUS_ERROR_TYPES_KEYS (int[]){ 0, 1, 2, 3, 4, 5, 6, 7 }
 #define PCI_BUS_ERROR_TYPES_VALUES                                             \
-	(const char *[])                                                       \
-	{                                                                      \
-		"Unknown/OEM Specific Error", "Data Parity Error",             \
-			"System Error", "Master Abort",                        \
-			"Bus Timeout/No Device Present (No DEVSEL#)",          \
-			"Master Data Parity Error", "Address Parity Error",    \
-			"Command Parity Error"                                 \
-	}
+	(const char *[]){ "Unknown/OEM Specific Error",                        \
+			  "Data Parity Error",                                 \
+			  "System Error",                                      \
+			  "Master Abort",                                      \
+			  "Bus Timeout/No Device Present (No DEVSEL#)",        \
+			  "Master Data Parity Error",                          \
+			  "Address Parity Error",                              \
+			  "Command Parity Error" }
 
 json_object *cper_section_pci_bus_to_ir(void *section);
 void ir_section_pci_bus_to_cper(json_object *section, FILE *out);
diff --git a/include/libcper/sections/cper-section-pci-dev.h b/include/libcper/sections/cper-section-pci-dev.h
index 7396aa7..6da7140 100644
--- a/include/libcper/sections/cper-section-pci-dev.h
+++ b/include/libcper/sections/cper-section-pci-dev.h
@@ -9,11 +9,9 @@
 #include <libcper/Cper.h>
 
 #define PCI_DEV_ERROR_VALID_BITFIELD_NAMES                                     \
-	(const char *[])                                                       \
-	{                                                                      \
-		"errorStatusValid", "idInfoValid", "memoryNumberValid",        \
-			"ioNumberValid", "registerDataPairsValid"              \
-	}
+	(const char *[]){ "errorStatusValid", "idInfoValid",                   \
+			  "memoryNumberValid", "ioNumberValid",                \
+			  "registerDataPairsValid" }
 
 ///
 /// PCI/PCI-X Device Error Section
diff --git a/include/libcper/sections/cper-section-pcie.h b/include/libcper/sections/cper-section-pcie.h
index cc54ebd..a3741a5 100644
--- a/include/libcper/sections/cper-section-pcie.h
+++ b/include/libcper/sections/cper-section-pcie.h
@@ -9,29 +9,25 @@
 #include <libcper/Cper.h>
 
 #define PCIE_ERROR_VALID_BITFIELD_NAMES                                        \
-	(const char *[])                                                       \
-	{                                                                      \
-		"portTypeValid", "versionValid", "commandStatusValid",         \
-			"deviceIDValid", "deviceSerialNumberValid",            \
-			"bridgeControlStatusValid",                            \
-			"capabilityStructureStatusValid", "aerInfoValid"       \
-	}
-#define PCIE_ERROR_PORT_TYPES_KEYS                                             \
-	(int[])                                                                \
-	{                                                                      \
-		0, 1, 4, 5, 6, 7, 8, 9, 10                                     \
-	}
+	(const char *[]){ "portTypeValid",                                     \
+			  "versionValid",                                      \
+			  "commandStatusValid",                                \
+			  "deviceIDValid",                                     \
+			  "deviceSerialNumberValid",                           \
+			  "bridgeControlStatusValid",                          \
+			  "capabilityStructureStatusValid",                    \
+			  "aerInfoValid" }
+#define PCIE_ERROR_PORT_TYPES_KEYS (int[]){ 0, 1, 4, 5, 6, 7, 8, 9, 10 }
 #define PCIE_ERROR_PORT_TYPES_VALUES                                           \
-	(const char *[])                                                       \
-	{                                                                      \
-		"PCI Express End Point", "Legacy PCI End Point Device",        \
-			"Root Port", "Upstream Switch Port",                   \
-			"Downstream Switch Port",                              \
-			"PCI Express to PCI/PCI-X Bridge",                     \
-			"PCI/PCI-X Bridge to PCI Express Bridge",              \
-			"Root Complex Integrated Endpoint Device",             \
-			"Root Complex Event Collector"                         \
-	}
+	(const char *[]){ "PCI Express End Point",                             \
+			  "Legacy PCI End Point Device",                       \
+			  "Root Port",                                         \
+			  "Upstream Switch Port",                              \
+			  "Downstream Switch Port",                            \
+			  "PCI Express to PCI/PCI-X Bridge",                   \
+			  "PCI/PCI-X Bridge to PCI Express Bridge",            \
+			  "Root Complex Integrated Endpoint Device",           \
+			  "Root Complex Event Collector" }
 
 json_object *cper_section_pcie_to_ir(void *section);
 void ir_section_pcie_to_cper(json_object *section, FILE *out);
