public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] gcc: handle double quotes in symbol name during stabstrings generation
@ 2020-12-02 12:24 CHIGOT, CLEMENT
  2020-12-02 15:55 ` Ian Lance Taylor
  0 siblings, 1 reply; 7+ messages in thread
From: CHIGOT, CLEMENT @ 2020-12-02 12:24 UTC (permalink / raw)
  To: gcc-patches, iant; +Cc: David Edelsohn

[-- Attachment #1: Type: text/plain, Size: 785 bytes --]

Hi Ian

Since the new gccgo mangling scheme, libgo compilation is broken on AIX (or in Linux with -gstabs) because of a type symbol having a " in its name. I've made a patch (see attachment) in order to fix stabstring generation, because, IMO, it should be handled anyway.
However, it happens only once in the whole libgo so I don't know if this " is intended or not. The problematic type is there: https://github.com/golang/go/blob/master/src/crypto/x509/x509.go#L2674. Other similar types don't trigger the bug though.

I've a minimal test which might can be added if you wish, in Golang tests or in Gcc Go tests or in both ?

If the patch is okay, could you please apply it for me ?
Thanks,


Clément Chigot
ATOS Bull SAS
1 rue de Provence - 38432 Échirolles - France

[-- Attachment #2: 0001-gcc-handle-double-quotes-in-symbol-name-during-stabs.patch --]
[-- Type: application/octet-stream, Size: 1526 bytes --]

From c2836614aa4309f2e5077de83eabedf5e867290d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cl=C3=A9ment=20Chigot?= <clement.chigot@atos.net>
Date: Wed, 2 Dec 2020 18:19:35 +0100
Subject: [PATCH] gcc: handle double quotes in symbol name during stabstrings
 generation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the new gccgo mangling scheme, a type name might now have a double
quotes in it. The current code doesn't escape these double quotes when
writing .stabs pseudo-opcode in the assembly file.

Changelog:
2020-12-02  Clément Chigot  <clement.chigot@atosnet>

	* dbxout.c (dbxout_symbol_name): Handle double quotes.
---
 gcc/dbxout.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index eaee2f19ce0..d1ffd7f36d2 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -3274,7 +3274,24 @@ dbxout_symbol_name (tree decl, const char *suffix, int letter)
        added by ASM_FORMAT_PRIVATE_NAME.  */
     name = DECL_NAME (decl);
 
-  if (name)
+  if (name && strchr(IDENTIFIER_POINTER(name), '"'))
+    {
+      /* Make sure double quote characters are correctly handled.  */
+      const char *str = IDENTIFIER_POINTER(name);
+      char c;
+      while ((c = *(str)++) != 0)
+	{
+	  if (c == '\"')
+#ifdef XCOFF_DEBUGGING_INFO
+	    stabstr_C ('\"');
+#else
+	    stabstr_C ('\\');
+#endif
+
+	  stabstr_C (c);
+	}
+    }
+  else if (name)
     stabstr_I (name);
   else
     stabstr_S ("(anon)");
-- 
2.25.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-12-14 13:38 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-02 12:24 [PATCH] gcc: handle double quotes in symbol name during stabstrings generation CHIGOT, CLEMENT
2020-12-02 15:55 ` Ian Lance Taylor
2020-12-02 16:14   ` CHIGOT, CLEMENT
2020-12-08 13:15     ` CHIGOT, CLEMENT
2020-12-11  5:09       ` Ian Lance Taylor
2020-12-11 17:58         ` Ian Lance Taylor
2020-12-14 13:36           ` CHIGOT, CLEMENT

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).