blob: a8859ab8cdd15a1d07f03dc9bf01d1299b8e16f9 [file] [log] [blame]
// RUN: clang-cc -fsyntax-only -pedantic -verify %s
/* This is a test of the various code modification hints that are
provided as part of warning or extension diagnostics. Eventually,
we would like to actually try to perform the suggested
modifications and compile the result to test that no warnings
remain. */
struct C1 {
virtual void f();
static void g();
};
struct C2 : virtual public virtual C1 { }; // expected-error{{duplicate}}
virtual void C1::f() { } // expected-error{{'virtual' can only be specified inside the class definition}}
static void C1::g() { } // expected-error{{'static' can only be specified inside the class definition}}
template<int Value> struct CT { }; // expected-note{{previous use is here}}
CT<10 >> 2> ct; // expected-warning{{require parentheses}}
class C3 {
public:
C3(C3, int i = 0); // expected-error{{copy constructor must pass its first argument by reference}}
};
struct CT<0> { }; // expected-error{{'template<>'}}
template<> class CT<1> { }; // expected-error{{tag type}}