aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2023-07-05 17:43:31 -0400
committerMarek Polacek <polacek@redhat.com>2023-07-18 13:01:30 -0400
commit05fc7db93452841280ddc5cdf71b33498ed576dc (patch)
tree5cba11e87efab727f1b2aef963c3fda8b132dda5
parente9ba2ccf5b3f927fe6397a8eef23e2874a2edf05 (diff)
downloadgcc-05fc7db93452841280ddc5cdf71b33498ed576dc.zip
gcc-05fc7db93452841280ddc5cdf71b33498ed576dc.tar.gz
gcc-05fc7db93452841280ddc5cdf71b33498ed576dc.tar.bz2
testsuite: fix dwarf2/utf-1.C with DWARF4
Running $ make check-c++ RUNTESTFLAGS='--target_board=unix\{-gdwarf-5,-gdwarf-4\} dwarf2.exp=utf-1.C' shows FAIL: g++.dg/debug/dwarf2/utf-1.C -std=gnu++20 scan-assembler-times DW_AT_encoding \\(0x10\\) 3 because with -gdwarf-4 the output is: .byte 0x10 # DW_AT_encoding but with -gdwarf-5 the output is the expected: # DW_AT_encoding (0x10) The difference is caused by the DWARF5 optimize_implicit_const optimization: <https://gcc.gnu.org/pipermail/gcc-patches/2016-October/459762.html> I suppose we could do what testsuite/rust/debug/chartype.rs does and just run the test with -gdwarf-4. gcc/testsuite/ChangeLog: * g++.dg/debug/dwarf2/utf-1.C: Use -gdwarf-4. Adjust expected output.
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C b/gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C
index 43b354f..0ce4d87 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C
@@ -1,8 +1,13 @@
// { dg-do compile { target c++20 } }
-// { dg-options { -gdwarf -dA } }
+// { dg-options { -gdwarf-4 -dA } }
// Test that all three use DW_ATE_UTF.
-// { dg-final { scan-assembler-times {DW_AT_encoding \(0x10\)} 3 } }
+// This test uses -gdwarf-4 since in DWARF5 optimize_implicit_const
+// would optimize the output from:
+// .byte 0x10 # DW_AT_encoding
+// into:
+// # DW_AT_encoding (0x10)
+// { dg-final { scan-assembler-times "0x10\[ \t]\[^\n\r]* DW_AT_encoding" 3 } }
char8_t c8;
char16_t c16;