diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-05-13 18:54:26 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-05-13 18:54:26 +0000 |
commit | ffdb8439d72d6667351e47786cf7ae1d1203c9d2 (patch) | |
tree | 78c92b903368226065c3d6d3074860672b02c140 /clang/test/CodeGen | |
parent | 9e26d3708af2b39141a2642f6079eef0fbaecd83 (diff) | |
download | bcm5719-llvm-ffdb8439d72d6667351e47786cf7ae1d1203c9d2.tar.gz bcm5719-llvm-ffdb8439d72d6667351e47786cf7ae1d1203c9d2.zip |
ABI handling: Fix invalid assertion, it is possible for a valid
coercion to be specified which truncates padding bits. It would be
nice to still have the assert, but we don't have any API call for the
unpadding size of a type yet.
llvm-svn: 71695
Diffstat (limited to 'clang/test/CodeGen')
-rw-r--r-- | clang/test/CodeGen/x86_32-arguments.c | 8 | ||||
-rw-r--r-- | clang/test/CodeGen/x86_64-arguments.c | 6 |
2 files changed, 10 insertions, 4 deletions
diff --git a/clang/test/CodeGen/x86_32-arguments.c b/clang/test/CodeGen/x86_32-arguments.c index fae49cbdd87..8980c66b207 100644 --- a/clang/test/CodeGen/x86_32-arguments.c +++ b/clang/test/CodeGen/x86_32-arguments.c @@ -131,7 +131,7 @@ struct s29 { struct { } a[1]; char b; char c; } f29(void) {} struct s30 { char a; char b : 4; } f30(void) {} // RUN: grep 'define float @f31()' %t && -struct s31 { char : 0; float b; char : 0} f31(void) {} +struct s31 { char : 0; float b; char : 0; } f31(void) {} // RUN: grep 'define i32 @f32()' %t && struct s32 { char a; unsigned : 0; } f32(void) {} @@ -140,13 +140,13 @@ struct s32 { char a; unsigned : 0; } f32(void) {} struct s33 { float a; long long : 0; } f33(void) {} // RUN: grep 'define float @f34()' %t && -struct s34 { struct { int : 0 } a; float b; } f34(void) {} +struct s34 { struct { int : 0; } a; float b; } f34(void) {} // RUN: grep 'define i16 @f35()' %t && -struct s35 { struct { int : 0 } a; char b; char c; } f35(void) {} +struct s35 { struct { int : 0; } a; char b; char c; } f35(void) {} // RUN: grep 'define i16 @f36()' %t && -struct s36 { struct { int : 0 } a[2][10]; char b; char c; } f36(void) {} +struct s36 { struct { int : 0; } a[2][10]; char b; char c; } f36(void) {} // RUN: grep 'define float @f37()' %t && struct s37 { float c[1][1]; } f37(void) {} diff --git a/clang/test/CodeGen/x86_64-arguments.c b/clang/test/CodeGen/x86_64-arguments.c index 2e5debe7cba..b28e064d358 100644 --- a/clang/test/CodeGen/x86_64-arguments.c +++ b/clang/test/CodeGen/x86_64-arguments.c @@ -55,4 +55,10 @@ void f10(struct s10 a0) {} // RUN: grep 'define void @f11(.union.anon. noalias sret .agg.result)' %t && union { long double a; float b; } f11() {} +// RUN: grep 'define i64 @f12_0()' %t && +// RUN: grep 'define void @f12_1(i64)' %t && +struct s12 { int a __attribute__((aligned(16))); }; +struct s12 f12_0(void) {} +void f12_1(struct s12 a0) {} + // RUN: true |