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);
...