================ @@ -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 ---------------- Sirraide wrote:
```suggestion // 'C<' N ',' M_0 ',' ... ',' M_k '>' -> callback behavior: argument N is called with argument ``` https://github.com/llvm/llvm-project/pull/160080 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits