Mercurial > hg > CbC > CbC_llvm
view clang/test/FixIt/fixit-c++2a.cpp @ 165:597b3f1c2c93
fix call createTailCallEliminationPass
author | anatofuz |
---|---|
date | Tue, 24 Mar 2020 15:30:52 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: %clang_cc1 -verify -std=c++2a -pedantic-errors %s // RUN: cp %s %t // RUN: not %clang_cc1 -x c++ -std=c++2a -fixit %t // RUN: %clang_cc1 -Wall -pedantic-errors -x c++ -std=c++2a %t // RUN: cat %t | FileCheck %s /* This is a test of the various code modification hints that only apply in C++2a. */ template<typename ...T> void init_capture_pack(T ...a) { [x... = a]{}; // expected-error {{must appear before the name}} [x = a...]{}; // expected-error {{must appear before the name}} [...&x = a]{}; // expected-error {{must appear before the name}} [...a]{}; // expected-error {{must appear after the name}} [&...a]{}; // expected-error {{must appear after the name}} [...&a]{}; // expected-error {{must appear after the name}} } namespace constinit_mismatch { extern thread_local constinit int a; // expected-note {{declared constinit here}} thread_local int a = 123; // expected-error {{'constinit' specifier missing on initializing declaration of 'a'}} // CHECK: {{^}} constinit thread_local int a = 123; int b = 123; // expected-note {{add the 'constinit' specifier}} extern constinit int b; // expected-error {{'constinit' specifier added after initialization of variable}} // CHECK: {{^}} extern int b; template<typename> struct X { template<int> static constinit int n; // expected-note {{constinit}} }; template<typename T> template<int N> int X<T>::n = 123; // expected-error {{missing}} // CHECK: {{^}} constinit int X<T>::n = 123; #define ABSL_CONST_INIT [[clang::require_constant_initialization]] extern constinit int c; // expected-note {{constinit}} int c; // expected-error {{missing}} // CHECK: {{^}} ABSL_CONST_INIT int c; #define MY_CONST_INIT constinit extern constinit int d; // expected-note {{constinit}} int d; // expected-error {{missing}} // CHECK: {{^}} MY_CONST_INIT int d; #undef MY_CONST_INIT extern constinit int e; // expected-note {{constinit}} int e; // expected-error {{missing}} // CHECK: {{^}} ABSL_CONST_INIT int e; #undef ABSL_CONST_INIT }