From fc7fcda12bd16c2c7515d9d1d1350c3547916e5c Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 14 Jul 2010 09:22:06 -0700 Subject: [PATCH] passes.c (rest_of_decl_compilation): Do not call * 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. From-SVN: r162184 --- gcc/ChangeLog | 7 +++++++ gcc/passes.c | 2 -- gcc/varasm.c | 9 +++------ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ba7e54ef9ea..c836f49ebc7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2010-07-14 Richard Henderson + + * 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 * config/arm/cortex-a8.md (cortex_a8_alu): Don't use diff --git a/gcc/passes.c b/gcc/passes.c index 8828967d0d8..72e9b5aaa32 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 5fad5f0c571..55218c4a96e 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))) { -- 2.30.2