diff options
author | Mike Stump <mrs@apple.com> | 2007-02-24 22:27:26 +0000 |
---|---|---|
committer | Mike Stump <mrs@gcc.gnu.org> | 2007-02-24 22:27:26 +0000 |
commit | 320ce1d3a34ca4aa1c7300b0b8f843a6b1d4167e (patch) | |
tree | 82cf32c1673f3e1a5d51ec69812efc756cdab9b3 /gcc | |
parent | a31498d293913e1006bd43e67884983a02471d1a (diff) | |
download | gcc-320ce1d3a34ca4aa1c7300b0b8f843a6b1d4167e.zip gcc-320ce1d3a34ca4aa1c7300b0b8f843a6b1d4167e.tar.gz gcc-320ce1d3a34ca4aa1c7300b0b8f843a6b1d4167e.tar.bz2 |
i386.c (output_pic_addr_const): Stubify optimized symbols.
* config/i386/i386.c (output_pic_addr_const): Stubify optimized
symbols.
From-SVN: r122297
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 19 |
2 files changed, 23 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2368d6a..e05b854 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-02-24 Mike Stump <mrs@apple.com> + + * config/i386/i386.c (output_pic_addr_const): Stubify optimized + symbols. + 2007-02-24 Richard Guenther <rguenther@suse.de> PR middle-end/30951 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index a88c615..77382cf 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -7582,7 +7582,24 @@ output_pic_addr_const (FILE *file, rtx x, int code) break; case SYMBOL_REF: - output_addr_const (file, x); + if (! TARGET_MACHO || TARGET_64BIT) + output_addr_const (file, x); + else + { + const char *name = XSTR (x, 0); + + /* Mark the decl as referenced so that cgraph will output the function. */ + if (SYMBOL_REF_DECL (x)) + mark_decl_referenced (SYMBOL_REF_DECL (x)); + + if (MACHOPIC_INDIRECT +#if TARGET_MACHO + && machopic_classify_symbol (x) == MACHOPIC_UNDEFINED_FUNCTION +#endif + ) + name = machopic_indirection_name (x, /*stub_p=*/true); + assemble_name (file, name); + } if (!TARGET_MACHO && code == 'P' && ! SYMBOL_REF_LOCAL_P (x)) fputs ("@PLT", file); break; |