aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Edelsohn <dje.gcc@gmail.com>2017-07-25 13:11:37 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2017-07-25 09:11:37 -0400
commit7e78cfda8219a0e7d95232e15fe49cb4de620134 (patch)
tree55d38cf00f94d63fa90cc7d180e0710b5cf31aa8
parent8595f67be2d1f44102a345f21d28b4836ad47349 (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/dwarf2asm.c4
-rw-r--r--gcc/dwarf2out.c9
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);
}