about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2022-03-17 20:19:10 -0600
committerTom Tromey <tom@tromey.com>2022-03-17 20:19:10 -0600
commit789eb08147d0f89b8cf6fbe04dbea1a4c81d7c42 (patch)
tree8428a86e1f5a6d7e50c035b4ebebc4f9e6f24d2d
parent4ca56d2b7bbe275bc6c9f3cd698c6e0719a07182 (diff)
downloadrust-789eb08147d0f89b8cf6fbe04dbea1a4c81d7c42.tar.gz
rust-789eb08147d0f89b8cf6fbe04dbea1a4c81d7c42.zip
Fix debuginfo tests with GDB 11.2
GDB 11.2 added support for DW_ATE_UTF, which caused some test
failures.  This fixes these tests by changing the format that is used,
and adds a new test to verify that characters are emitted as something
that GDB can print in a char-like way.

Fixes #94458
-rw-r--r--src/test/debuginfo/borrowed-basic.rs5
-rw-r--r--src/test/debuginfo/borrowed-unique-basic.rs5
-rw-r--r--src/test/debuginfo/gdb-char.rs23
3 files changed, 25 insertions, 8 deletions
diff --git a/src/test/debuginfo/borrowed-basic.rs b/src/test/debuginfo/borrowed-basic.rs
index b4bb7c146d9..45f5df228e3 100644
--- a/src/test/debuginfo/borrowed-basic.rs
+++ b/src/test/debuginfo/borrowed-basic.rs
@@ -1,6 +1,3 @@
-// Gdb doesn't know about UTF-32 character encoding and will print a rust char as only
-// its numerical value.
-
 // compile-flags:-g
 // min-lldb-version: 310
 
@@ -13,7 +10,7 @@
 // gdb-command:print *int_ref
 // gdb-check:$2 = -1
 
-// gdb-command:print *char_ref
+// gdb-command:print/d *char_ref
 // gdb-check:$3 = 97
 
 // gdb-command:print *i8_ref
diff --git a/src/test/debuginfo/borrowed-unique-basic.rs b/src/test/debuginfo/borrowed-unique-basic.rs
index f38cbc10dd3..94229bf27f3 100644
--- a/src/test/debuginfo/borrowed-unique-basic.rs
+++ b/src/test/debuginfo/borrowed-unique-basic.rs
@@ -1,8 +1,5 @@
 // min-lldb-version: 310
 
-// Gdb doesn't know about UTF-32 character encoding and will print a rust char as only
-// its numerical value.
-
 // compile-flags:-g
 
 // === GDB TESTS ===================================================================================
@@ -15,7 +12,7 @@
 // gdb-command:print *int_ref
 // gdb-check:$2 = -1
 
-// gdb-command:print *char_ref
+// gdb-command:print/d *char_ref
 // gdb-check:$3 = 97
 
 // gdb-command:print/d *i8_ref
diff --git a/src/test/debuginfo/gdb-char.rs b/src/test/debuginfo/gdb-char.rs
new file mode 100644
index 00000000000..1863405bf1e
--- /dev/null
+++ b/src/test/debuginfo/gdb-char.rs
@@ -0,0 +1,23 @@
+// GDB got support for DW_ATE_UTF in 11.2, see
+// https://sourceware.org/bugzilla/show_bug.cgi?id=28637.
+
+// min-gdb-version: 11.2
+// compile-flags: -g
+
+// === GDB TESTS ===================================================================================
+
+// gdb-command:run
+// gdb-command:print ch
+// gdb-check:$1 = 97 'a'
+
+#![allow(unused_variables)]
+#![feature(omit_gdb_pretty_printer_section)]
+#![omit_gdb_pretty_printer_section]
+
+fn main() {
+    let ch: char = 'a';
+
+    zzz(); // #break
+}
+
+fn zzz() {()}