[clang] [clang][Preprocessor] Fix expansion locations for feature-like builtin macros (PR #207130)

Macro Terra via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 9 10:46:19 PDT 2026


================
@@ -552,6 +552,25 @@ file './input.cpp'
   }
 }
 
+TEST_F(TokenCollectorTest, FeatureLikeBuiltinMacros) {
+  recordTokens("__has_builtin(__builtin_allow_runtime_check)\n");
+  EXPECT_THAT(Buffer.expandedTokens(),
+              ElementsAre(AllOf(Kind(tok::numeric_constant), HasText("1")),
+                          Kind(tok::eof)));
+  auto ExpansionRange =
+      SourceMgr->getExpansionRange(findExpanded("1").front().location());
+  auto MacroInvocation =
+      findSpelled("__has_builtin ( __builtin_allow_runtime_check )");
+  EXPECT_EQ(MacroInvocation.front().location(), ExpansionRange.getBegin());
+  EXPECT_EQ(MacroInvocation.back().location(), ExpansionRange.getEnd());
+
----------------
hongtaihu wrote:

I did some changes.

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


More information about the cfe-commits mailing list