From 923c7cdfa776a4ebc6ff759d2a775ebb81cb8ac5 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 28 May 2002 13:08:29 -0700 Subject: [PATCH] varasm.c (default_binds_local_p): Check TREE_PUBLIC before DECL_EXTERNAL. * varasm.c (default_binds_local_p): Check TREE_PUBLIC before DECL_EXTERNAL. From-SVN: r53963 --- gcc/ChangeLog | 3 +++ gcc/varasm.c | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6e0c9a4da9e..dad6de4700c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -6,6 +6,9 @@ invalidated_by_call. Initialize from regs_invalidated_by_call instead of call_used_regs. + * varasm.c (default_binds_local_p): Check TREE_PUBLIC before + DECL_EXTERNAL. + 2002-05-28 Zack Weinberg * tree.h: Forward-declare struct realvaluetype. diff --git a/gcc/varasm.c b/gcc/varasm.c index 89eb47e92dc..73ba7cdd11c 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -5597,7 +5597,10 @@ default_binds_local_p (exp) /* A non-decl is an entry in the constant pool. */ if (!DECL_P (exp)) local_p = true; - /* A variable is considered "local" if it is defined by this module. */ + /* Static variables are always local. */ + else if (! TREE_PUBLIC (exp)) + local_p = true; + /* A variable is local if the user tells us so. */ else if (MODULE_LOCAL_P (exp)) local_p = true; /* Otherwise, variables defined outside this object may not be local. */ @@ -5606,9 +5609,6 @@ default_binds_local_p (exp) /* Linkonce and weak data are never local. */ else if (DECL_ONE_ONLY (exp) || DECL_WEAK (exp)) local_p = false; - /* Static variables are always local. */ - else if (! TREE_PUBLIC (exp)) - local_p = true; /* If PIC, then assume that any global name can be overridden by symbols resolved from other modules. */ else if (flag_pic) -- 2.30.2