https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82784
Bug ID: 82784 Summary: Remove semicolon after "do {} while (0)" macros Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other Assignee: unassigned at gcc dot gnu.org Reporter: vries at gcc dot gnu.org Target Milestone: --- Wrapping a multi-statement macro body in "do {} while (0)" in order to use the macro as a single-statement entity only works if the macro body is not terminated with a semicolon. However, that still seems to happen, f.i.: ... $ egrep -d skip 'while \((0|false)\);' gcc/* gcc/asan.c: } while (0); gcc/defaults.h: } while (0); gcc/graphite-scop-detection.c: } while (0); gcc/print-rtl-function.c: } while (0); gcc/read-rtl-function.c: } while (0); gcc/reload.c: while (0); ...