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.sar...@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.sar...@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);
+ }

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to