diff options
author | Erick Ochoa <erick.ochoa@theobroma-systems.com> | 2020-06-15 14:35:12 +0200 |
---|---|---|
committer | Erick Ochoa <erick.ochoa@theobroma-systems.com> | 2020-06-16 08:58:13 +0200 |
commit | 4a28abd0fc3e5a413d4459e3c69f7cffdf87e8a9 (patch) | |
tree | 248e91f02ae7efc4505b4c3f89d0c77f479a18b1 /gcc/testsuite/gcc.dg/ipa/ipa-structreorg-05-nested-struct-0.c | |
parent | 689c5c302269a564508238d96482ea1be933acae (diff) |
reconstructing structs
Diffstat (limited to 'gcc/testsuite/gcc.dg/ipa/ipa-structreorg-05-nested-struct-0.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/ipa/ipa-structreorg-05-nested-struct-0.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-structreorg-05-nested-struct-0.c b/gcc/testsuite/gcc.dg/ipa/ipa-structreorg-05-nested-struct-0.c new file mode 100644 index 00000000000..b0959c209f3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ipa/ipa-structreorg-05-nested-struct-0.c @@ -0,0 +1,21 @@ +/* { dg-do link } */ +/* { dg-options "-flto -fipa-type-escape-analysis -fdump-ipa-type-escape-analysis -fprint-access-analysis " } */ + +#include <stdio.h> + +struct astruct_s { float a; _Bool b; int c;}; +struct ostruct_s { struct astruct_s a; float b; float c; }; +struct ostruct_s ostruct; + + +int +main () +{ + printf("%d\n", ostruct.b); + printf("%d\n", ostruct.c); + printf("%f\n", ostruct.a.a); + printf("%d\n", ostruct.a.c); +} + +/* { dg-final { scan-ipa-dump " record astruct_s .real_type a;boolean_type b;integer_type c;. -> record astruct_s .real_type a;integer_type c;." "type-escape-analysis" } } */ +/* { dg-final { scan-ipa-dump " record ostruct_s . record astruct_s .real_type a;boolean_type b;integer_type c;. a;real_type b;real_type c;. -> record ostruct_s . record astruct_s .real_type a;integer_type c;. a;real_type b;real_type c;." "type-escape-analysis" } } */ |