forked from OSchip/llvm-project
33 lines
696 B
C
33 lines
696 B
C
// RUN: clang %s -emit-llvm -o - > %t1
|
|
// RUN: grep "shl i32 %tmp, 19" %t1 &&
|
|
// RUN: grep "ashr i32 %tmp1, 19" %t1 &&
|
|
// RUN: grep "shl i16 %tmp4, 1" %t1 &&
|
|
// RUN: grep "lshr i16 %tmp5, 9" %t1
|
|
// RUN: grep "and i32 %tmp, -8192" %t1
|
|
// RUN: grep "and i16 %tmp5, -32513" %t1
|
|
// RUN: grep "getelementptr (i32\* bitcast (.struct.STestB2\* @stb2 to i32\*), i32 1)" %t1
|
|
// Test bitfield access
|
|
|
|
|
|
struct STestB1 { int a:13; char b; unsigned short c:7;} stb1;
|
|
struct STestB2 { short a[3]; int b:15} stb2;
|
|
|
|
int f() {
|
|
return stb1.a + stb1.b + stb1.c;
|
|
}
|
|
|
|
void g() {
|
|
stb1.a = -40;
|
|
stb1.b = 10;
|
|
stb1.c = 15;
|
|
}
|
|
|
|
int h() {
|
|
return stb2.a[1] + stb2.b;
|
|
}
|
|
|
|
void i(){
|
|
stb2.a[2] = -40;
|
|
stb2.b = 10;
|
|
}
|