From: Richard Henderson Date: Tue, 28 May 2002 20:08:29 +0000 (-0700) Subject: varasm.c (default_binds_local_p): Check TREE_PUBLIC before DECL_EXTERNAL. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=923c7cdfa776a4ebc6ff759d2a775ebb81cb8ac5;p=gcc.git 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 --- 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)