mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-07 11:33:44 +00:00
Add a test case for bit accurate integer types in llvm-gcc. This is
XFAILed for now until llvm-gcc changes are committed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33261 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1e0f33873b
commit
4af33c2605
35
test/CFrontend/bit-accurate-int.c
Normal file
35
test/CFrontend/bit-accurate-int.c
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// 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);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user