Convince clang-format to handle ASN1_ITEM definitions better

Adding the ending macros to StatementMacros tells clang-format the macro
terminates a statement. Adding trailing commas in the middle keeps it
from trying to bundle the curly brace with the next statement.

Also add a few other trailing commas that clang-format otherwise indents
awkwardly.

Change-Id: I0b2ba9cf07bc775649fa1e92de3e5bb2e2b0b20b
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/52728
Reviewed-by: Bob Beck <bbe@google.com>
Commit-Queue: Bob Beck <bbe@google.com>
diff --git a/crypto/x509v3/v3_akey.c b/crypto/x509v3/v3_akey.c
index ca581d9..35dc9c2 100644
--- a/crypto/x509v3/v3_akey.c
+++ b/crypto/x509v3/v3_akey.c
@@ -82,7 +82,7 @@
     i2v_AUTHORITY_KEYID,
     v2i_AUTHORITY_KEYID,
     0, 0,
-    NULL
+    NULL,
 };
 
 static STACK_OF(CONF_VALUE) *i2v_AUTHORITY_KEYID(
diff --git a/crypto/x509v3/v3_akeya.c b/crypto/x509v3/v3_akeya.c
index 844dee5..4cfc099 100644
--- a/crypto/x509v3/v3_akeya.c
+++ b/crypto/x509v3/v3_akeya.c
@@ -66,7 +66,7 @@
 ASN1_SEQUENCE(AUTHORITY_KEYID) = {
         ASN1_IMP_OPT(AUTHORITY_KEYID, keyid, ASN1_OCTET_STRING, 0),
         ASN1_IMP_SEQUENCE_OF_OPT(AUTHORITY_KEYID, issuer, GENERAL_NAME, 1),
-        ASN1_IMP_OPT(AUTHORITY_KEYID, serial, ASN1_INTEGER, 2)
+        ASN1_IMP_OPT(AUTHORITY_KEYID, serial, ASN1_INTEGER, 2),
 } ASN1_SEQUENCE_END(AUTHORITY_KEYID)
 
 IMPLEMENT_ASN1_FUNCTIONS(AUTHORITY_KEYID)
diff --git a/crypto/x509v3/v3_bcons.c b/crypto/x509v3/v3_bcons.c
index 4edf27b..c35204f 100644
--- a/crypto/x509v3/v3_bcons.c
+++ b/crypto/x509v3/v3_bcons.c
@@ -79,12 +79,12 @@
     i2v_BASIC_CONSTRAINTS,
     v2i_BASIC_CONSTRAINTS,
     NULL, NULL,
-    NULL
+    NULL,
 };
 
 ASN1_SEQUENCE(BASIC_CONSTRAINTS) = {
         ASN1_OPT(BASIC_CONSTRAINTS, ca, ASN1_FBOOLEAN),
-        ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER)
+        ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER),
 } ASN1_SEQUENCE_END(BASIC_CONSTRAINTS)
 
 IMPLEMENT_ASN1_FUNCTIONS(BASIC_CONSTRAINTS)
diff --git a/crypto/x509v3/v3_cpols.c b/crypto/x509v3/v3_cpols.c
index 9290556..8273139 100644
--- a/crypto/x509v3/v3_cpols.c
+++ b/crypto/x509v3/v3_cpols.c
@@ -93,7 +93,7 @@
     0, 0,
     i2r_certpol,
     r2i_certpol,
-    NULL
+    NULL,
 };
 
 ASN1_ITEM_TEMPLATE(CERTIFICATEPOLICIES) =
@@ -104,7 +104,7 @@
 
 ASN1_SEQUENCE(POLICYINFO) = {
         ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT),
-        ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO)
+        ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO),
 } ASN1_SEQUENCE_END(POLICYINFO)
 
 IMPLEMENT_ASN1_FUNCTIONS(POLICYINFO)
