Clang Project

clang_source_code/test/CodeGenOpenCLCXX/addrspace-derived-base.cl
1// RUN: %clang_cc1 %s -triple spir -cl-std=c++ -emit-llvm -O0 -o - | FileCheck %s
2
3struct B {
4  int mb;
5};
6
7class D : public B {
8public:
9  int getmb() { return mb; }
10};
11
12void foo() {
13  D d;
14  //CHECK: addrspacecast %class.D* %d to %class.D addrspace(4)*
15  //CHECK: call i32 @_ZNU3AS41D5getmbEv(%class.D addrspace(4)*
16  d.getmb();
17}
18
19//Derived and Base are in the same address space.
20
21//CHECK: define linkonce_odr i32 @_ZNU3AS41D5getmbEv(%class.D addrspace(4)* %this)
22//CHECK: bitcast %class.D addrspace(4)* %this1 to %struct.B addrspace(4)*
23