diff options
author | Jan Hubicka <jh@suse.cz> | 2006-08-24 15:30:45 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2006-08-24 13:30:45 +0000 |
commit | a418679d8d389c0960a17eded96bb9ddb7e33cb6 (patch) | |
tree | 2478b3f5d0e0838e0af2b96bb6f0306cfbf4000d /gcc/cgraph.c | |
parent | 96f4873b16293268e23759c39dc03f1eca20ea1f (diff) | |
download | gcc-a418679d8d389c0960a17eded96bb9ddb7e33cb6.tar.gz |
re PR debug/26881 (internal compiler error in dwarf2out_finish)
PR debug/26881
* cgraph.c: Fix comments.
(cgraph_varpool_mark_needed_node): Mark only variables not already
output to file.
* cgraphunit.c: Update comments; include gt-cgraphunit.h
(cgraph_varpool_assembled_nodes_queue): New static variable.
(cgraph_varpool_assemble_decl): Record output decls for debug out code.
(cgraph_varpool_output_debug_info): New function.
(cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
* Makefile.in: Add gt-cgraphunit.h
* gcc.dg/debug/pr26881.c: New file.
From-SVN: r116374
Diffstat (limited to 'gcc/cgraph.c')
-rw-r--r-- | gcc/cgraph.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/cgraph.c b/gcc/cgraph.c index dc98ccf0958..372b90d5eaa 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -47,9 +47,9 @@ The callgraph: be accessed in such an invisible way and it shall be considered an entry point to the callgraph. - Intraprocedural information: + Interprocedural information: - Callgraph is place to store data needed for intraprocedural optimization. + Callgraph is place to store data needed for interprocedural optimization. All data structures are divided into three components: local_info that is produced while analyzing the function, global_info that is result of global walking of the callgraph on the end of compilation and @@ -921,7 +921,8 @@ cgraph_varpool_reset_queue (void) void cgraph_varpool_mark_needed_node (struct cgraph_varpool_node *node) { - if (!node->needed && node->finalized) + if (!node->needed && node->finalized + && !TREE_ASM_WRITTEN (node->decl)) cgraph_varpool_enqueue_needed_node (node); node->needed = 1; } |