diff options
author | Thomas Preud'homme <thomas.preudhomme@arm.com> | 2014-06-11 10:04:33 +0000 |
---|---|---|
committer | Thomas Preud'homme <thopre01@gcc.gnu.org> | 2014-06-11 10:04:33 +0000 |
commit | 698ff10718696a7533db4364b0d736237ff73a7d (patch) | |
tree | e4a6086c454b66fc830408f29d3b4b15429e5b21 /gcc/ada/sem_util.adb | |
parent | 1d02d8b8cb41501b5904705dc764f7c8a8788f45 (diff) | |
download | gcc-698ff10718696a7533db4364b0d736237ff73a7d.zip gcc-698ff10718696a7533db4364b0d736237ff73a7d.tar.gz gcc-698ff10718696a7533db4364b0d736237ff73a7d.tar.bz2 |
re PR tree-optimization/61306 (wrong code at -Os and above on x86_64-linux-gnu)
2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR tree-optimization/61306
* tree-ssa-math-opts.c (struct symbolic_number): Store type of
expression instead of its size.
(do_shift_rotate): Adapt to change in struct symbolic_number. Return
false to prevent optimization when the result is unpredictable due to
arithmetic right shift of signed type with highest byte is set.
(verify_symbolic_number_p): Adapt to change in struct symbolic_number.
(init_symbolic_number): Likewise.
(find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
when the result is unpredictable due to sign extension.
gcc/testsuite/
* gcc.c-torture/execute/pr61306-1.c: New test.
* gcc.c-torture/execute/pr61306-2.c: Likewise.
* gcc.c-torture/execute/pr61306-3.c: Likewise.
From-SVN: r211444
Diffstat (limited to 'gcc/ada/sem_util.adb')
0 files changed, 0 insertions, 0 deletions