aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2020-05-01 17:28:01 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2020-05-01 17:28:01 -0400
commita8df87d8638c4ae6e8998fdffe54e02fe71882aa (patch)
tree522e14a58e823efd0b1a6dfa32f132dce012c43b
parent22dcb6c206ac72d0ea722d22e89e5755beed7b76 (diff)
downloadpostgresql-a8df87d8638c4ae6e8998fdffe54e02fe71882aa.tar.gz
postgresql-a8df87d8638c4ae6e8998fdffe54e02fe71882aa.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
-rw-r--r--contrib/btree_gist/btree_ts.c5
-rw-r--r--contrib/btree_gist/btree_utils_num.h2
-rw-r--r--contrib/pg_trgm/trgm.h2
-rw-r--r--contrib/pgcrypto/crypt-blowfish.c12
-rw-r--r--src/backend/nodes/readfuncs.c8
-rw-r--r--src/backend/utils/adt/formatting.c2
-rw-r--r--src/backend/utils/sort/gen_qsort_tuple.pl2
-rw-r--r--src/include/access/nbtree.h2
-rw-r--r--src/port/qsort.c2
-rw-r--r--src/port/qsort_arg.c2
10 files changed, 21 insertions, 18 deletions
diff --git a/contrib/btree_gist/btree_ts.c b/contrib/btree_gist/btree_ts.c
index ab22b271d33..65dbc168118 100644
--- a/contrib/btree_gist/btree_ts.c
+++ b/contrib/btree_gist/btree_ts.c
@@ -350,12 +350,13 @@ gbt_ts_union(PG_FUNCTION_ARGS)
}
-#define penalty_check_max_float(val) do { \
+#define penalty_check_max_float(val) \
+ do { \
if ( val > FLT_MAX ) \
val = FLT_MAX; \
if ( val < -FLT_MAX ) \
val = -FLT_MAX; \
-} while(false);
+ } while (0)
Datum
diff --git a/contrib/btree_gist/btree_utils_num.h b/contrib/btree_gist/btree_utils_num.h
index a33491bc090..067bb4026f9 100644
--- a/contrib/btree_gist/btree_utils_num.h
+++ b/contrib/btree_gist/btree_utils_num.h
@@ -74,7 +74,7 @@ typedef struct
(*(result)) += (float) ( ((double)(tmp)) / ( (double)(tmp) + ( ((double)(oupper))*0.49F - ((double)(olower))*0.49F ) ) ); \
(*(result)) *= (FLT_MAX / (((GISTENTRY *) PG_GETARG_POINTER(0))->rel->rd_att->natts + 1)); \
} \
-} while (0);
+} while (0)
/*
diff --git a/contrib/pg_trgm/trgm.h b/contrib/pg_trgm/trgm.h
index 8cd88e763c1..792d09d24bf 100644
--- a/contrib/pg_trgm/trgm.h
+++ b/contrib/pg_trgm/trgm.h
@@ -45,7 +45,7 @@ typedef char trgm[3];
*(((char*)(a))+0) = *(((char*)(b))+0); \
*(((char*)(a))+1) = *(((char*)(b))+1); \
*(((char*)(a))+2) = *(((char*)(b))+2); \
-} while(0);
+} while(0)
#ifdef KEEPONLYALNUM
#define ISWORDCHR(c) (t_isalpha(c) || t_isdigit(c))
diff --git a/contrib/pgcrypto/crypt-blowfish.c b/contrib/pgcrypto/crypt-blowfish.c
index 6feaefcf7be..dcaacfb9c26 100644
--- a/contrib/pgcrypto/crypt-blowfish.c
+++ b/contrib/pgcrypto/crypt-blowfish.c
@@ -469,7 +469,7 @@ BF_swap(BF_word *x, int count)
tmp3 ^= tmp2; \
(R) ^= data.ctx.P[(N) + 1]; \
tmp3 += tmp1; \
- (R) ^= tmp3;
+ (R) ^= tmp3
#else
/* Architectures with no complicated addressing modes supported */
#define BF_INDEX(S, i) \
@@ -490,7 +490,7 @@ BF_swap(BF_word *x, int count)
tmp3 ^= tmp2; \
(R) ^= data.ctx.P[(N) + 1]; \
tmp3 += tmp1; \
- (R) ^= tmp3;
+ (R) ^= tmp3
#endif
/*
@@ -516,17 +516,18 @@ BF_swap(BF_word *x, int count)
BF_ROUND(R, L, 15); \
tmp4 = R; \
R = L; \
- L = tmp4 ^ data.ctx.P[BF_N + 1];
+ L = tmp4 ^ data.ctx.P[BF_N + 1]
#if BF_ASM
extern void _BF_body_r(BF_ctx *ctx);
#define BF_body() \
- _BF_body_r(&data.ctx);
+ _BF_body_r(&data.ctx)
#else
#define BF_body() \
+do { \
L = R = 0; \
ptr = data.ctx.P; \
do { \
@@ -542,7 +543,8 @@ extern void _BF_body_r(BF_ctx *ctx);
BF_ENCRYPT; \
*(ptr - 2) = L; \
*(ptr - 1) = R; \
- } while (ptr < &data.ctx.S[3][0xFF]);
+ } while (ptr < &data.ctx.S[3][0xFF]); \
+} while (0)
#endif
static void
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index 0c8b258945b..4601a63cd05 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -135,22 +135,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/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c
index e1e05e4df2c..24484b4c57f 100644
--- a/src/backend/utils/adt/formatting.c
+++ b/src/backend/utils/adt/formatting.c
@@ -422,7 +422,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,\
diff --git a/src/backend/utils/sort/gen_qsort_tuple.pl b/src/backend/utils/sort/gen_qsort_tuple.pl
index 6186d0a5bab..5eb8fb8ba3e 100644
--- a/src/backend/utils/sort/gen_qsort_tuple.pl
+++ b/src/backend/utils/sort/gen_qsort_tuple.pl
@@ -125,7 +125,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/include/access/nbtree.h b/src/include/access/nbtree.h
index 92c1e66c416..5e51261a4c9 100644
--- a/src/include/access/nbtree.h
+++ b/src/include/access/nbtree.h
@@ -585,7 +585,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 1a8ee08c8be..6ebb7d4e8bf 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 24acd2cd4e4..a75eeced2f6 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)