diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2015-10-23 20:05:55 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2015-10-23 18:05:55 +0000 |
commit | addf86347db70c659be57197ac92d9abe0549bd8 (patch) | |
tree | 61570527ba527a6ae52140531222e0f54fb3980f | |
parent | 980002c6e997b5bce8a2be92ef4cd1f893fc82b5 (diff) | |
download | gcc-addf86347db70c659be57197ac92d9abe0549bd8.zip gcc-addf86347db70c659be57197ac92d9abe0549bd8.tar.gz gcc-addf86347db70c659be57197ac92d9abe0549bd8.tar.bz2 |
fold-const.c (operand_equal_p): Do not compare TYPE_MODE when comparing addresses.
* fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
comparing addresses.
From-SVN: r229265
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fold-const.c | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index df246e6..716b632 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2015-10-23 Jan Hubicka <hubicka@ucw.cz> + * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when + comparing addresses. + +2015-10-23 Jan Hubicka <hubicka@ucw.cz> + * fold-const.c (operand_equal_p): Handle matching of vector constructors. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 018cb03..df49f87 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -2809,11 +2809,12 @@ operand_equal_p (const_tree arg0, const_tree arg1, unsigned int flags) return 0; } - /* This is needed for conversions and for COMPONENT_REF. - Might as well play it safe and always test this. */ + /* When not checking adddresses, this is needed for conversions and for + COMPONENT_REF. Might as well play it safe and always test this. */ if (TREE_CODE (TREE_TYPE (arg0)) == ERROR_MARK || TREE_CODE (TREE_TYPE (arg1)) == ERROR_MARK - || TYPE_MODE (TREE_TYPE (arg0)) != TYPE_MODE (TREE_TYPE (arg1))) + || (TYPE_MODE (TREE_TYPE (arg0)) != TYPE_MODE (TREE_TYPE (arg1)) + && !(flags & OEP_ADDRESS_OF))) return 0; /* If ARG0 and ARG1 are the same SAVE_EXPR, they are necessarily equal. |