// RUN: %check_clang_tidy %s cert-dcl50-cpp %t // Variadic function definitions are diagnosed. void f1(int, ...) {} // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: do not define a C-style variadic function; consider using a function parameter pack or currying instead [cert-dcl50-cpp] // Variadic function *declarations* are not diagnosed. void f2(int, ...); // ok // Function parameter packs are good, however. template void f3(Arg F, Ts... Rest) {} struct S { void f(int, ...); // ok void f1(int, ...) {} // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: do not define a C-style variadic function; consider using a function parameter pack or currying instead }; // Function definitions that are extern "C" are good. extern "C" void f4(int, ...) {} // ok extern "C" { void f5(int, ...) {} // ok }