[clang] [Clang] Support libstdc++ workarounds when using `-E` (PR #210802)

Shafik Yaghmour via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 14 13:55:01 PDT 2026


================
@@ -0,0 +1,27 @@
+// RUN: %clang_cc1 -E -verify %s
+
+#pragma clang __set_pp_state // expected-error {{expected identifier after '#pragma clang __set_pp_state'}}
+#pragma clang __set_pp_state 123984 // expected-error {{expected identifier after '#pragma clang __set_pp_state'}}
+
+#pragma clang __set_pp_state foo // expected-error {{invalid argument 'foo' in '#pragma clang __set_pp_state'}}
+#pragma clang __set_pp_state void // expected-error {{invalid argument 'void' in '#pragma clang __set_pp_state'}}
+
+#pragma clang __set_pp_state __GLIBCXX__ foo // expected-error {{expected integer after '#pragma clang __set_pp_state __GLIBCXX__'}}
+#pragma clang __set_pp_state __GLIBCXX__ 100000000000000000000000000000 // expected-error {{expected integer after '#pragma clang __set_pp_state __GLIBCXX__'}}
----------------
shafik wrote:

Do we expect boolean, binary interer or hex integer literals to work?

Maybe check char and string literals.

nullptr?

https://github.com/llvm/llvm-project/pull/210802


More information about the cfe-commits mailing list