@@ -113,26 +113,26 @@
 
 ASN1_ADB(POLICYQUALINFO) = {
         ADB_ENTRY(NID_id_qt_cps, ASN1_SIMPLE(POLICYQUALINFO, d.cpsuri, ASN1_IA5STRING)),
-        ADB_ENTRY(NID_id_qt_unotice, ASN1_SIMPLE(POLICYQUALINFO, d.usernotice, USERNOTICE))
+        ADB_ENTRY(NID_id_qt_unotice, ASN1_SIMPLE(POLICYQUALINFO, d.usernotice, USERNOTICE)),
 } ASN1_ADB_END(POLICYQUALINFO, 0, pqualid, 0, &policydefault_tt, NULL);
 
 ASN1_SEQUENCE(POLICYQUALINFO) = {
         ASN1_SIMPLE(POLICYQUALINFO, pqualid, ASN1_OBJECT),
-        ASN1_ADB_OBJECT(POLICYQUALINFO)
+        ASN1_ADB_OBJECT(POLICYQUALINFO),
 } ASN1_SEQUENCE_END(POLICYQUALINFO)
 
 IMPLEMENT_ASN1_FUNCTIONS(POLICYQUALINFO)
 
 ASN1_SEQUENCE(USERNOTICE) = {
         ASN1_OPT(USERNOTICE, noticeref, NOTICEREF),
-        ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT)
+        ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT),
 } ASN1_SEQUENCE_END(USERNOTICE)
 
 IMPLEMENT_ASN1_FUNCTIONS(USERNOTICE)
 
 ASN1_SEQUENCE(NOTICEREF) = {
         ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT),
-        ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER)
+        ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER),
 } ASN1_SEQUENCE_END(NOTICEREF)
 
 IMPLEMENT_ASN1_FUNCTIONS(NOTICEREF)
diff --git a/crypto/x509v3/v3_crld.c b/crypto/x509v3/v3_crld.c
index 93e5b6d..6fafccc 100644
--- a/crypto/x509v3/v3_crld.c
+++ b/crypto/x509v3/v3_crld.c
@@ -82,7 +82,7 @@
     0,
     v2i_crld,
     i2r_crldp, 0,
-    NULL
+    NULL,
 };
 
 const X509V3_EXT_METHOD v3_freshest_crl = {
@@ -92,7 +92,7 @@
     0,
     v2i_crld,
     i2r_crldp, 0,
-    NULL
+    NULL,
 };
 
 static STACK_OF(GENERAL_NAME) *gnames_from_sectname(X509V3_CTX *ctx,
@@ -366,7 +366,7 @@
 
 ASN1_CHOICE_cb(DIST_POINT_NAME, dpn_cb) = {
         ASN1_IMP_SEQUENCE_OF(DIST_POINT_NAME, name.fullname, GENERAL_NAME, 0),
-        ASN1_IMP_SET_OF(DIST_POINT_NAME, name.relativename, X509_NAME_ENTRY, 1)
+        ASN1_IMP_SET_OF(DIST_POINT_NAME, name.relativename, X509_NAME_ENTRY, 1),
 } ASN1_CHOICE_END_cb(DIST_POINT_NAME, DIST_POINT_NAME, type)
 
 
@@ -375,7 +375,7 @@
 ASN1_SEQUENCE(DIST_POINT) = {
         ASN1_EXP_OPT(DIST_POINT, distpoint, DIST_POINT_NAME, 0),
         ASN1_IMP_OPT(DIST_POINT, reasons, ASN1_BIT_STRING, 1),
-        ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2)
+        ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2),
 } ASN1_SEQUENCE_END(DIST_POINT)
 
 IMPLEMENT_ASN1_FUNCTIONS(DIST_POINT)
@@ -392,7 +392,7 @@
         ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyCA, ASN1_FBOOLEAN, 2),
         ASN1_IMP_OPT(ISSUING_DIST_POINT, onlysomereasons, ASN1_BIT_STRING, 3),
         ASN1_IMP_OPT(ISSUING_DIST_POINT, indirectCRL, ASN1_FBOOLEAN, 4),
-        ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5)
+        ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5),
 } ASN1_SEQUENCE_END(ISSUING_DIST_POINT)
 
 IMPLEMENT_ASN1_FUNCTIONS(ISSUING_DIST_POINT)
@@ -410,7 +410,7 @@
     0,
     v2i_idp,
     i2r_idp, 0,
-    NULL
+    NULL,
 };
 
 static void *v2i_idp(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
diff --git a/crypto/x509v3/v3_enum.c b/crypto/x509v3/v3_enum.c
index 5c95858..636415b 100644
--- a/crypto/x509v3/v3_enum.c
+++ b/crypto/x509v3/v3_enum.c
@@ -101,5 +101,5 @@
     i2s_ASN1_ENUMERATED_TABLE,
     0,
     0, 0, 0, 0,
-    (void *)crl_reasons
+    (void *)crl_reasons,
 };
diff --git a/crypto/x509v3/v3_extku.c b/crypto/x509v3/v3_extku.c
index 952e032..6171396 100644
--- a/crypto/x509v3/v3_extku.c
+++ b/crypto/x509v3/v3_extku.c
@@ -78,7 +78,7 @@
     i2v_EXTENDED_KEY_USAGE,
     v2i_EXTENDED_KEY_USAGE,
     0, 0,
