]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix endian bug in rust demangler
authorAndreas Schwab <schwab@linux-m68k.org>
Tue, 20 Apr 2021 15:30:46 +0000 (17:30 +0200)
committerAndreas Schwab <schwab@linux-m68k.org>
Wed, 21 Apr 2021 11:28:21 +0000 (13:28 +0200)
libiberty/
PR demangler/100177
* rust-demangle.c (demangle_const_char): Properly print the
character value.

libiberty/rust-demangle.c

index 6fd8f6a4db0541615cedc72e1668c421b207bca4..449941b56dc16461aa4cf182ad95607ee20d4aed 100644 (file)
@@ -1253,9 +1253,12 @@ demangle_const_char (struct rust_demangler *rdm)
   else if (value == '\n')
     PRINT ("\\n");
   else if (value > ' ' && value < '~')
-    /* Rust also considers many non-ASCII codepoints to be printable, but
-       that logic is not easily ported to C. */
-    print_str (rdm, (char *) &value, 1);
+    {
+      /* Rust also considers many non-ASCII codepoints to be printable, but
+        that logic is not easily ported to C. */
+      char c = value;
+      print_str (rdm, &c, 1);
+    }
   else
     {
       PRINT ("\\u{");