aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/Builtins.cpp
diff options
context:
space:
mode:
authorMital Ashok <mital@mitalashok.co.uk>2024-07-17 14:08:51 +0100
committerGitHub <noreply@github.com>2024-07-17 15:08:51 +0200
commit396a5ba51e9e47f818a749ec3f2368e4fea6a67f (patch)
tree548c2256f2e4c94731c4baccebe52152387499b1 /clang/lib/Basic/Builtins.cpp
parent8917d52938b907b00fced24506708b381f472890 (diff)
downloadllvm-396a5ba51e9e47f818a749ec3f2368e4fea6a67f.zip
llvm-396a5ba51e9e47f818a749ec3f2368e4fea6a67f.tar.gz
llvm-396a5ba51e9e47f818a749ec3f2368e4fea6a67f.tar.bz2
[Clang] Add attribute for consteval builtin functions (#91894)
Builtins with the new `Consteval` attribute will also be marked `Constexpr` and will only be available in C++20 mode where `consteval` makes sense.
Diffstat (limited to 'clang/lib/Basic/Builtins.cpp')
-rw-r--r--clang/lib/Basic/Builtins.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Basic/Builtins.cpp b/clang/lib/Basic/Builtins.cpp
index b116abb..7116e27 100644
--- a/clang/lib/Basic/Builtins.cpp
+++ b/clang/lib/Basic/Builtins.cpp
@@ -119,6 +119,9 @@ static bool builtinIsSupported(const Builtin::Info &BuiltinInfo,
/* CPlusPlus Unsupported */
if (!LangOpts.CPlusPlus && BuiltinInfo.Langs == CXX_LANG)
return false;
+ /* consteval Unsupported */
+ if (!LangOpts.CPlusPlus20 && strchr(BuiltinInfo.Attributes, 'G') != nullptr)
+ return false;
return true;
}