aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/varasm.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 36a1b60..d103a85 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Tue Sep 9 15:36:28 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * varasm.c (notice_global_symbol): Properly deal with weak symbols.
+
2003-09-08 Kelley Cook <kelleycook@wideopenwest.com>
* Makefile.in: Revert yesterday's change.
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 84fbf25..d7c6068 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -1048,11 +1048,11 @@ void
notice_global_symbol (tree decl)
{
if ((!first_global_object_name || !weak_global_object_name)
- && TREE_PUBLIC (decl)
+ && TREE_PUBLIC (decl) && !DECL_COMMON (decl)
&& (TREE_CODE (decl) == FUNCTION_DECL
- || ! (DECL_COMMON (decl)
- && (DECL_INITIAL (decl) == 0
- || DECL_INITIAL (decl) == error_mark_node))))
+ || (TREE_CODE (decl) == VAR_DECL
+ && (DECL_INITIAL (decl) != 0
+ && DECL_INITIAL (decl) != error_mark_node))))
{
const char *p;
char *name;