summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2011-05-05 21:19:14 +0000
committerFariborz Jahanian <fjahanian@apple.com>2011-05-05 21:19:14 +0000
commit78a7d7d79964119a3f35b262eb154b5cbf1001ed (patch)
treecf58a33aa902c2de40aef863002fe033b7a2c1cd /test
parent6df78739f3b3f672f9735445741cbcfa7c10fb1f (diff)
downloadclang-78a7d7d79964119a3f35b262eb154b5cbf1001ed.tar.gz
__alignof attribute on the field must consider
packed attribute on the field. //rdar://9217290 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130948 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/packed-arrays.c14
-rw-r--r--test/CodeGen/packed-structure.c9
2 files changed, 10 insertions, 13 deletions
diff --git a/test/CodeGen/packed-arrays.c b/test/CodeGen/packed-arrays.c
index 785db4d2dd..0c8bb6c7bd 100644
--- a/test/CodeGen/packed-arrays.c
+++ b/test/CodeGen/packed-arrays.c
@@ -34,10 +34,8 @@ int align3 = __alignof(struct s3);
// CHECK: @align0_x = global i32 1
int align0_x = __alignof(((struct s0*) 0)->x);
-// We are currently incompatible with GCC here. <rdar://problem/9217290>
//
-// CHECK-XFAIL: @align1_x = global i32 1
-// CHECK: @align1_x = global i32 4
+// CHECK: @align1_x = global i32 1
int align1_x = __alignof(((struct s1*) 0)->x);
// CHECK: @align2_x = global i32 1
int align2_x = __alignof(((struct s2*) 0)->x);
@@ -66,22 +64,22 @@ int f0_b(struct s0 *a) {
return *(a->x + 1);
}
+// Note that we are incompatible with GCC on this example.
+//
// CHECK: define i32 @f1_a
-// CHECK: load i32* %{{.*}}, align 4
+// CHECK: load i32* %{{.*}}, align 1
// CHECK: }
// CHECK: define i32 @f1_b
// CHECK: load i32* %{{.*}}, align 4
// CHECK: }
-// Note that we are incompatible with GCC on these two examples.
+// Note that we are incompatible with GCC on this example.
//
// CHECK: define i32 @f1_c
-// CHECK-XFAIL: load i32* %{{.*}}, align 1
// CHECK: load i32* %{{.*}}, align 4
// CHECK: }
// CHECK: define i32 @f1_d
-// CHECK-XFAIL: load i32* %{{.*}}, align 1
-// CHECK: load i32* %{{.*}}, align 4
+// CHECK: load i32* %{{.*}}, align 1
// CHECK: }
int f1_a(struct s1 *a) {
return a->x[1];
diff --git a/test/CodeGen/packed-structure.c b/test/CodeGen/packed-structure.c
index 731a50bb07..3aeaa23eb3 100644
--- a/test/CodeGen/packed-structure.c
+++ b/test/CodeGen/packed-structure.c
@@ -10,8 +10,7 @@ struct s0 {
// CHECK-GLOBAL: @s0_align_x = global i32 4
-// FIXME: This should be 1 to match gcc. PR7951.
-// CHECK-GLOBAL: @s0_align_y = global i32 4
+// CHECK-GLOBAL: @s0_align_y = global i32 1
// CHECK-GLOBAL: @s0_align = global i32 4
int s0_align_x = __alignof(((struct s0*)0)->x);
@@ -27,7 +26,7 @@ int s0_load_x(struct s0 *a) { return a->x; }
// with align 1 (in 2363.1 at least).
//
// CHECK-FUNCTIONS: define i32 @s0_load_y
-// CHECK-FUNCTIONS: [[s0_load_y:%.*]] = load i32* {{.*}}, align 4
+// CHECK-FUNCTIONS: [[s0_load_y:%.*]] = load i32* {{.*}}, align 1
// CHECK-FUNCTIONS: ret i32 [[s0_load_y]]
int s0_load_y(struct s0 *a) { return a->y; }
// CHECK-FUNCTIONS: define void @s0_copy
@@ -92,11 +91,11 @@ struct __attribute__((packed, aligned)) s3 {
short aShort;
int anInt;
};
-// CHECK-GLOBAL: @s3_1 = global i32 2
+// CHECK-GLOBAL: @s3_1 = global i32 1
int s3_1 = __alignof(((struct s3*) 0)->anInt);
// CHECK-FUNCTIONS: define i32 @test3(
int test3(struct s3 *ptr) {
// CHECK-FUNCTIONS: [[PTR:%.*]] = getelementptr inbounds {{%.*}}* {{%.*}}, i32 0, i32 1
- // CHECK-FUNCTIONS-NEXT: load i32* [[PTR]], align 2
+ // CHECK-FUNCTIONS-NEXT: load i32* [[PTR]], align 1
return ptr->anInt;
}