aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/sso/q2.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg/sso/q2.c')
-rw-r--r--gcc/testsuite/gcc.dg/sso/q2.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/sso/q2.c b/gcc/testsuite/gcc.dg/sso/q2.c
new file mode 100644
index 00000000000..9e1d1d27ff3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/sso/q2.c
@@ -0,0 +1,54 @@
+/* { dg-do run } */
+
+#include <stdio.h>
+
+#include "init2.h"
+#include "dump.h"
+
+#ifdef __cplusplus
+extern "C"
+#endif
+void abort (void);
+
+int main (void)
+{
+ struct R1 A1 = My_R1;
+ struct R1 B1 = My_R1;
+
+ struct R2 A2 = My_R2;
+ struct R2 B2 = My_R2;
+
+ put ("A1 :");
+ dump (&A1, sizeof (struct R1));
+ new_line ();
+ /* { dg-output "A1 : e2 59 d1 48 b4 aa d9 bb\n" } */
+
+ put ("B1 :");
+ dump (&B1, sizeof (struct R1));
+ new_line ();
+ /* { dg-output "B1 : e2 59 d1 48 b4 aa d9 bb\n" } */
+
+ put ("A2 :");
+ dump (&A2, sizeof (struct R2));
+ new_line ();
+ /* { dg-output "A2 : 84 8d 15 9e 15 5b 35 df\n" } */
+
+ put ("B2 :");
+ dump (&B2, sizeof (struct R2));
+ new_line ();
+ /* { dg-output "B2 : 84 8d 15 9e 15 5b 35 df\n" } */
+
+ if (A1.S1 != B1.S1) abort ();
+
+ if (A1.S1 != 2) abort ();
+
+ if (A2.S1 != B2.S1) abort ();
+
+ if (A2.S1 != 2) abort ();
+
+ if (A1.I != B1.I || A1.A1 != B1.A1) abort ();
+
+ if (A2.I != B2.I || A2.A1 != B2.A1) abort ();
+
+ return 0;
+}