diff options
author | Jason Merrill <jason@redhat.com> | 2009-02-18 16:01:03 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2009-02-18 16:01:03 -0500 |
commit | 98b806924df9a7bb913cc5cc2d2e7fdc7e2a5de0 (patch) | |
tree | 0f64524f372d342649161f19523537146008f861 /gcc/tree-sra.c | |
parent | 1e80963d6176df27cd61f268ec14392cda8a309a (diff) | |
download | gcc-98b806924df9a7bb913cc5cc2d2e7fdc7e2a5de0.zip gcc-98b806924df9a7bb913cc5cc2d2e7fdc7e2a5de0.tar.gz gcc-98b806924df9a7bb913cc5cc2d2e7fdc7e2a5de0.tar.bz2 |
re PR target/39179 (Wrong code in c++ for const members initialized in external file)
PR target/39179
* tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
value if DECL_EXTERNAL.
* tree-sra.c (sra_walk_gimple_assign): Likewise.
* target.h (gcc_target::binds_local_p): Clarify module.
* tree.h (TREE_PUBLIC): Clarify module.
From-SVN: r144270
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r-- | gcc/tree-sra.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index 01c0e12..abcca2b 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -1008,6 +1008,7 @@ sra_walk_gimple_assign (gimple stmt, gimple_stmt_iterator *gsi, we'd been passed the constructor directly. Invoke INIT. */ else if (TREE_CODE (rhs) == VAR_DECL && TREE_STATIC (rhs) + && !DECL_EXTERNAL (rhs) && TREE_READONLY (rhs) && targetm.binds_local_p (rhs)) fns->init (lhs_elt, DECL_INITIAL (rhs), gsi); |