diff options
author | Jakub Jelinek <jakub@redhat.com> | 2017-12-15 15:36:26 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2017-12-15 15:36:26 +0100 |
commit | a72610d4320925787d635cb4ddb8a40967e05bc3 (patch) | |
tree | 396cbb2afd84f1aa78d9ca5c6710dbc2fa445440 /gcc/ada/gcc-interface/utils.c | |
parent | 5b85ad7d19aa1428b4f657bbbd5bf39d34ecbb14 (diff) | |
download | gcc-a72610d4320925787d635cb4ddb8a40967e05bc3.zip gcc-a72610d4320925787d635cb4ddb8a40967e05bc3.tar.gz gcc-a72610d4320925787d635cb4ddb8a40967e05bc3.tar.bz2 |
re PR sanitizer/81281 (UBSAN: false positive, dropped promotion to long type.)
PR sanitizer/81281
* match.pd ((T)(P + A) - (T)P -> (T) A): Use @@0 instead of @0 and
convert? on @0 instead of convert. Check type of @1, not @0.
((T)P - (T)(P + A) -> -(T) A): Use @@0 instead of @0 and
convert? on @0 instead of convert. Check type of @1, not @0.
((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Use @@0 instead of @0,
only optimize if either both @1 and @2 types are narrower
precision, or both are wider or equal precision, and in the former
case only if both have undefined overflow.
* gcc.dg/pr81281-3.c: New test.
From-SVN: r255696
Diffstat (limited to 'gcc/ada/gcc-interface/utils.c')
0 files changed, 0 insertions, 0 deletions