43 lines · cpp
1// RUN: %clang_cc1 -std=c++03 -verify=expected,cxx11,cxx03 -fsyntax-only %s2// RUN: %clang_cc1 -std=c++11 -verify=expected,cxx11 -fsyntax-only %s3// RUN: %clang_cc1 -std=c++2c -verify=expected -fsyntax-only %s4 5 6class A trivially_relocatable_if_eligible {};7// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}8class E final trivially_relocatable_if_eligible {};9// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}10// cxx03-warning@-2 {{'final' keyword is a C++11 extension}}11class G trivially_relocatable_if_eligible final{};12// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}13// cxx03-warning@-2 {{'final' keyword is a C++11 extension}}14class I trivially_relocatable_if_eligible trivially_relocatable_if_eligible final {};15// expected-error@-1 {{class already marked 'trivially_relocatable_if_eligible'}}16// cxx11-warning@-2 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}17// cxx03-warning@-3 {{'final' keyword is a C++11 extension}}18class trivially_relocatable_if_eligible trivially_relocatable_if_eligible {};19// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}20class J replaceable_if_eligible{};21// cxx11-warning@-1 {{'replaceable_if_eligible' keyword is a C++2c extension}}22class K replaceable_if_eligible replaceable_if_eligible {};23// expected-error@-1 {{class already marked 'replaceable_if_eligible'}}24// cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}}25class replaceable_if_eligible replaceable_if_eligible {};26// cxx11-warning@-1 {{'replaceable_if_eligible' keyword is a C++2c extension}}27class L replaceable_if_eligible trivially_relocatable_if_eligible final {};28// cxx11-warning@-1 {{'replaceable_if_eligible' keyword is a C++2c extension}}29// cxx11-warning@-2 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}30// cxx03-warning@-3 {{'final' keyword is a C++11 extension}}31class M replaceable_if_eligible final trivially_relocatable_if_eligible {};32// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}33// cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}}34// cxx03-warning@-3 {{'final' keyword is a C++11 extension}}35class N final trivially_relocatable_if_eligible replaceable_if_eligible {};36// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}37// cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}}38// cxx03-warning@-3 {{'final' keyword is a C++11 extension}}39class O trivially_relocatable_if_eligible replaceable_if_eligible final {};40// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}41// cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}}42// cxx03-warning@-3 {{'final' keyword is a C++11 extension}}43