diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/passes.c | 2 | ||||
-rw-r--r-- | gcc/varasm.c | 9 |
3 files changed, 10 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ba7e54e..c836f49 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2010-07-14 Richard Henderson <rth@redhat.com> + + * passes.c (rest_of_decl_compilation): Do not call assemble_variable + for functions. + * varasm.c (assemble_variable): Remove early exit for functions; + assert that we're given a variable. + 2010-07-14 Jie Zhang <jie@codesourcery.com> * config/arm/cortex-a8.md (cortex_a8_alu): Don't use diff --git a/gcc/passes.c b/gcc/passes.c index 8828967..72e9b5a 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -194,8 +194,6 @@ rest_of_decl_compilation (tree decl, ; else if (TREE_CODE (decl) != FUNCTION_DECL) varpool_finalize_decl (decl); - else - assemble_variable (decl, top_level, at_end, 0); } #ifdef ASM_FINISH_DECLARE_OBJECT diff --git a/gcc/varasm.c b/gcc/varasm.c index 5fad5f0..55218c4 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -2150,6 +2150,9 @@ assemble_variable (tree decl, int top_level ATTRIBUTE_UNUSED, rtx decl_rtl, symbol; section *sect; + /* This function is supposed to handle VARIABLES. Ensure we have one. */ + gcc_assert (TREE_CODE (decl) == VAR_DECL); + if (! targetm.have_tls && TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL_P (decl)) @@ -2188,12 +2191,6 @@ assemble_variable (tree decl, int top_level ATTRIBUTE_UNUSED, if (DECL_EXTERNAL (decl)) return; - /* Output no assembler code for a function declaration. - Only definitions of functions output anything. */ - - if (TREE_CODE (decl) == FUNCTION_DECL) - return; - /* Do nothing for global register variables. */ if (DECL_RTL_SET_P (decl) && REG_P (DECL_RTL (decl))) { |