diff options
author | David Edelsohn <dje.gcc@gmail.com> | 2017-07-25 13:11:37 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2017-07-25 09:11:37 -0400 |
commit | 7e78cfda8219a0e7d95232e15fe49cb4de620134 (patch) | |
tree | 55d38cf00f94d63fa90cc7d180e0710b5cf31aa8 | |
parent | 8595f67be2d1f44102a345f21d28b4836ad47349 (diff) | |
download | gcc-7e78cfda8219a0e7d95232e15fe49cb4de620134.zip gcc-7e78cfda8219a0e7d95232e15fe49cb4de620134.tar.gz gcc-7e78cfda8219a0e7d95232e15fe49cb4de620134.tar.bz2 |
dwarf2asm.c (dw2_asm_output_nstring): Encode double quote character for AIX.
* dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
character for AIX.
* dwarf2out.c (output_macinfo): Copy debug_line_section_label
to dl_section_ref. On AIX, append an expression to subtract
the size of the section length to dl_section_ref.
From-SVN: r250516
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/dwarf2asm.c | 4 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 9 |
3 files changed, 19 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2a756be..5a623bd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2017-07-25 David Edelsohn <dje.gcc@gmail.com> + + * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote + character for AIX. + * dwarf2out.c (output_macinfo): Copy debug_line_section_label + to dl_section_ref. On AIX, append an expression to subtract + the size of the section length to dl_section_ref. + 2017-07-25 Segher Boessenkool <segher@kernel.crashing.org> * configure.ac: If any of the config.* scripts fail, exit 1. diff --git a/gcc/dwarf2asm.c b/gcc/dwarf2asm.c index 3f42040..8e3e86f 100644 --- a/gcc/dwarf2asm.c +++ b/gcc/dwarf2asm.c @@ -345,7 +345,9 @@ dw2_asm_output_nstring (const char *str, size_t orig_len, for (i = 0; i < len; i++) { int c = str[i]; - if (c == '\"' || c == '\\') + if (c == '\"') + fputc (XCOFF_DEBUGGING_INFO ? '\"' : '\\', asm_out_file); + else if (c == '\\') fputc ('\\', asm_out_file); if (ISPRINT (c)) fputc (c, asm_out_file); diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 2010450..5231683 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -26975,6 +26975,7 @@ output_macinfo (void) macinfo_entry *ref; vec<macinfo_entry, va_gc> *files = NULL; macinfo_hash_type *macinfo_htab = NULL; + char dl_section_ref[MAX_ARTIFICIAL_LABEL_BYTES]; if (! length) return; @@ -26985,6 +26986,12 @@ output_macinfo (void) && (int) DW_MACINFO_start_file == (int) DW_MACRO_start_file && (int) DW_MACINFO_end_file == (int) DW_MACRO_end_file); + /* AIX Assembler inserts the length, so adjust the reference to match the + offset expected by debuggers. */ + strcpy (dl_section_ref, debug_line_section_label); + if (XCOFF_DEBUGGING_INFO) + strcat (dl_section_ref, DWARF_INITIAL_LENGTH_SIZE_STR); + /* For .debug_macro emit the section header. */ if (!dwarf_strict || dwarf_version >= 5) { @@ -26995,7 +27002,7 @@ output_macinfo (void) else dw2_asm_output_data (1, 2, "Flags: 32-bit, lineptr present"); dw2_asm_output_offset (DWARF_OFFSET_SIZE, - (!dwarf_split_debug_info ? debug_line_section_label + (!dwarf_split_debug_info ? dl_section_ref : debug_skeleton_line_section_label), debug_line_section, NULL); } |