summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/ipa/ipa-structreorg-31-heterogenous-struct-0.c
diff options
context:
space:
mode:
authorErick Ochoa <erick.ochoa@theobroma-systems.com>2020-11-25 14:20:43 +0100
committerErick Ochoa <erick.ochoa@theobroma-systems.com>2020-11-25 14:26:11 +0100
commitcf54c81ecd07c5ad0cdd81e6b2473faff2141b2e (patch)
treee5533471bb27e7182f836fa0df5a5c67a9ff111f /gcc/testsuite/gcc.dg/ipa/ipa-structreorg-31-heterogenous-struct-0.c
parentcacc6dfafad4d5ec8e440be9440abe19f2da5c10 (diff)
Add tests
Diffstat (limited to 'gcc/testsuite/gcc.dg/ipa/ipa-structreorg-31-heterogenous-struct-0.c')
-rw-r--r--gcc/testsuite/gcc.dg/ipa/ipa-structreorg-31-heterogenous-struct-0.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-structreorg-31-heterogenous-struct-0.c b/gcc/testsuite/gcc.dg/ipa/ipa-structreorg-31-heterogenous-struct-0.c
new file mode 100644
index 00000000000..b1f6e9a5166
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-structreorg-31-heterogenous-struct-0.c
@@ -0,0 +1,30 @@
+/* { dg-do run } */
+/* { dg-options "-flto -fipa-type-escape-analysis -fdump-ipa-type-escape-analysis -Wno-dfa -fipa-dlo-tests" } */
+
+#include <assert.h>
+#include <stdio.h>
+#include <stddef.h>
+
+int
+main ()
+{
+ // unmodified a = 0, d = 5; e = 6; f = 7; b = 8; c = 9
+ // modified a = 0, d = 1, e = 2, f = 3, c = 4;
+ struct astruct_s
+ {
+ _Bool a;
+ _Bool d;
+ _Bool e;
+ _Bool f;
+ _Bool b;
+ int c;
+ };
+ struct astruct_s astruct;
+ struct astruct_s *p = &astruct;
+ printf ("%d %d %d %d %d\n", p->a, p->d, p->e, p->f, p->c);
+ _Bool *a = &(p->a);
+ int *c = &(p->c);
+ ptrdiff_t d = (_Bool *) c - a;
+ printf ("%d\n", d);
+ assert (d == 4);
+}