-    NULL
+    NULL,
 };
 
 /* NB OCSP acceptable responses also is a SEQUENCE OF OBJECT */
@@ -90,7 +90,7 @@
     i2v_EXTENDED_KEY_USAGE,
     v2i_EXTENDED_KEY_USAGE,
     0, 0,
-    NULL
+    NULL,
 };
 
 ASN1_ITEM_TEMPLATE(EXTENDED_KEY_USAGE) =
diff --git a/crypto/x509v3/v3_genn.c b/crypto/x509v3/v3_genn.c
index ae79374..a64c8b0 100644
--- a/crypto/x509v3/v3_genn.c
+++ b/crypto/x509v3/v3_genn.c
@@ -66,7 +66,7 @@
 ASN1_SEQUENCE(OTHERNAME) = {
         ASN1_SIMPLE(OTHERNAME, type_id, ASN1_OBJECT),
         /* Maybe have a true ANY DEFINED BY later */
-        ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0)
+        ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0),
 } ASN1_SEQUENCE_END(OTHERNAME)
 
 IMPLEMENT_ASN1_FUNCTIONS(OTHERNAME)
@@ -74,7 +74,7 @@
 ASN1_SEQUENCE(EDIPARTYNAME) = {
         /* DirectoryString is a CHOICE type, so use explicit tagging. */
         ASN1_EXP_OPT(EDIPARTYNAME, nameAssigner, DIRECTORYSTRING, 0),
-        ASN1_EXP(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1)
+        ASN1_EXP(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1),
 } ASN1_SEQUENCE_END(EDIPARTYNAME)
 
 IMPLEMENT_ASN1_FUNCTIONS(EDIPARTYNAME)
@@ -90,7 +90,7 @@
         ASN1_IMP(GENERAL_NAME, d.ediPartyName, EDIPARTYNAME, GEN_EDIPARTY),
         ASN1_IMP(GENERAL_NAME, d.uniformResourceIdentifier, ASN1_IA5STRING, GEN_URI),
         ASN1_IMP(GENERAL_NAME, d.iPAddress, ASN1_OCTET_STRING, GEN_IPADD),
-        ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID)
+        ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID),
 } ASN1_CHOICE_END(GENERAL_NAME)
 
 IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAME)
diff --git a/crypto/x509v3/v3_info.c b/crypto/x509v3/v3_info.c
index e314019..320c44d 100644
--- a/crypto/x509v3/v3_info.c
+++ b/crypto/x509v3/v3_info.c
@@ -81,7 +81,7 @@
     i2v_AUTHORITY_INFO_ACCESS,
     v2i_AUTHORITY_INFO_ACCESS,
     0, 0,
-    NULL
+    NULL,
 };
 
 const X509V3_EXT_METHOD v3_sinfo = { NID_sinfo_access, X509V3_EXT_MULTILINE,
@@ -91,12 +91,12 @@
     i2v_AUTHORITY_INFO_ACCESS,
     v2i_AUTHORITY_INFO_ACCESS,
     0, 0,
-    NULL
+    NULL,
 };
 
 ASN1_SEQUENCE(ACCESS_DESCRIPTION) = {
         ASN1_SIMPLE(ACCESS_DESCRIPTION, method, ASN1_OBJECT),
-        ASN1_SIMPLE(ACCESS_DESCRIPTION, location, GENERAL_NAME)
+        ASN1_SIMPLE(ACCESS_DESCRIPTION, location, GENERAL_NAME),
 } ASN1_SEQUENCE_END(ACCESS_DESCRIPTION)
 
 IMPLEMENT_ASN1_FUNCTIONS(ACCESS_DESCRIPTION)
diff --git a/crypto/x509v3/v3_int.c b/crypto/x509v3/v3_int.c
index 8b96796..a338204 100644
--- a/crypto/x509v3/v3_int.c
+++ b/crypto/x509v3/v3_int.c
@@ -77,7 +77,7 @@
     0, 0, 0, 0,
     i2s_ASN1_INTEGER_cb,
     0,
-    0, 0, 0, 0, NULL
+    0, 0, 0, 0, NULL,
 };
 
 const X509V3_EXT_METHOD v3_delta_crl = {
@@ -85,7 +85,7 @@
     0, 0, 0, 0,
     i2s_ASN1_INTEGER_cb,
     0,
-    0, 0, 0, 0, NULL
+    0, 0, 0, 0, NULL,
 };
 
 const X509V3_EXT_METHOD v3_inhibit_anyp = {
@@ -93,5 +93,5 @@
     0, 0, 0, 0,
     i2s_ASN1_INTEGER_cb,
     s2i_asn1_int,
-    0, 0, 0, 0, NULL
+    0, 0, 0, 0, NULL,
 };
