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/cp/ptree.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/cp/ptree.c')
-rw-r--r-- | gcc/cp/ptree.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c index c91cb15..2452abc 100644 --- a/gcc/cp/ptree.c +++ b/gcc/cp/ptree.c @@ -44,7 +44,23 @@ cxx_print_decl (FILE *file, tree node, int indent) if (!CODE_CONTAINS_STRUCT (TREE_CODE (node), TS_DECL_COMMON) || !DECL_LANG_SPECIFIC (node)) return; + if (TREE_CODE (node) == FUNCTION_DECL) + { + int flags = TFF_DECL_SPECIFIERS|TFF_RETURN_TYPE + |TFF_FUNCTION_DEFAULT_ARGUMENTS|TFF_EXCEPTION_SPECIFICATION ; + indent_to (file, indent + 3); + fprintf (file, " full-name \"%s\"", decl_as_string (node, flags)); + } + else if (TREE_CODE (node) == TEMPLATE_DECL) + { + indent_to (file, indent + 3); + fprintf (file, " full-name \"%s\"", + decl_as_string (node, TFF_TEMPLATE_HEADER)); + } + indent_to (file, indent + 3); + if (DECL_EXTERNAL (node) && DECL_NOT_REALLY_EXTERN (node)) + fprintf (file, " not-really-extern"); if (TREE_CODE (node) == FUNCTION_DECL && DECL_PENDING_INLINE_INFO (node)) fprintf (file, " pending-inline-info %p", @@ -81,6 +97,9 @@ cxx_print_type (FILE *file, tree node, int indent) case RECORD_TYPE: case UNION_TYPE: + indent_to (file, indent + 4); + fprintf (file, "full-name \"%s\"", + type_as_string (node, TFF_CLASS_KEY_OR_ENUM)); break; default: @@ -97,7 +116,7 @@ cxx_print_type (FILE *file, tree node, int indent) indent_to (file, indent + 3); if (TYPE_NEEDS_CONSTRUCTING (node)) - fputs ( "needs-constructor", file); + fputs ( " needs-constructor", file); if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (node)) fputs (" needs-destructor", file); if (TYPE_HAS_DEFAULT_CONSTRUCTOR (node)) |