[clang] [clang][Parser] Fix lookup of builtins with pragma intrinsic (PR #142019)
Nick Sarnie via cfe-commits
cfe-commits at lists.llvm.org
Thu May 29 12:30:13 PDT 2025
https://github.com/sarnex created https://github.com/llvm/llvm-project/pull/142019
None
>From 5b0e367fcdb33763e3f4f94f8604db741801261d Mon Sep 17 00:00:00 2001
From: "Sarnie, Nick" <nick.sarnie at intel.com>
Date: Thu, 29 May 2025 12:29:45 -0700
Subject: [PATCH] [clang][Parser] Fix lookup of builtins with pragma intrinsic
Signed-off-by: Sarnie, Nick <nick.sarnie at intel.com>
---
clang/lib/Parse/ParsePragma.cpp | 2 +-
.../Sema/builtin-pragma-intrinsic-namespace.cpp | 14 ++++++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
create mode 100644 clang/test/Sema/builtin-pragma-intrinsic-namespace.cpp
diff --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp
index 4e67fd033b9aa..617e77952dcb9 100644
--- a/clang/lib/Parse/ParsePragma.cpp
+++ b/clang/lib/Parse/ParsePragma.cpp
@@ -3800,7 +3800,7 @@ void PragmaMSIntrinsicHandler::HandlePragma(Preprocessor &PP,
// If the builtin hasn't already been declared, declare it now.
DeclarationNameInfo NameInfo(II, Tok.getLocation());
LookupResult Previous(Actions, NameInfo, Sema::LookupOrdinaryName,
- Actions.forRedeclarationInCurContext());
+ RedeclarationKind::NotForRedeclaration);
Actions.LookupName(Previous, Actions.getCurScope(),
/*CreateBuiltins*/ false);
if (Previous.empty())
diff --git a/clang/test/Sema/builtin-pragma-intrinsic-namespace.cpp b/clang/test/Sema/builtin-pragma-intrinsic-namespace.cpp
new file mode 100644
index 0000000000000..9c0f190db7f10
--- /dev/null
+++ b/clang/test/Sema/builtin-pragma-intrinsic-namespace.cpp
@@ -0,0 +1,14 @@
+// RUN: %clang_cc1 -triple x86_64-windows-msvc -fms-compatibility -fsyntax-only -verify %s
+
+// expected-no-diagnostics
+
+unsigned __int64 _umul128(unsigned __int64, unsigned __int64,
+ unsigned __int64 *);
+
+namespace {}
+#pragma intrinsic(_umul128)
+
+ void foo() {
+ unsigned __int64 carry;
+ unsigned __int64 low = _umul128(0, 0, &carry);
+ }
More information about the cfe-commits
mailing list