https://github.com/sarnex created https://github.com/llvm/llvm-project/pull/124626
This reverts commit 1c28b9237382b093f477479c993c80181922ca6a. Breaks CUDA on ARM. >From 287dcf646d4c7520c8637a798d677168e100b515 Mon Sep 17 00:00:00 2001 From: "Sarnie, Nick" <nick.sar...@intel.com> Date: Mon, 27 Jan 2025 13:00:28 -0800 Subject: [PATCH] Revert "[Clang] __has_builtin should return false for aux triple builtins (#121839)" This reverts commit 1c28b9237382b093f477479c993c80181922ca6a. Breaks CUDA on ARM. --- clang/lib/Lex/PPMacroExpansion.cpp | 10 +++------- clang/test/Headers/__cpuidex_conflict.c | 4 +--- clang/test/Preprocessor/builtin_aux_info.cpp | 18 ------------------ 3 files changed, 4 insertions(+), 28 deletions(-) delete mode 100644 clang/test/Preprocessor/builtin_aux_info.cpp diff --git a/clang/lib/Lex/PPMacroExpansion.cpp b/clang/lib/Lex/PPMacroExpansion.cpp index 9cf29668f251fc..347c13da0ad215 100644 --- a/clang/lib/Lex/PPMacroExpansion.cpp +++ b/clang/lib/Lex/PPMacroExpansion.cpp @@ -1804,9 +1804,8 @@ void Preprocessor::ExpandBuiltinMacro(Token &Tok) { diag::err_feature_check_malformed); if (!II) return false; - auto BuiltinID = II->getBuiltinID(); - if (BuiltinID != 0) { - switch (BuiltinID) { + else if (II->getBuiltinID() != 0) { + switch (II->getBuiltinID()) { case Builtin::BI__builtin_cpu_is: return getTargetInfo().supportsCpuIs(); case Builtin::BI__builtin_cpu_init: @@ -1819,11 +1818,8 @@ void Preprocessor::ExpandBuiltinMacro(Token &Tok) { // usual allocation and deallocation functions. Required by libc++ return 201802; default: - // __has_builtin should return false for aux builtins. - if (getBuiltinInfo().isAuxBuiltinID(BuiltinID)) - return false; return Builtin::evaluateRequiredTargetFeatures( - getBuiltinInfo().getRequiredFeatures(BuiltinID), + getBuiltinInfo().getRequiredFeatures(II->getBuiltinID()), getTargetInfo().getTargetOpts().FeatureMap); } return true; diff --git a/clang/test/Headers/__cpuidex_conflict.c b/clang/test/Headers/__cpuidex_conflict.c index 0f5e6e5e0a0ff4..8687a6aa2f897a 100644 --- a/clang/test/Headers/__cpuidex_conflict.c +++ b/clang/test/Headers/__cpuidex_conflict.c @@ -3,9 +3,7 @@ // RUN: %clang_cc1 %s -ffreestanding -fms-extensions -fms-compatibility \ // RUN: -fms-compatibility-version=19.00 -triple x86_64-pc-windows-msvc -emit-llvm -o - // %clang_cc1 %s -ffreestanding -triple x86_64-w64-windows-gnu -fms-extensions -emit-llvm -o - -// -// FIXME: See https://github.com/llvm/llvm-project/pull/121839 -// RUN: not %clang_cc1 %s -ffreestanding -fopenmp -fopenmp-is-target-device -aux-triple x86_64-unknown-linux-gnu +// RUN: %clang_cc1 %s -ffreestanding -fopenmp -fopenmp-is-target-device -aux-triple x86_64-unknown-linux-gnu typedef __SIZE_TYPE__ size_t; diff --git a/clang/test/Preprocessor/builtin_aux_info.cpp b/clang/test/Preprocessor/builtin_aux_info.cpp deleted file mode 100644 index 60c8c6c492479a..00000000000000 --- a/clang/test/Preprocessor/builtin_aux_info.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// RUN: %clang_cc1 -fopenmp -triple=spirv64 -fopenmp-is-target-device \ -// RUN: -aux-triple x86_64-linux-unknown -E %s | FileCheck -implicit-check-not=BAD %s - -// RUN: %clang_cc1 -fopenmp -triple=nvptx64 -fopenmp-is-target-device \ -// RUN: -aux-triple x86_64-linux-unknown -E %s | FileCheck -implicit-check-not=BAD %s - -// RUN: %clang_cc1 -fopenmp -triple=amdgcn-amd-amdhsa -fopenmp-is-target-device \ -// RUN: -aux-triple x86_64-linux-unknown -E %s | FileCheck -implicit-check-not=BAD %s - -// RUN: %clang_cc1 -fopenmp -triple=aarch64 -fopenmp-is-target-device \ -// RUN: -aux-triple x86_64-linux-unknown -E %s | FileCheck -implicit-check-not=BAD %s - -// CHECK: GOOD -#if __has_builtin(__builtin_ia32_pause) - BAD -#else - GOOD -#endif _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits