thakis marked an inline comment as done. thakis added inline comments.
================ Comment at: clang/lib/Lex/PPMacroExpansion.cpp:497 + Args = ReadMacroCallArgumentList(Identifier, MI, ExpansionEnd); ---------------- rnk wrote: > Can this re-enter, something like: > MACRO1(MACRO2(a1), MACRO3( > #include "asdf" > ) > In this case, I think your diagnostic might do a null-deref. Maybe just add > this test case and add a null test for it. This works fine: ``` #define MACRO1(a, b, c) #define MACRO2(a, b, c) #define MACRO3(a, b, c) MACRO1(MACRO2(a1), MACRO3( #include "asdf" ) $ out/gn/bin/clang -c test.cc test.cc:30:2: error: embedding a #include directive within macro arguments is not supported #include "asdf" ^ test.cc:29:1: note: expansion of macro 'MACRO1' requested here MACRO1(MACRO2(a1), MACRO3( ^ test.cc:29:1: error: unterminated function-like macro invocation MACRO1(MACRO2(a1), MACRO3( ^ test.cc:25:9: note: macro 'MACRO1' defined here #define MACRO1(a, b, c) ^ 2 errors generated. ``` Note that the diag is only emitted if inMacroArgs is true, and ArgMacro is always set to non-nullptr exactly when that's true. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58161/new/ https://reviews.llvm.org/D58161 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits