re PR middle-end/29299 (gcc "used" attribute has no effect on local-scope static variables)
PR middle-end/29299 * cgraphunit.c (cgraph_finalize_compilation_unit): Call process_function_and_variable_attributes on all variables, including those discovered during cgraph construction phase. From-SVN: r117746
This commit is contained in:
parent
70c99f6c02
commit
61e00a5e0d
4 changed files with 34 additions and 4 deletions
|
@ -1,3 +1,11 @@
|
|||
2006-10-15 Jan Hubicka <jh@suse.cz>
|
||||
Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/29299
|
||||
* cgraphunit.c (cgraph_finalize_compilation_unit): Call
|
||||
process_function_and_variable_attributes on all variables, including
|
||||
those discovered during cgraph construction phase.
|
||||
|
||||
2006-10-15 Bernhard Fischer <aldot@gcc.gnu.org>
|
||||
|
||||
* final.c: Update Copyright year. Commentary typo fix. Fix whitespace
|
||||
|
|
|
@ -1055,6 +1055,7 @@ cgraph_finalize_compilation_unit (void)
|
|||
/* Keep track of already processed nodes when called multiple times for
|
||||
intermodule optimization. */
|
||||
static struct cgraph_node *first_analyzed;
|
||||
struct cgraph_node *first_processed = first_analyzed;
|
||||
static struct cgraph_varpool_node *first_analyzed_var;
|
||||
|
||||
if (errorcount || sorrycount)
|
||||
|
@ -1077,7 +1078,10 @@ cgraph_finalize_compilation_unit (void)
|
|||
}
|
||||
|
||||
timevar_push (TV_CGRAPH);
|
||||
process_function_and_variable_attributes (first_analyzed, first_analyzed_var);
|
||||
process_function_and_variable_attributes (first_processed,
|
||||
first_analyzed_var);
|
||||
first_processed = cgraph_nodes;
|
||||
first_analyzed_var = cgraph_varpool_nodes;
|
||||
cgraph_varpool_analyze_pending_decls ();
|
||||
if (cgraph_dump_file)
|
||||
{
|
||||
|
@ -1119,11 +1123,16 @@ cgraph_finalize_compilation_unit (void)
|
|||
if (!edge->callee->reachable)
|
||||
cgraph_mark_reachable_node (edge->callee);
|
||||
|
||||
/* We finalize local static variables during constructing callgraph
|
||||
edges. Process their attributes too. */
|
||||
process_function_and_variable_attributes (first_processed,
|
||||
first_analyzed_var);
|
||||
first_processed = cgraph_nodes;
|
||||
first_analyzed_var = cgraph_varpool_nodes;
|
||||
cgraph_varpool_analyze_pending_decls ();
|
||||
}
|
||||
|
||||
/* Collect entry points to the unit. */
|
||||
|
||||
/bin/bash: line 1: :Q: command not found
|
||||
if (cgraph_dump_file)
|
||||
{
|
||||
fprintf (cgraph_dump_file, "Unit entry points:");
|
||||
|
@ -1163,7 +1172,6 @@ cgraph_finalize_compilation_unit (void)
|
|||
dump_cgraph (cgraph_dump_file);
|
||||
}
|
||||
first_analyzed = cgraph_nodes;
|
||||
first_analyzed_var = cgraph_varpool_nodes;
|
||||
ggc_collect ();
|
||||
timevar_pop (TV_CGRAPH);
|
||||
}
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2006-10-15 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* gcc.dg/pr29299.c: New testcase.
|
||||
|
||||
2006-10-15 Bernhard Fischer <aldot@gcc.gnu.org>
|
||||
|
||||
PR fortran/24767
|
||||
|
|
10
gcc/testsuite/gcc.dg/pr29299.c
Normal file
10
gcc/testsuite/gcc.dg/pr29299.c
Normal file
|
@ -0,0 +1,10 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O" } */
|
||||
|
||||
static int bof __attribute__((used));
|
||||
int foo()
|
||||
{
|
||||
static int barbarbarbar __attribute__((used));
|
||||
};
|
||||
|
||||
/* { dg-final { scan-assembler "barbarbarbar" } } */
|
Loading…
Add table
Reference in a new issue