diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2020-05-01 17:28:00 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2020-05-01 17:28:00 -0400 |
commit | 0da06d9faf9e865c7d16a358a30ebe1a0014a709 (patch) | |
tree | 369f6076d0fe7f51f2a6159c49ae993dd9484c9d /src | |
parent | d66935448f41b1e0af11a939b6c5aaa9a619524a (diff) | |
download | postgresql-0da06d9faf9e865c7d16a358a30ebe1a0014a709.tar.gz postgresql-0da06d9faf9e865c7d16a358a30ebe1a0014a709.zip |
Get rid of trailing semicolons in C macro definitions.
Writing a trailing semicolon in a macro is almost never the right thing,
because you almost always want to write a semicolon after each macro
call instead. (Even if there was some reason to prefer not to, pgindent
would probably make a hash of code formatted that way; so within PG the
rule should basically be "don't do it".) Thus, if we have a semi inside
the macro, the compiler sees "something;;". Much of the time the extra
empty statement is harmless, but it could lead to mysterious syntax
errors at call sites. In perhaps an overabundance of neatnik-ism, let's
run around and get rid of the excess semicolons whereever possible.
The only thing worse than a mysterious syntax error is a mysterious
syntax error that only happens in the back branches; therefore,
backpatch these changes where relevant, which is most of them because
most of these mistakes are old. (The lack of reported problems shows
that this is largely a hypothetical issue, but still, it could bite
us in some future patch.)
John Naylor and Tom Lane
Discussion: https://postgr.es/m/CACPNZCs0qWTqJ2QUSGJ07B7uvAvzMb-KbG2q+oo+J3tsWN5cqw@mail.gmail.com
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/nodes/readfuncs.c | 8 | ||||
-rw-r--r-- | src/backend/optimizer/util/pathnode.c | 4 | ||||
-rw-r--r-- | src/backend/utils/adt/formatting.c | 6 | ||||
-rw-r--r-- | src/backend/utils/sort/gen_qsort_tuple.pl | 2 | ||||
-rw-r--r-- | src/bin/pg_dump/pg_backup_archiver.h | 2 | ||||
-rw-r--r-- | src/include/access/hash.h | 2 | ||||
-rw-r--r-- | src/include/access/nbtree.h | 2 | ||||
-rw-r--r-- | src/port/qsort.c | 2 | ||||
-rw-r--r-- | src/port/qsort_arg.c | 2 |
9 files changed, 16 insertions, 14 deletions
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c index 644e0f5fc73..eb01584a5f6 100644 --- a/src/backend/nodes/readfuncs.c +++ b/src/backend/nodes/readfuncs.c @@ -154,22 +154,22 @@ /* Read an attribute number array */ #define READ_ATTRNUMBER_ARRAY(fldname, len) \ token = pg_strtok(&length); /* skip :fldname */ \ - local_node->fldname = readAttrNumberCols(len); + local_node->fldname = readAttrNumberCols(len) /* Read an oid array */ #define READ_OID_ARRAY(fldname, len) \ token = pg_strtok(&length); /* skip :fldname */ \ - local_node->fldname = readOidCols(len); + local_node->fldname = readOidCols(len) /* Read an int array */ #define READ_INT_ARRAY(fldname, len) \ token = pg_strtok(&length); /* skip :fldname */ \ - local_node->fldname = readIntCols(len); + local_node->fldname = readIntCols(len) /* Read a bool array */ #define READ_BOOL_ARRAY(fldname, len) \ token = pg_strtok(&length); /* skip :fldname */ \ - local_node->fldname = readBoolCols(len); + local_node->fldname = readBoolCols(len) /* Routine exit */ #define READ_DONE() \ diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c index e991385059f..d09bc6d291a 100644 --- a/src/backend/optimizer/util/pathnode.c +++ b/src/backend/optimizer/util/pathnode.c @@ -3859,7 +3859,7 @@ do { \ (path) = reparameterize_path_by_child(root, (path), child_rel); \ if ((path) == NULL) \ return NULL; \ -} while(0); +} while(0) #define REPARAMETERIZE_CHILD_PATH_LIST(pathlist) \ do { \ @@ -3870,7 +3870,7 @@ do { \ if ((pathlist) == NIL) \ return NULL; \ } \ -} while(0); +} while(0) Path *new_path; ParamPathInfo *new_ppi; diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c index 95f7d0538e0..aab5802edb4 100644 --- a/src/backend/utils/adt/formatting.c +++ b/src/backend/utils/adt/formatting.c @@ -479,7 +479,7 @@ typedef struct (_X)->mode, (_X)->hh, (_X)->pm, (_X)->mi, (_X)->ss, (_X)->ssss, \ (_X)->d, (_X)->dd, (_X)->ddd, (_X)->mm, (_X)->ms, (_X)->year, \ (_X)->bc, (_X)->ww, (_X)->w, (_X)->cc, (_X)->j, (_X)->us, \ - (_X)->yysz, (_X)->clock); + (_X)->yysz, (_X)->clock) #define DEBUG_TM(_X) \ elog(DEBUG_elog_output, "TM:\nsec %d\nyear %d\nmin %d\nwday %d\nhour %d\nyday %d\nmday %d\nnisdst %d\nmon %d\n",\ (_X)->tm_sec, (_X)->tm_year,\ @@ -2731,11 +2731,13 @@ DCH_to_char(FormatNode *node, bool is_interval, TmToChar *in, char *out, Oid col str_numth(s, s, S_TH_TYPE(n->suffix)); s += strlen(s); break; + #define DCH_to_char_fsec(frac_fmt, frac_val) \ sprintf(s, frac_fmt, (int) (frac_val)); \ if (S_THth(n->suffix)) \ str_numth(s, s, S_TH_TYPE(n->suffix)); \ - s += strlen(s); + s += strlen(s) + case DCH_FF1: /* tenth of second */ DCH_to_char_fsec("%01d", in->fsec / 100000); break; diff --git a/src/backend/utils/sort/gen_qsort_tuple.pl b/src/backend/utils/sort/gen_qsort_tuple.pl index 9ed6cfc7eaa..eb0f7c5814f 100644 --- a/src/backend/utils/sort/gen_qsort_tuple.pl +++ b/src/backend/utils/sort/gen_qsort_tuple.pl @@ -126,7 +126,7 @@ swapfunc(SortTuple *a, SortTuple *b, size_t n) SortTuple t = *(a); \ *(a) = *(b); \ *(b) = t; \ - } while (0); + } while (0) #define vecswap(a, b, n) if ((n) > 0) swapfunc(a, b, n) diff --git a/src/bin/pg_dump/pg_backup_archiver.h b/src/bin/pg_dump/pg_backup_archiver.h index 67f34743b80..f9e6b42752a 100644 --- a/src/bin/pg_dump/pg_backup_archiver.h +++ b/src/bin/pg_dump/pg_backup_archiver.h @@ -98,7 +98,7 @@ typedef z_stream *z_streamp; #define K_VERS_MAJOR 1 #define K_VERS_MINOR 14 #define K_VERS_REV 0 -#define K_VERS_SELF MAKE_ARCHIVE_VERSION(K_VERS_MAJOR, K_VERS_MINOR, K_VERS_REV); +#define K_VERS_SELF MAKE_ARCHIVE_VERSION(K_VERS_MAJOR, K_VERS_MINOR, K_VERS_REV) /* Newest format we can read */ #define K_VERS_MAX MAKE_ARCHIVE_VERSION(K_VERS_MAJOR, K_VERS_MINOR, 255) diff --git a/src/include/access/hash.h b/src/include/access/hash.h index 94b643cc779..7e7b1b73d86 100644 --- a/src/include/access/hash.h +++ b/src/include/access/hash.h @@ -148,7 +148,7 @@ typedef struct HashScanPosData (scanpos).firstItem = 0; \ (scanpos).lastItem = 0; \ (scanpos).itemIndex = 0; \ - } while (0); + } while (0) /* * HashScanOpaqueData is private state for a hash index scan. diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index 97c96d0a3a3..44a472d76b6 100644 --- a/src/include/access/nbtree.h +++ b/src/include/access/nbtree.h @@ -888,7 +888,7 @@ typedef BTScanPosData *BTScanPos; (scanpos).buf = InvalidBuffer; \ (scanpos).lsn = InvalidXLogRecPtr; \ (scanpos).nextTupleOffset = 0; \ - } while (0); + } while (0) /* We need one of these for each equality-type SK_SEARCHARRAY scan key */ typedef struct BTArrayKeyInfo diff --git a/src/port/qsort.c b/src/port/qsort.c index 409f69a128b..fa992e2081d 100644 --- a/src/port/qsort.c +++ b/src/port/qsort.c @@ -80,7 +80,7 @@ do { \ } while (0) #define SWAPINIT(a, es) swaptype = ((char *)(a) - (char *)0) % sizeof(long) || \ - (es) % sizeof(long) ? 2 : (es) == sizeof(long)? 0 : 1; + (es) % sizeof(long) ? 2 : (es) == sizeof(long)? 0 : 1 static void swapfunc(char *a, char *b, size_t n, int swaptype) diff --git a/src/port/qsort_arg.c b/src/port/qsort_arg.c index a2194b0fb18..6d54fbc2b42 100644 --- a/src/port/qsort_arg.c +++ b/src/port/qsort_arg.c @@ -80,7 +80,7 @@ do { \ } while (0) #define SWAPINIT(a, es) swaptype = ((char *)(a) - (char *)0) % sizeof(long) || \ - (es) % sizeof(long) ? 2 : (es) == sizeof(long)? 0 : 1; + (es) % sizeof(long) ? 2 : (es) == sizeof(long)? 0 : 1 static void swapfunc(char *a, char *b, size_t n, int swaptype) |