Author: Joerg Sonnenberger Date: 2020-03-28T23:24:13+01:00 New Revision: 09d402185394fdbf1f60233a7f42a4a1108c2cd3
URL: https://github.com/llvm/llvm-project/commit/09d402185394fdbf1f60233a7f42a4a1108c2cd3 DIFF: https://github.com/llvm/llvm-project/commit/09d402185394fdbf1f60233a7f42a4a1108c2cd3.diff LOG: Fix compatibility for __builtin_stdarg_start The __builtin_stdarg_start is the legacy spelling of __builtin_va_start. It should behave exactly the same, but for the last 9 years it would behave subtly different for diagnostics. Follow the change from 29ad95b23217 to require custom type checking. Added: Modified: clang/include/clang/Basic/Builtins.def clang/test/SemaCXX/vararg-non-pod.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Basic/Builtins.def b/clang/include/clang/Basic/Builtins.def index 85f775a7cad8..9613f312d52d 100644 --- a/clang/include/clang/Basic/Builtins.def +++ b/clang/include/clang/Basic/Builtins.def @@ -472,7 +472,7 @@ BUILTIN(__builtin___NSStringMakeConstantString, "FC*cC*", "nc") BUILTIN(__builtin_va_start, "vA.", "nt") BUILTIN(__builtin_va_end, "vA", "n") BUILTIN(__builtin_va_copy, "vAA", "n") -BUILTIN(__builtin_stdarg_start, "vA.", "n") +BUILTIN(__builtin_stdarg_start, "vA.", "nt") BUILTIN(__builtin_assume_aligned, "v*vC*z.", "nc") BUILTIN(__builtin_bcmp, "ivC*vC*z", "Fn") BUILTIN(__builtin_bcopy, "vv*v*z", "n") diff --git a/clang/test/SemaCXX/vararg-non-pod.cpp b/clang/test/SemaCXX/vararg-non-pod.cpp index 1b7f3b68dc97..a1bbe748d12d 100644 --- a/clang/test/SemaCXX/vararg-non-pod.cpp +++ b/clang/test/SemaCXX/vararg-non-pod.cpp @@ -164,6 +164,13 @@ void t6(Foo somearg, ... ) { __builtin_va_start(list, somearg); } +// __builtin_stdarg_start is a compatibility alias for __builtin_va_start, +// it should behave the same +void t6b(Foo somearg, ... ) { + __builtin_va_list list; + __builtin_stdarg_start(list, somearg); // second argument to 'va_start' is not the last named parameter [-Wvarargs] +} + void t7(int n, ...) { __builtin_va_list list; __builtin_va_start(list, n); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits