summaryrefslogtreecommitdiff
path: root/gcc/config/i386/cygming.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/i386/cygming.h')
-rw-r--r--gcc/config/i386/cygming.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h
index d6c2254b800..60e11b481e9 100644
--- a/gcc/config/i386/cygming.h
+++ b/gcc/config/i386/cygming.h
@@ -102,13 +102,16 @@ along with GCC; see the file COPYING3. If not see
/* Use section relative relocations for debugging offsets. Unlike
other targets that fake this by putting the section VMA at 0, PE
won't allow it. */
-#define ASM_OUTPUT_DWARF_OFFSET(FILE, SIZE, LABEL, SECTION) \
+#define ASM_OUTPUT_DWARF_OFFSET(FILE, SIZE, LABEL, OFFSET, SECTION) \
do { \
switch (SIZE) \
{ \
case 4: \
fputs ("\t.secrel32\t", FILE); \
assemble_name (FILE, LABEL); \
+ if ((OFFSET) != 0) \
+ fprintf (FILE, "+" HOST_WIDE_INT_PRINT_DEC, \
+ (HOST_WIDE_INT) (OFFSET)) \
break; \
case 8: \
/* This is a hack. There is no 64-bit section relative \
@@ -118,6 +121,9 @@ along with GCC; see the file COPYING3. If not see
Fake the 64-bit offset by zero-extending it. */ \
fputs ("\t.secrel32\t", FILE); \
assemble_name (FILE, LABEL); \
+ if ((OFFSET) != 0) \
+ fprintf (FILE, "+" HOST_WIDE_INT_PRINT_DEC, \
+ (HOST_WIDE_INT) (OFFSET)) \
fputs ("\n\t.long\t0", FILE); \
break; \
default: \