https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120249
Federico Kircheis <federico at kircheis dot it> changed: What |Removed |Added ---------------------------------------------------------------------------- Version|unknown |16.0 --- Comment #1 from Federico Kircheis <federico at kircheis dot it> --- To give more context on the issue In my case, the offending comments are even empty; something like ---- #define CPP_PP_CAT_(X, ...) X ## __VA_ARGS__ #define CPP_PP_CAT(X, ...) CPP_PP_CAT_(X, __VA_ARGS__) int bar(){ int CPP_PP_CAT(a, // b) = 12; return ab; } ---- The main reason for such comments to exists, is to prevent some formatters to make too long lines. I do not know how much that practice is used, but I've already seen it in multiple projects. With that in mind; if determining if a comment interferes with macros is too hard, maybe to unconditionally removing empty comments is good enough for most use-cases.