summaryrefslogtreecommitdiff
path: root/gcc/config/i386
diff options
context:
space:
mode:
authordavek <davek@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-06 16:06:18 +0000
committerdavek <davek@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-06 16:06:18 +0000
commit889e1397bc7343a3a2c9f7973358b49a30fc521d (patch)
tree14a7ef463338f7a9d1be35ffe9a006c58f72fa39 /gcc/config/i386
parent5de089bfa89f9aeeeb225862e6f5dd3f484e688e (diff)
downloadgcc-889e1397bc7343a3a2c9f7973358b49a30fc521d.tar.gz
PR target/43888
* config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol handling to still return true for x64 targets. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159111 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386')
-rw-r--r--gcc/config/i386/winnt.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c
index 34d3f427d23..3750e0c4b08 100644
--- a/gcc/config/i386/winnt.c
+++ b/gcc/config/i386/winnt.c
@@ -324,7 +324,10 @@ i386_pe_binds_local_p (const_tree exp)
/* Or a weak one, now that they are supported. */
if ((TREE_CODE (exp) == VAR_DECL || TREE_CODE (exp) == FUNCTION_DECL)
&& DECL_WEAK (exp))
- return false;
+ /* But x64 gets confused and attempts to use unsupported GOTPCREL
+ relocations if we tell it the truth, so we still return true in
+ that case until the deeper problem can be fixed. */
+ return (TARGET_64BIT && DEFAULT_ABI == MS_ABI);
return true;
}