[clang-cl] Ignore /Wv and /Wv:17 flags
[llvm-project.git] / clang / test / CXX / dcl.decl / dcl.meaning / dcl.fct / p6.cpp
bloba035086c9a127e5fac85444ebee41c172d9aac76
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
3 typedef void F() const;
5 void f() const; // expected-error {{non-member function cannot have 'const' qualifier}}
6 F g; // expected-error {{non-member function of type 'F' (aka 'void () const') cannot have 'const' qualifier}}
8 struct X {
9 void f() const;
10 friend void g() const; // expected-error {{non-member function cannot have 'const' qualifier}}
11 static void h() const; // expected-error {{static member function cannot have 'const' qualifier}}
12 F i; // ok
13 friend F j; // expected-error {{non-member function of type 'F' (aka 'void () const') cannot have 'const' qualifier}}
14 static F k; // expected-error {{static member function of type 'F' (aka 'void () const') cannot have 'const' qualifier}}
17 struct Y {
18 friend void X::f() const;
19 friend void ::f() const; // expected-error {{non-member function cannot have 'const' qualifier}}
22 template<typename T> struct S {
23 typedef T F;
24 typedef T *P; // expected-error {{pointer to function type 'void () const' cannot have 'const' qualifier}}
25 typedef T &R; // expected-error {{reference to function type 'void () const' cannot have 'const' qualifier}}
27 S<F> s; // expected-note {{in instantiation of}}
29 // FIXME: This is ill-formed.
30 template<typename T> struct U {
31 void f(T);
33 U<F> u;