diff options
author | davek <davek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-06 16:06:18 +0000 |
---|---|---|
committer | davek <davek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-06 16:06:18 +0000 |
commit | 889e1397bc7343a3a2c9f7973358b49a30fc521d (patch) | |
tree | 14a7ef463338f7a9d1be35ffe9a006c58f72fa39 /gcc/config/i386 | |
parent | 5de089bfa89f9aeeeb225862e6f5dd3f484e688e (diff) | |
download | gcc-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.c | 5 |
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; } |