re PR middle-end/54945 (Too strong non-aliasing analysis?)

PR54945

From-SVN: r192617
This commit is contained in:
Marek Polacek 2012-10-19 16:53:39 +00:00 committed by Marek Polacek
parent db2415a9a1
commit af89bd042d
2 changed files with 10 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2012-10-19 Marek Polacek <polacek@redhat.com>
PR middle-end/54945
* fold-const.c (fold_sign_changed_comparison): Punt if folding
pointer/non-pointer comparison.
2012-10-19 Greta Yorsh <Greta.Yorsh@arm.com>
* doc/sourcebuild.texi (Effective-Target Keywords): Document

View File

@ -6731,12 +6731,14 @@ fold_sign_changed_comparison (location_t loc, enum tree_code code, tree type,
&& TREE_TYPE (TREE_OPERAND (arg1, 0)) == inner_type))
return NULL_TREE;
if ((TYPE_UNSIGNED (inner_type) != TYPE_UNSIGNED (outer_type)
|| POINTER_TYPE_P (inner_type) != POINTER_TYPE_P (outer_type))
if (TYPE_UNSIGNED (inner_type) != TYPE_UNSIGNED (outer_type)
&& code != NE_EXPR
&& code != EQ_EXPR)
return NULL_TREE;
if (POINTER_TYPE_P (inner_type) != POINTER_TYPE_P (outer_type))
return NULL_TREE;
if (TREE_CODE (arg1) == INTEGER_CST)
arg1 = force_fit_type_double (inner_type, tree_to_double_int (arg1),
0, TREE_OVERFLOW (arg1));