================ @@ -0,0 +1,43 @@ +// RUN: %clang_cc1 -std=c23 -fsyntax-only -ffreestanding -verify=expected,both %s -triple i386-pc-unknown +// RUN: %clang_cc1 -std=c23 -fsyntax-only -ffreestanding -verify=expected,both %s -triple x86_64-apple-darwin9 +// RUN: %clang_cc1 -std=c23 -fsyntax-only -ffreestanding -fms-compatibility -verify=expected,both %s -triple x86_64-pc-win32 +// RUN: %clang_cc1 -std=c17 -fsyntax-only -ffreestanding -verify=both,pre-c23 %s + +void foo(int x, int y, ...) { + __builtin_va_list list; + __builtin_c23_va_start(); // pre-c23-error {{use of unknown builtin '__builtin_c23_va_start'}} \ + expected-error{{too few arguments to function call, expected 1, have 0}} + // Note, the unknown builtin diagnostic is only issued once per function, + // which is why the rest of the lines do not get the same diagonstic. + __builtin_c23_va_start(list); // ok + __builtin_c23_va_start(list, 0); // expected-warning {{second argument to 'va_start' is not the last named parameter}} ---------------- erichkeane wrote:
This error message isn't really accurate. Consider: ``` void foo(int x, int y, int, ...) { __builtin_va_list list; __builtin_c23_va_start(list, y); // error: Not last named parameter. Erich: ORLY?! } https://github.com/llvm/llvm-project/pull/131166 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits