re PR sanitizer/81148 (UBSAN: two more false positives)
authorRichard Biener <rguenther@suse.de>
Thu, 3 Aug 2017 11:52:00 +0000 (11:52 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 3 Aug 2017 11:52:00 +0000 (11:52 +0000)
commit2d7744d4ef93bfffb484ae24b81163049364947f
tree7b7a05c5b0ce10c4c4b642fa0c254dc994507349
parent3cd361256dc895fb91f5a8d248a5bbc89457621b
re PR sanitizer/81148 (UBSAN: two more false positives)

2017-08-03 Richard Biener  <rguenther@suse.de>

PR middle-end/81148
* fold-const.c (split_tree): Add minus_var and minus_con
arguments, remove unused loc arg.  Never generate NEGATE_EXPRs
here but always use minus_*.
(associate_trees): Assert we never associate with MINUS_EXPR
and NULL first operand.  Do not recurse for PLUS_EXPR operands
when associating as MINUS_EXPR either.
(fold_binary_loc): Track minus_var and minus_con.

* c-c++-common/ubsan/pr81148.c: New testcase.

From-SVN: r250853
gcc/ChangeLog
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/ubsan/pr81148.c [new file with mode: 0644]