From e1c5c87790fb8fa4a85db24a26f20edf990c4d98 Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Sun, 29 Sep 2013 20:14:39 +0000 Subject: re PR target/10901 (non-local goto's don't work on darwin) gcc: PR target/10901 * config/darwin-protos.h (machopic_get_function_picbase): New. * config/darwin.c (machopic_get_function_picbase): New. * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase label for a new func. (load_macho_picbase_di): Likewise. (reload_macho_picbase): New expand. (reload_macho_picbase_si): New insn. (reload_macho_picbase_di): New insn. (nonlocal_goto_receiver): New define and split. * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC. (unspecv enum): Add UNSPECV_NLGR. From-SVN: r203019 --- gcc/config/darwin.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'gcc/config/darwin.c') diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index ab48558..cb1bc38 100644 --- a/gcc/config/darwin.c +++ b/gcc/config/darwin.c @@ -405,6 +405,19 @@ machopic_output_function_base_name (FILE *file) fprintf (file, "L%d$pb", current_pic_label_num); } +char curr_picbasename[32]; + +const char * +machopic_get_function_picbase (void) +{ + /* If dynamic-no-pic is on, we should not get here. */ + gcc_assert (!MACHO_DYNAMIC_NO_PIC_P); + + update_pic_label_number_if_needed (); + snprintf (curr_picbasename, 32, "L%d$pb", current_pic_label_num); + return (const char *) curr_picbasename; +} + bool machopic_should_output_picbase_label (void) { -- cgit v1.1