Index: cfe/trunk/test/FixIt/fixit.cpp =================================================================== --- cfe/trunk/test/FixIt/fixit.cpp +++ cfe/trunk/test/FixIt/fixit.cpp @@ -1,8 +1,12 @@ -// RUN: %clang_cc1 -pedantic -Wall -Wno-comment -verify -fcxx-exceptions -x c++ %s +// RUN: %clang_cc1 -pedantic -Wall -Wno-comment -verify -fcxx-exceptions -x c++ -std=c++98 %s +// RUN: cp %s %t-98 +// RUN: not %clang_cc1 -pedantic -Wall -Wno-comment -fcxx-exceptions -fixit -x c++ -std=c++98 %t-98 +// RUN: %clang_cc1 -fsyntax-only -pedantic -Wall -Werror -Wno-comment -fcxx-exceptions -x c++ -std=c++98 %t-98 // RUN: not %clang_cc1 -fsyntax-only -fdiagnostics-parseable-fixits -x c++ -std=c++11 %s 2>&1 | FileCheck %s -// RUN: cp %s %t -// RUN: not %clang_cc1 -pedantic -Wall -Wno-comment -fcxx-exceptions -fixit -x c++ %t -// RUN: %clang_cc1 -fsyntax-only -pedantic -Wall -Werror -Wno-comment -fcxx-exceptions -x c++ %t +// RUN: %clang_cc1 -pedantic -Wall -Wno-comment -verify -fcxx-exceptions -x c++ -std=c++11 %s +// RUN: cp %s %t-11 +// RUN: not %clang_cc1 -pedantic -Wall -Wno-comment -fcxx-exceptions -fixit -x c++ -std=c++11 %t-11 +// RUN: %clang_cc1 -fsyntax-only -pedantic -Wall -Werror -Wno-comment -fcxx-exceptions -x c++ -std=c++11 %t-11 /* This is a test of the various code modification hints that are provided as part of warning or extension diagnostics. All of the @@ -21,7 +25,11 @@ template struct CT { template struct Inner; }; // expected-note{{previous use is here}} +// FIXME: In C++11 this gets 'expected unqualified-id' which fixit can't fix. +// Probably parses as `CT<10> > 2 > ct;` rather than `CT<(10 >> 2)> ct;`. +#if __cplusplus < 201103L CT<10 >> 2> ct; // expected-warning{{require parentheses}} +#endif class C3 { public: @@ -41,7 +49,11 @@ }; class B : public A { +#if __cplusplus >= 201103L + A::foo; // expected-error{{ISO C++11 does not allow access declarations}} +#else A::foo; // expected-warning{{access declarations are deprecated}} +#endif }; void f() throw(); // expected-note{{previous}} @@ -285,8 +297,10 @@ void (*p)() = &t; (void)(&t==p); // expected-error {{use '> ='}} (void)(&t>=p); // expected-error {{use '> >'}} +#if __cplusplus < 201103L (void)(&t>>=p); // expected-error {{use '> >'}} (Shr)&t>>>=p; // expected-error {{use '> >'}} +#endif // FIXME: We correct this to '&t > >= p;' not '&t >>= p;' //(Shr)&t>>=p; Index: cfe/trunk/test/Parser/backtrack-off-by-one.cpp =================================================================== --- cfe/trunk/test/Parser/backtrack-off-by-one.cpp +++ cfe/trunk/test/Parser/backtrack-off-by-one.cpp @@ -1,4 +1,6 @@ // RUN: %clang_cc1 -verify %s +// RUN: %clang_cc1 -verify %s -std=c++98 +// RUN: %clang_cc1 -verify %s -std=c++11 // PR25946 // We had an off-by-one error in an assertion when annotating A below. Our @@ -10,8 +12,10 @@ // expected-error@+1 {{expected '{' after base class list}} template class B : T // not ',' or '{' -// expected-error@+3 {{C++ requires a type specifier for all declarations}} -// expected-error@+2 {{expected ';' after top level declarator}} +#if __cplusplus < 201103L +// expected-error@+4 {{expected ';' after top level declarator}} +#endif +// expected-error@+2 {{C++ requires a type specifier for all declarations}} // expected-error@+1 {{expected ';' after class}} A { }; Index: cfe/trunk/test/SemaCXX/copy-assignment.cpp =================================================================== --- cfe/trunk/test/SemaCXX/copy-assignment.cpp +++ cfe/trunk/test/SemaCXX/copy-assignment.cpp @@ -1,4 +1,11 @@ -// RUN: %clang_cc1 -fsyntax-only -verify %s +// RUN: %clang_cc1 -fsyntax-only -verify %s +// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++98 +// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++11 + +#if __cplusplus >= 201103L +// expected-note@+3 2 {{candidate constructor}} +// expected-note@+2 {{passing argument to parameter here}} +#endif struct A { }; @@ -7,6 +14,9 @@ }; struct ConvertibleToConstA { +#if __cplusplus >= 201103L +// expected-note@+2 {{candidate function}} +#endif operator const A(); }; @@ -69,6 +79,9 @@ na = a; na = constA; na = convertibleToA; +#if __cplusplus >= 201103L +// expected-error@+2 {{no viable conversion}} +#endif na = convertibleToConstA; na += a; // expected-error{{no viable overloaded '+='}}