aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/passes.c2
-rw-r--r--gcc/varasm.c9
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)))
{