diff --git a/crypto/x509v3/v3_ncons.c b/crypto/x509v3/v3_ncons.c
index f58873e..e65aab5 100644
--- a/crypto/x509v3/v3_ncons.c
+++ b/crypto/x509v3/v3_ncons.c
@@ -93,13 +93,13 @@
     0, 0,
     0, v2i_NAME_CONSTRAINTS,
     i2r_NAME_CONSTRAINTS, 0,
-    NULL
+    NULL,
 };
 
 ASN1_SEQUENCE(GENERAL_SUBTREE) = {
         ASN1_SIMPLE(GENERAL_SUBTREE, base, GENERAL_NAME),
         ASN1_IMP_OPT(GENERAL_SUBTREE, minimum, ASN1_INTEGER, 0),
-        ASN1_IMP_OPT(GENERAL_SUBTREE, maximum, ASN1_INTEGER, 1)
+        ASN1_IMP_OPT(GENERAL_SUBTREE, maximum, ASN1_INTEGER, 1),
 } ASN1_SEQUENCE_END(GENERAL_SUBTREE)
 
 ASN1_SEQUENCE(NAME_CONSTRAINTS) = {
diff --git a/crypto/x509v3/v3_ocsp.c b/crypto/x509v3/v3_ocsp.c
index c63646a..3b6b86c 100644
--- a/crypto/x509v3/v3_ocsp.c
+++ b/crypto/x509v3/v3_ocsp.c
@@ -31,7 +31,7 @@
     0, 0,
     0, 0,
     i2r_ocsp_acutoff, 0,
-    NULL
+    NULL,
 };
 
 const X509V3_EXT_METHOD v3_ocsp_nocheck = {
@@ -40,7 +40,7 @@
     0, s2i_ocsp_nocheck,
     0, 0,
     i2r_ocsp_nocheck, 0,
-    NULL
+    NULL,
 };
 
 static int i2r_ocsp_acutoff(const X509V3_EXT_METHOD *method, void *cutoff,
diff --git a/crypto/x509v3/v3_pcons.c b/crypto/x509v3/v3_pcons.c
index 1a46314..5054e2a 100644
--- a/crypto/x509v3/v3_pcons.c
+++ b/crypto/x509v3/v3_pcons.c
@@ -85,7 +85,7 @@
 
 ASN1_SEQUENCE(POLICY_CONSTRAINTS) = {
         ASN1_IMP_OPT(POLICY_CONSTRAINTS, requireExplicitPolicy, ASN1_INTEGER,0),
-        ASN1_IMP_OPT(POLICY_CONSTRAINTS, inhibitPolicyMapping, ASN1_INTEGER,1)
+        ASN1_IMP_OPT(POLICY_CONSTRAINTS, inhibitPolicyMapping, ASN1_INTEGER,1),
 } ASN1_SEQUENCE_END(POLICY_CONSTRAINTS)
 
 IMPLEMENT_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS)
diff --git a/crypto/x509v3/v3_pmaps.c b/crypto/x509v3/v3_pmaps.c
index caacdb2..c26510e 100644
--- a/crypto/x509v3/v3_pmaps.c
+++ b/crypto/x509v3/v3_pmaps.c
@@ -77,12 +77,12 @@
     i2v_POLICY_MAPPINGS,
     v2i_POLICY_MAPPINGS,
     0, 0,
-    NULL
+    NULL,
 };
 
 ASN1_SEQUENCE(POLICY_MAPPING) = {
         ASN1_SIMPLE(POLICY_MAPPING, issuerDomainPolicy, ASN1_OBJECT),
-        ASN1_SIMPLE(POLICY_MAPPING, subjectDomainPolicy, ASN1_OBJECT)
+        ASN1_SIMPLE(POLICY_MAPPING, subjectDomainPolicy, ASN1_OBJECT),
 } ASN1_SEQUENCE_END(POLICY_MAPPING)
 
 ASN1_ITEM_TEMPLATE(POLICY_MAPPINGS) =
diff --git a/crypto/x509v3/v3_skey.c b/crypto/x509v3/v3_skey.c
index 926eecd..78e1769 100644
--- a/crypto/x509v3/v3_skey.c
+++ b/crypto/x509v3/v3_skey.c
@@ -157,5 +157,5 @@
     i2s_ASN1_OCTET_STRING_cb,
     s2i_skey_id,
     0, 0, 0, 0,
-    NULL
+    NULL,
 };