Skip to content

Commit 1c67334

Browse files
committed
Revert "[Clang] Reland '__has_builtin should return false for aux triple builtins' (llvm#126324)"
This reverts commit 0efcb83.
1 parent ff9a254 commit 1c67334

File tree

5 files changed

+3
-33
lines changed

5 files changed

+3
-33
lines changed

clang/docs/LanguageExtensions.rst

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,6 @@ It can be used like this:
6868
``__has_builtin`` should not be used to detect support for a builtin macro;
6969
use ``#ifdef`` instead.
7070

71-
When compiling with target offloading, ``__has_builtin`` only considers the
72-
currently active target.
73-
7471
``__has_constexpr_builtin``
7572
---------------------------
7673

clang/docs/ReleaseNotes.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ Potentially Breaking Changes
3737
C/C++ Language Potentially Breaking Changes
3838
-------------------------------------------
3939

40-
- The ``__has_builtin`` function now only considers the currently active target when being used with target offloading.
41-
4240
C++ Specific Potentially Breaking Changes
4341
-----------------------------------------
4442
- For C++20 modules, the Reduced BMI mode will be the default option. This may introduce

clang/lib/Lex/PPMacroExpansion.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1760,8 +1760,7 @@ void Preprocessor::ExpandBuiltinMacro(Token &Tok) {
17601760
Tok, *this, diag::err_feature_check_malformed);
17611761
if (!II)
17621762
return false;
1763-
unsigned BuiltinID = II->getBuiltinID();
1764-
if (BuiltinID != 0) {
1763+
else if (II->getBuiltinID() != 0) {
17651764
switch (II->getBuiltinID()) {
17661765
case Builtin::BI__builtin_cpu_is:
17671766
return getTargetInfo().supportsCpuIs();
@@ -1775,11 +1774,8 @@ void Preprocessor::ExpandBuiltinMacro(Token &Tok) {
17751774
// usual allocation and deallocation functions. Required by libc++
17761775
return 201802;
17771776
default:
1778-
// __has_builtin should return false for aux builtins.
1779-
if (getBuiltinInfo().isAuxBuiltinID(BuiltinID))
1780-
return false;
17811777
return Builtin::evaluateRequiredTargetFeatures(
1782-
getBuiltinInfo().getRequiredFeatures(BuiltinID),
1778+
getBuiltinInfo().getRequiredFeatures(II->getBuiltinID()),
17831779
getTargetInfo().getTargetOpts().FeatureMap);
17841780
}
17851781
return true;

clang/test/Headers/__cpuidex_conflict.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
// RUN: %clang_cc1 %s -ffreestanding -fms-extensions -fms-compatibility \
44
// RUN: -fms-compatibility-version=19.00 -triple x86_64-pc-windows-msvc -emit-llvm -o -
55
// %clang_cc1 %s -ffreestanding -triple x86_64-w64-windows-gnu -fms-extensions -emit-llvm -o -
6-
//
7-
// FIXME: See https://github.com/llvm/llvm-project/pull/121839 and
8-
// FIXME: https://github.com/llvm/llvm-project/pull/126324
9-
// RUN: not %clang_cc1 %s -ffreestanding -fopenmp -fopenmp-is-target-device -aux-triple x86_64-unknown-linux-gnu
6+
// RUN: %clang_cc1 %s -ffreestanding -fopenmp -fopenmp-is-target-device -aux-triple x86_64-unknown-linux-gnu
107

118
typedef __SIZE_TYPE__ size_t;
129

clang/test/Preprocessor/builtin_aux_info.cpp

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)