From e1719e76cc514ae5dd0b908fb8cc3c52c59890f9 Mon Sep 17 00:00:00 2001 From: rguenth Date: Thu, 15 Sep 2016 10:22:32 +0000 Subject: 2016-09-15 Richard Biener * dwarf2asm.h (dw2_asm_output_offset): Add overload with extra offset argument. * dwarf2asm.c (dw2_asm_output_offset): Implement that. * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation to reflect new offset parameter. * doc/tm.texi: Regenerate. * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust. * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add offset argument. (darwin_asm_output_dwarf_offset): Likewise. * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset argument. (darwin_asm_output_dwarf_offset): Pass offset argument through. * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust. * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240158 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/config/darwin.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'gcc/config/darwin.c') diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index 0055d805441..f8da9591be8 100644 --- a/gcc/config/darwin.c +++ b/gcc/config/darwin.c @@ -2790,7 +2790,8 @@ static int darwin_dwarf_label_counter; void darwin_asm_output_dwarf_delta (FILE *file, int size, - const char *lab1, const char *lab2) + const char *lab1, const char *lab2, + HOST_WIDE_INT offset) { int islocaldiff = (lab1[0] == '*' && lab1[1] == 'L' && lab2[0] == '*' && lab2[1] == 'L'); @@ -2804,6 +2805,8 @@ darwin_asm_output_dwarf_delta (FILE *file, int size, assemble_name_raw (file, lab1); fprintf (file, "-"); assemble_name_raw (file, lab2); + if (offset != 0) + fprintf (file, "+" HOST_WIDE_INT_PRINT_DEC, offset); if (islocaldiff) fprintf (file, "\n\t%s L$set$%d", directive, darwin_dwarf_label_counter++); } @@ -2815,7 +2818,7 @@ darwin_asm_output_dwarf_delta (FILE *file, int size, void darwin_asm_output_dwarf_offset (FILE *file, int size, const char * lab, - section *base) + HOST_WIDE_INT offset, section *base) { char sname[64]; int namelen; @@ -2826,7 +2829,7 @@ darwin_asm_output_dwarf_offset (FILE *file, int size, const char * lab, namelen = strchr (base->named.name + 8, ',') - (base->named.name + 8); sprintf (sname, "*Lsection%.*s", namelen, base->named.name + 8); - darwin_asm_output_dwarf_delta (file, size, lab, sname); + darwin_asm_output_dwarf_delta (file, size, lab, sname, offset); } /* Called from the within the TARGET_ASM_FILE_START for each target. */ -- cgit v1.2.1