Add a test case for bit accurate integer types in llvm-gcc. This is
authorReid Spencer <rspencer@reidspencer.com>
Tue, 16 Jan 2007 18:40:08 +0000 (18:40 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Tue, 16 Jan 2007 18:40:08 +0000 (18:40 +0000)
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

test/CFrontend/bit-accurate-int.c [new file with mode: 0644]

diff --git a/test/CFrontend/bit-accurate-int.c b/test/CFrontend/bit-accurate-int.c
new file mode 100644 (file)
index 0000000..a2138bc
--- /dev/null
@@ -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);
+}