Mercurial > hg > CbC > CbC_llvm
view clang/test/CodeGenCXX/member-expressions.cpp @ 206:f17a3b42b08b
Added tag before-12 for changeset b7591485f4cd
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 07 Jun 2021 21:25:57 +0900 |
parents | 1d019706d866 |
children | 2e18cbf3894f |
line wrap: on
line source
// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-apple-darwin10 | FileCheck %s // PR5392 namespace PR5392 { struct A { static int a; }; A a1; void f() { // CHECK: store i32 10, i32* @_ZN6PR53921A1aE a1.a = 10; // CHECK: store i32 20, i32* @_ZN6PR53921A1aE A().a = 20; } } struct A { A(); ~A(); enum E { Foo }; }; A *g(); void f(A *a) { A::E e1 = a->Foo; // CHECK: call %struct.A* @_Z1gv() A::E e2 = g()->Foo; // CHECK: call void @_ZN1AC1Ev( // CHECK: call void @_ZN1AD1Ev( A::E e3 = A().Foo; } namespace test3 { struct A { static int foo(); }; int f() { return A().foo(); } } namespace test4 { struct A { int x; }; struct B { int x; void foo(); }; struct C : A, B { }; extern C *c_ptr; // CHECK-LABEL: define i32 @_ZN5test44testEv() int test() { // CHECK: load {{.*}} @_ZN5test45c_ptrE // CHECK-NEXT: bitcast // CHECK-NEXT: getelementptr // CHECK-NEXT: bitcast // CHECK-NEXT: call void @_ZN5test41B3fooEv c_ptr->B::foo(); // CHECK: load {{.*}} @_ZN5test45c_ptrE // CHECK-NEXT: bitcast // CHECK-NEXT: getelementptr // CHECK-NEXT: bitcast // CHECK-NEXT: getelementptr // CHECK-NEXT: store i32 5 c_ptr->B::x = 5; // CHECK: load {{.*}} @_ZN5test45c_ptrE // CHECK-NEXT: bitcast // CHECK-NEXT: getelementptr // CHECK-NEXT: bitcast // CHECK-NEXT: getelementptr // CHECK-NEXT: load i32, i32* return c_ptr->B::x; } }