[clang] [Clang] Add __has_target_builtin macro (PR #126324)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 12 08:51:41 PST 2025


================
@@ -96,6 +100,47 @@ the ``<cmath>`` header file to conditionally make a function constexpr whenever
 the constant evaluation of the corresponding builtin (for example,
 ``std::fmax`` calls ``__builtin_fmax``) is supported in Clang.
 
+``__has_target_builtin``
+------------------------
+
+This function-like macro takes a single identifier argument that is the name of
+a builtin function, a builtin pseudo-function (taking one or more type
+arguments), or a builtin template.
+It evaluates to 1 if the builtin is supported on the current target or 0 if not.
+
+``__has_builtin`` and ``__has_target_builtin`` behave identically for normal C++ compilations.
----------------
AaronBallman wrote:

Yeah, I think it would, along with the prose explaining why that's not a bug but is actually by design for `__has_builtin`. I think users would reasonably look at that and say it should not be an error, so it'd be nice to make sure they understand the intent.

https://github.com/llvm/llvm-project/pull/126324


More information about the cfe-commits mailing list