diff options
author | Martin Jambor <mjambor@suse.cz> | 2022-07-08 18:12:26 +0200 |
---|---|---|
committer | Martin Jambor <mjambor@suse.cz> | 2022-07-08 18:13:31 +0200 |
commit | b984b84cbe4bf026edef2ba37685f3958a1dc1cf (patch) | |
tree | 20223d6b77796b686617c17feb3cdb94dec75ab4 | |
parent | 2bd15617e73acf76207127e5580cd10b1fab91a5 (diff) | |
download | gcc-b984b84cbe4bf026edef2ba37685f3958a1dc1cf.zip gcc-b984b84cbe4bf026edef2ba37685f3958a1dc1cf.tar.gz gcc-b984b84cbe4bf026edef2ba37685f3958a1dc1cf.tar.bz2 |
testsuite: Fix tree-ssa/alias-access-path-13.c on 32bit platforms (PR 106216)
For gcc.dg/tree-ssa/alias-access-path-13.c to work, SRA must think of
accesses to foo.inn.val and to foo itself as different ones, i.e. they
need to have different offset and size, which on 32bit platforms they
do not. Fixed by replacing a dummy long int field of the union with a
struct of two integers.
Tested by:
make -k check-gcc RUNTESTFLAGS="tree-ssa.exp=alias-access-path-13.c" and
make -k check-gcc RUNTESTFLAGS="--target_board=unix'{-m32}' tree-ssa.exp=alias-access-path-13.c"
on an x86_64-linux, also with patched SRA to verify it still tests the
original intent.
gcc/testsuite/ChangeLog:
2022-07-08 Martin Jambor <mjambor@suse.cz>
PR testsuite/106216
* gcc.dg/tree-ssa/alias-access-path-13.c (union foo): Replace a long
int field with a struct that is larger than an int also on 32bit
platforms.
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c b/gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c index e502a97..87a94f5 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c @@ -6,10 +6,15 @@ struct inn int val; }; +struct biggerstruct +{ + int a, b; +}; + union foo { struct inn inn; - long int baz; + struct biggerstruct baz; } *fooptr; struct bar |