diff options
author | Ian Lance Taylor <iant@google.com> | 2008-01-28 19:43:51 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2008-01-28 19:43:51 +0000 |
commit | e8b0eabccd680e52131e674430a3b14416abf233 (patch) | |
tree | 9ec8e655c3e072818b1caf8e5d6dbde0e71be4dd /gcc/tree-ssa-copy.c | |
parent | bc81405676677a2216476eaebc34d23adf855f83 (diff) | |
download | gcc-e8b0eabccd680e52131e674430a3b14416abf233.zip gcc-e8b0eabccd680e52131e674430a3b14416abf233.tar.gz gcc-e8b0eabccd680e52131e674430a3b14416abf233.tar.bz2 |
re PR c++/34862 (operator new placement variant with reference arg not accepted by g++ 4.3)
PR c++/34862
PR c++/33407
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
coalesce pointers if they have different DECL_NO_TBAA_P values.
* tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
between variables with different DECL_NO_TBAA_P values.
From-SVN: r131916
Diffstat (limited to 'gcc/tree-ssa-copy.c')
-rw-r--r-- | gcc/tree-ssa-copy.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/tree-ssa-copy.c b/gcc/tree-ssa-copy.c index 7ae6825..2cd30c9 100644 --- a/gcc/tree-ssa-copy.c +++ b/gcc/tree-ssa-copy.c @@ -1,5 +1,5 @@ /* Copy propagation and SSA_NAME replacement support routines. - Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. @@ -143,6 +143,11 @@ may_propagate_copy (tree dest, tree orig) else if (get_alias_set (TREE_TYPE (type_d)) != get_alias_set (TREE_TYPE (type_o))) return false; + else if (!MTAG_P (SSA_NAME_VAR (dest)) + && !MTAG_P (SSA_NAME_VAR (orig)) + && (DECL_NO_TBAA_P (SSA_NAME_VAR (dest)) + != DECL_NO_TBAA_P (SSA_NAME_VAR (orig)))) + return false; /* Also verify flow-sensitive information is compatible. */ if (SSA_NAME_PTR_INFO (orig) && SSA_NAME_PTR_INFO (dest)) |