diff options
author | Richard Biener <rguenther@suse.de> | 2015-05-21 13:23:41 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2015-05-21 13:23:41 +0000 |
commit | 5ba3ae6db5a599b3b8d3eaf500c47f447b36babf (patch) | |
tree | a38c2b2cacc71e52c0cc086b402691fb13a837b1 /gcc/match.pd | |
parent | 1ca46a7753d416f7f5610f82cca7f89683bf4da0 (diff) | |
download | gcc-5ba3ae6db5a599b3b8d3eaf500c47f447b36babf.zip gcc-5ba3ae6db5a599b3b8d3eaf500c47f447b36babf.tar.gz gcc-5ba3ae6db5a599b3b8d3eaf500c47f447b36babf.tar.bz2 |
re PR c++/66211 (Rvalue conversion in ternary operator causes internal compiler error)
2015-05-21 Richard Biener <rguenther@suse.de>
PR c++/66211
* match.pd: Guard pattern optimzing (int)(float)int
conversions to apply only on GIMPLE.
* g++.dg/conversion/pr66211.C: New testcase.
* gcc.dg/tree-ssa/forwprop-18.c: Adjust.
From-SVN: r223483
Diffstat (limited to 'gcc/match.pd')
-rw-r--r-- | gcc/match.pd | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/match.pd b/gcc/match.pd index 54500d9..ce62853 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -791,7 +791,8 @@ along with GCC; see the file COPYING3. If not see /* If we are converting an integer to a floating-point that can represent it exactly and back to an integer, we can skip the floating-point conversion. */ - (if (inside_int && inter_float && final_int && + (if (GIMPLE /* PR66211 */ + && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp) (convert @0)))))) |