diff options
Diffstat (limited to 'clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref')
| -rw-r--r-- | clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-examples.cpp | 23 | ||||
| -rw-r--r-- | clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5.cpp | 4 |
2 files changed, 15 insertions, 12 deletions
diff --git a/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-examples.cpp b/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-examples.cpp index be1113d47e3..052349c8e2e 100644 --- a/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-examples.cpp +++ b/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-examples.cpp @@ -1,6 +1,6 @@ // RUN: %clang_cc1 -ast-dump %s 2>&1 | FileCheck %s -// CHECK: example0 +// CHECK-LABEL: example0 void example0() { double d = 2.0; // CHECK: VarDecl{{.*}}rd 'double &' @@ -14,14 +14,15 @@ void example0() { struct A { }; struct B : A { } b; -// CHECK: example1 +// CHECK-LABEL: example1 void example1() { // CHECK: VarDecl{{.*}}ra 'struct A &' // CHECK: ImplicitCastExpr{{.*}}'struct A' lvalue <DerivedToBase (A)> A &ra = b; // CHECK: VarDecl{{.*}}rca 'const struct A &' - // CHECK: ImplicitCastExpr{{.*}}'const struct A' lvalue <NoOp> - // CHECK: ImplicitCastExpr{{.*}}'struct A' lvalue <DerivedToBase (A)> + // CHECK: ImplicitCastExpr{{.*}}'const struct A' lvalue <DerivedToBase (A)> + // CHECK-NOT: MaterializeTemporaryExpr + // CHECK: ImplicitCastExpr{{.*}}'const struct B' lvalue <NoOp> const A& rca = b; } @@ -31,21 +32,23 @@ struct X { operator B(); } x; -// CHECK: example2 +// CHECK-LABEL: example2 void example2() { // CHECK: VarDecl{{.*}}rca 'const struct A &' - // CHECK: ImplicitCastExpr{{.*}}'const struct A' <NoOp> - // CHECK: ImplicitCastExpr{{.*}}'struct A' <DerivedToBase (A)> + // CHECK: ImplicitCastExpr{{.*}}'const struct A' lvalue <DerivedToBase (A)> + // CHECK: MaterializeTemporaryExpr{{.*}}'const struct B' + // CHECK: ImplicitCastExpr{{.*}}'const struct B' <NoOp> // CHECK: CallExpr{{.*}}B const A &rca = f(); // CHECK: VarDecl{{.*}}r 'const struct A &' - // CHECK: ImplicitCastExpr{{.*}}'const struct A' <NoOp> - // CHECK: ImplicitCastExpr{{.*}}'struct A' <DerivedToBase (A)> + // CHECK: ImplicitCastExpr{{.*}}'const struct A' lvalue <DerivedToBase (A)> + // CHECK: MaterializeTemporaryExpr{{.*}}'const struct B' + // CHECK: ImplicitCastExpr{{.*}}'const struct B' <NoOp> // CHECK: CXXMemberCallExpr{{.*}}'struct B' const A& r = x; } -// CHECK: example3 +// CHECK-LABEL: example3 void example3() { // CHECK: VarDecl{{.*}}rcd2 'const double &' // CHECK: ImplicitCastExpr{{.*}} <IntegralToFloating> diff --git a/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5.cpp b/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5.cpp index 263f661208c..e775e8f0e3c 100644 --- a/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5.cpp +++ b/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5.cpp @@ -41,7 +41,7 @@ namespace PR6066 { namespace test3 { struct A { - unsigned bitX : 4; // expected-note 4 {{bit-field is declared here}} + unsigned bitX : 4; // expected-note 3 {{bit-field is declared here}} unsigned bitY : 4; // expected-note {{bit-field is declared here}} unsigned var; @@ -50,7 +50,7 @@ namespace test3 { void test(A *a) { unsigned &t0 = a->bitX; // expected-error {{non-const reference cannot bind to bit-field 'bitX'}} - unsigned &t1 = (unsigned&) a->bitX; // expected-error {{non-const reference cannot bind to bit-field 'bitX'}} + unsigned &t1 = (unsigned&) a->bitX; // expected-error {{C-style cast from bit-field lvalue to reference type 'unsigned int &'}} unsigned &t2 = const_cast<unsigned&>(a->bitX); // expected-error {{const_cast from bit-field lvalue to reference type 'unsigned int &'}} unsigned &t3 = (a->foo(), a->bitX); // expected-error {{non-const reference cannot bind to bit-field 'bitX'}} unsigned &t4 = (a->var ? a->bitX : a->bitY); // expected-error {{non-const reference cannot bind to bit-field}} |

