https://github.com/bozicrHT created https://github.com/llvm/llvm-project/pull/160080
Clarify the documentation in Builtins.def by quoting literal attribute markers (e.g. 'n', 'r', 'U', 'N') to distinguish them from placeholders such as N in C<N,...>. This avoids confusion and makes the attribute docs clearer. From 1a407d5f2f7094353bdf5e1b030606a9f44e8695 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Radovan=20Bo=C5=BEi=C4=87?= <radovan.bo...@htecgroup.com> Date: Mon, 22 Sep 2025 13:56:13 +0200 Subject: [PATCH] [NFC][clang] Quote literal builtin attribute markers in Builtins.def docs Clarify the documentation in Builtins.def by quoting literal attribute markers (e.g. 'n', 'r', 'U', 'N') to distinguish them from placeholders such as N in C<N,...>. This avoids confusion and makes the attribute docs clearer. --- clang/include/clang/Basic/Builtins.def | 70 +++++++++++++------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/clang/include/clang/Basic/Builtins.def b/clang/include/clang/Basic/Builtins.def index 48437c9397570..edc7410b60ab6 100644 --- a/clang/include/clang/Basic/Builtins.def +++ b/clang/include/clang/Basic/Builtins.def @@ -67,38 +67,38 @@ // The third value provided to the macro specifies information about attributes // of the function. These must be kept in sync with the predicates in the // Builtin::Context class. Currently we have: -// n -> nothrow -// r -> noreturn -// U -> pure -// c -> const -// t -> signature is meaningless, use custom typechecking -// T -> type is not important to semantic analysis and codegen; recognize as -// builtin even if type doesn't match signature, and don't warn if we -// can't be sure the type is right -// F -> this is a libc/libm function with a '__builtin_' prefix added. -// f -> this is a libc/libm function without a '__builtin_' prefix, or with -// 'z', a C++ standard library function in namespace std::. This builtin -// is disableable by '-fno-builtin-foo' / '-fno-builtin-std-foo'. -// h -> this function requires a specific header or an explicit declaration. -// i -> this is a runtime library implemented function without the -// '__builtin_' prefix. It will be implemented in compiler-rt or libgcc. -// p:N: -> this is a printf-like function whose Nth argument is the format -// string. -// P:N: -> similar to the p:N: attribute, but the function is like vprintf -// in that it accepts its arguments as a va_list rather than -// through an ellipsis -// s:N: -> this is a scanf-like function whose Nth argument is the format -// string. -// S:N: -> similar to the s:N: attribute, but the function is like vscanf -// in that it accepts its arguments as a va_list rather than -// through an ellipsis -// e -> const, but only when -fno-math-errno and FP exceptions are ignored -// g -> const when FP exceptions are ignored -// j -> returns_twice (like setjmp) -// u -> arguments are not evaluated for their side-effects -// V:N: -> requires vectors of at least N bits to be legal -// C<N,M_0,...,M_k> -> callback behavior: argument N is called with argument -// M_0, ..., M_k as payload -// z -> this is a function in (possibly-versioned) namespace std -// E -> this function can be constant evaluated by Clang frontend -// G -> this is a C++20 consteval function +// 'n' -> nothrow +// 'r' -> noreturn +// 'U' -> pure +// 'c' -> const +// 't' -> signature is meaningless, use custom typechecking +// 'T' -> type is not important to semantic analysis and codegen; recognize as +// builtin even if type doesn't match signature, and don't warn if we +// can't be sure the type is right +// 'F' -> this is a libc/libm function with a '__builtin_' prefix added. +// 'f' -> this is a libc/libm function without a '__builtin_' prefix, or with +// 'z', a C++ standard library function in namespace std::. This builtin +// is disableable by '-fno-builtin-foo' / '-fno-builtin-std-foo'. +// 'h' -> this function requires a specific header or an explicit declaration. +// 'i' -> this is a runtime library implemented function without the +// '__builtin_' prefix. It will be implemented in compiler-rt or libgcc. +// 'p':N: -> this is a printf-like function whose Nth argument is the format +// string. +// 'P':N: -> similar to the p:N: attribute, but the function is like vprintf +// in that it accepts its arguments as a va_list rather than +// through an ellipsis +// 's':N: -> this is a scanf-like function whose Nth argument is the format +// string. +// 'S':N: -> similar to the s:N: attribute, but the function is like vscanf +// in that it accepts its arguments as a va_list rather than +// through an ellipsis +// 'e' -> const, but only when -fno-math-errno and FP exceptions are ignored +// 'g' -> const when FP exceptions are ignored +// 'j' -> returns_twice (like setjmp) +// 'u' -> arguments are not evaluated for their side-effects +// 'V':N: -> requires vectors of at least N bits to be legal +// 'C'<N,M_0,...,M_k> -> callback behavior: argument N is called with argument +// M_0, ..., M_k as payload +// 'z' -> this is a function in (possibly-versioned) namespace std +// 'E' -> this function can be constant evaluated by Clang frontend +// 'G' -> this is a C++20 consteval function _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits