// RUN: %clang_cc1 -std=c++03 -verify=expected,cxx11,cxx03 -fsyntax-only %s // RUN: %clang_cc1 -std=c++11 -verify=expected,cxx11 -fsyntax-only %s // RUN: %clang_cc1 -std=c++2c -verify=expected -fsyntax-only %s class A trivially_relocatable_if_eligible {}; // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} class E final trivially_relocatable_if_eligible {}; // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} // cxx03-warning@-2 {{'final' keyword is a C++11 extension}} class G trivially_relocatable_if_eligible final{}; // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} // cxx03-warning@-2 {{'final' keyword is a C++11 extension}} class I trivially_relocatable_if_eligible trivially_relocatable_if_eligible final {}; // expected-error@-1 {{class already marked 'trivially_relocatable_if_eligible'}} // cxx11-warning@-2 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} // cxx03-warning@-3 {{'final' keyword is a C++11 extension}} class trivially_relocatable_if_eligible trivially_relocatable_if_eligible {}; // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} class J replaceable_if_eligible{}; // cxx11-warning@-1 {{'replaceable_if_eligible' keyword is a C++2c extension}} class K replaceable_if_eligible replaceable_if_eligible {}; // expected-error@-1 {{class already marked 'replaceable_if_eligible'}} // cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}} class replaceable_if_eligible replaceable_if_eligible {}; // cxx11-warning@-1 {{'replaceable_if_eligible' keyword is a C++2c extension}} class L replaceable_if_eligible trivially_relocatable_if_eligible final {}; // cxx11-warning@-1 {{'replaceable_if_eligible' keyword is a C++2c extension}} // cxx11-warning@-2 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} // cxx03-warning@-3 {{'final' keyword is a C++11 extension}} class M replaceable_if_eligible final trivially_relocatable_if_eligible {}; // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} // cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}} // cxx03-warning@-3 {{'final' keyword is a C++11 extension}} class N final trivially_relocatable_if_eligible replaceable_if_eligible {}; // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} // cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}} // cxx03-warning@-3 {{'final' keyword is a C++11 extension}} class O trivially_relocatable_if_eligible replaceable_if_eligible final {}; // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} // cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}} // cxx03-warning@-3 {{'final' keyword is a C++11 extension}}