From b122caababcbf0e800b3e252c5a6440560245b9f Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Fri, 27 Aug 1999 03:41:45 +0000 Subject: [PATCH] Fix aranges corruption for non-mips 64 bit targets. * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE when emitting alignment padding. Emit padding byte of 0 instead of 4. From-SVN: r28913 --- gcc/ChangeLog | 5 +++++ gcc/dwarf2out.c | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4596ac10db1d..050e2f1d53e1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Aug 26 20:36:30 1999 Jim Wilson + + * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE + when emitting alignment padding. Emit padding byte of 0 instead of 4. + Thu Aug 26 18:11:20 1999 Mark Mitchell * tree.c (array_type_nelts): Don't create RTL_EXPRs from diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 81792b56490a..88ddac8d8c31 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -5682,8 +5682,14 @@ output_aranges () ASM_COMMENT_START); fputc ('\n', asm_out_file); - ASM_OUTPUT_DWARF_DATA4 (asm_out_file, 4); - if (PTR_SIZE == 8) + /* We need to align to twice the pointer size here. + If DWARF_OFFSET_SIZE == 4, then we have emitted 12 bytes, and need 4 + bytes of padding to align for either 4 or 8 byte pointers. */ + ASM_OUTPUT_DWARF_DATA4 (asm_out_file, 0); + /* If DWARF_OFFSET_SIZE == 8, then we have emitted 20 bytes, and need 12 + bytes of padding to align for 8 byte pointers. We have already emitted + 4 bytes of padding, so emit 8 more here. */ + if (DWARF_OFFSET_SIZE == 8) fprintf (asm_out_file, ",0,0"); if (flag_debug_asm)