24 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify %s2 3void f(int, ...) __attribute__((sentinel));4 5void g() {6 f(1, 2, __null);7}8 9typedef __typeof__(sizeof(int)) size_t;10 11struct S {12 S(int,...) __attribute__((sentinel)); // expected-note {{marked sentinel}}13 void a(int,...) __attribute__((sentinel)); // expected-note {{marked sentinel}}14 void* operator new(size_t,...) __attribute__((sentinel)); // expected-note {{marked sentinel}}15 void operator()(int,...) __attribute__((sentinel)); // expected-note {{marked sentinel}}16};17 18void class_test() {19 S s(1,2,3); // expected-warning {{missing sentinel in function call}}20 S* s2 = new (1,2,3) S(1, __null); // expected-warning {{missing sentinel in function call}}21 s2->a(1,2,3); // expected-warning {{missing sentinel in function call}}22 s(1,2,3); // expected-warning {{missing sentinel in function call}}23}24