On Thu, Jun 12, 2014 at 3:11 AM, Carl Worth <cwo...@cworth.org> wrote: > Previously, the test suite was expecting the compiler to allow a redefintion > of a macro with whitespace added, but gcc is more strict and allows only for > changes in the amounts of whitespace, (but insists that whitespace exist or > not in exactly the same places). > > See: https://gcc.gnu.org/onlinedocs/cpp/Undefining-and-Redefining-Macros.html: > > These definitions are effectively the same: > > #define FOUR (2 + 2) > #define FOUR (2 + 2) > #define FOUR (2 /* two */ + 2) > > but these are not: > > #define FOUR (2 + 2) > #define FOUR ( 2+2 ) > #define FOUR (2 * 2) > #define FOUR(score,and,seven,years,ago) (2 + 2) > > This change adjusts the existing "redefine-macro-legitimate" test to work with > the more strict understanding, and adds a new "redefine-whitespace" test to > verify that changes in the position of whitespace are flagged as errors.
You may want to quote the relevant part from the C++ spec (16.3 Macro replacement, [cpp.replace]): Two replacement lists are identical if and only if the preprocessing tokens in both have the same number, ordering, spelling, and white-space separation, where all white-space separations are considered identical. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev