diff options
author | Richard Biener <rguenth@gcc.gnu.org> | 2014-06-11 07:35:36 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-06-11 07:35:36 +0000 |
commit | 96a3f4dfb60bb315496e00297b9f9b852482dea8 (patch) | |
tree | 19c970a2fb41307bac1907c7e58cdc3e31623c91 /gcc/tree.h | |
parent | e257a17cb9cc4dc76a79680616420e75ba030b5f (diff) | |
download | gcc-96a3f4dfb60bb315496e00297b9f9b852482dea8.zip gcc-96a3f4dfb60bb315496e00297b9f9b852482dea8.tar.gz gcc-96a3f4dfb60bb315496e00297b9f9b852482dea8.tar.bz2 |
re PR tree-optimization/61437 (wrong code on x86_64-linux-gnu when compile separately)
2014-06-11 Richard Biener <rguenther@suse.de>
PR middle-end/61437
Revert
2014-06-04 Richard Biener <rguenther@suse.de>
* tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
TREE_PUBLIC and DECL_EXTERNAL decls.
* gcc.dg/torture/20140610-1.c: New testcase.
* gcc.dg/torture/20140610-2.c: Likewise.
From-SVN: r211436
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -4524,7 +4524,9 @@ static inline bool may_be_aliased (const_tree var) { return (TREE_CODE (var) != CONST_DECL - && TREE_ADDRESSABLE (var) + && (TREE_PUBLIC (var) + || DECL_EXTERNAL (var) + || TREE_ADDRESSABLE (var)) && !((TREE_STATIC (var) || TREE_PUBLIC (var) || DECL_EXTERNAL (var)) && ((TREE_READONLY (var) && !TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (var))) |