aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/20071211-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.c-torture/execute/20071211-1.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.c-torture/execute/20071211-1.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/20071211-1.c b/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/20071211-1.c
new file mode 100644
index 000000000..4a4f1fefc
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.c-torture/execute/20071211-1.c
@@ -0,0 +1,23 @@
+extern void abort() __attribute__ ((noreturn));
+
+struct s
+{
+ unsigned long long f1 : 40;
+#if(__SIZEOF_INT__ >= 4)
+ unsigned int f2 : 24;
+#else
+ unsigned long int f2 : 24;
+#endif
+} sv;
+
+int main()
+{
+ int f2;
+ sv.f2 = (1 << 24) - 1;
+ __asm__ volatile ("" : : : "memory");
+ ++sv.f2;
+ f2 = sv.f2;
+ if (f2 != 0)
+ abort();
+ return 0;
+}