summaryrefslogtreecommitdiff
path: root/gcc/config/nios2/nios2.c
diff options
context:
space:
mode:
authorsandra <sandra@138bc75d-0d04-0410-961f-82ee72b054a4>2015-10-06 21:10:15 +0000
committersandra <sandra@138bc75d-0d04-0410-961f-82ee72b054a4>2015-10-06 21:10:15 +0000
commit9a0ecfba93a5ac50cf21cbbe524e06d5f47e99bb (patch)
tree2d39f671df850153d70c4b9f030b56baf954f9c7 /gcc/config/nios2/nios2.c
parent5c5b9e65b39099ec022bb20c7891a9d5956c5f3b (diff)
downloadgcc-9a0ecfba93a5ac50cf21cbbe524e06d5f47e99bb.tar.gz
2015-10-06 Sandra Loosemore <sandra@codesourcery.com>
gcc/ * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p): For -mgpopt=local, also exclude unintialized common symbols. * doc/invoke.texi (Nios II Options): Document the change. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228549 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/nios2/nios2.c')
-rw-r--r--gcc/config/nios2/nios2.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/config/nios2/nios2.c b/gcc/config/nios2/nios2.c
index 76bc85dcc7a..fef4d1a027a 100644
--- a/gcc/config/nios2/nios2.c
+++ b/gcc/config/nios2/nios2.c
@@ -2099,13 +2099,17 @@ nios2_symbol_ref_in_small_data_p (rtx sym)
case gpopt_local:
/* Use GP-relative addressing for small data symbols that are
- not external or weak, plus any symbols that have explicitly
- been placed in a small data section. */
+ not external or weak or uninitialized common, plus any symbols
+ that have explicitly been placed in a small data section. */
if (decl && DECL_SECTION_NAME (decl))
return nios2_small_section_name_p (DECL_SECTION_NAME (decl));
return (SYMBOL_REF_SMALL_P (sym)
&& !SYMBOL_REF_EXTERNAL_P (sym)
- && !(decl && DECL_WEAK (decl)));
+ && !(decl && DECL_WEAK (decl))
+ && !(decl && DECL_COMMON (decl)
+ && (DECL_INITIAL (decl) == NULL
+ || (!in_lto_p
+ && DECL_INITIAL (decl) == error_mark_node))));
case gpopt_global:
/* Use GP-relative addressing for small data symbols, even if