mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
4572ce85b0
llvm-svn: 33296
36 lines
832 B
C
36 lines
832 B
C
// RUN: %llvmgcc -S %s -o - /dev/null
|
|
// XFAIL: *
|
|
|
|
#define ATTR_BITS(N) __attribute__((bitwidth(N)))
|
|
|
|
typedef int ATTR_BITS( 4) My04BitInt;
|
|
typedef int ATTR_BITS(16) My16BitInt;
|
|
typedef int ATTR_BITS(17) My17BitInt;
|
|
typedef int ATTR_BITS(37) My37BitInt;
|
|
typedef int ATTR_BITS(65) My65BitInt;
|
|
|
|
struct MyStruct {
|
|
My04BitInt i4Field;
|
|
short ATTR_BITS(12) i12Field;
|
|
long ATTR_BITS(17) i17Field;
|
|
My37BitInt i37Field;
|
|
};
|
|
|
|
My37BitInt doit( short ATTR_BITS(23) num) {
|
|
My17BitInt i;
|
|
struct MyStruct strct;
|
|
int bitsize1 = sizeof(My17BitInt);
|
|
int __attribute__((bitwidth(9))) j;
|
|
int bitsize2 = sizeof(j);
|
|
int result = bitsize1 + bitsize2;
|
|
strct.i17Field = result;
|
|
result += sizeof(struct MyStruct);
|
|
return result;
|
|
}
|
|
|
|
int
|
|
main ( int argc, char** argv)
|
|
{
|
|
return (int ATTR_BITS(32)) doit((short ATTR_BITS(23))argc);
|
|
}
|