From: Jason Merrill Date: Wed, 24 Aug 2022 20:31:04 +0000 (-0400) Subject: dwarf2: use DW_ATE_UTF for char8_t X-Git-Tag: basepoints/gcc-14~5004 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30e160475489867a09ed89532cae135b5849cf98;p=thirdparty%2Fgcc.git dwarf2: use DW_ATE_UTF for char8_t While looking at the Rust changes to dwarf2out I noticed that this was missing from the char8_t support. gcc/ChangeLog: * dwarf2out.cc (base_type_die): Also use DW_ATE_UTF for char8_t. gcc/testsuite/ChangeLog: * g++.dg/debug/dwarf2/utf-1.C: New test. --- diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc index e3920c898f5f..28a4ae08fe4c 100644 --- a/gcc/dwarf2out.cc +++ b/gcc/dwarf2out.cc @@ -13210,6 +13210,7 @@ base_type_die (tree type, bool reverse) { const char *name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))); if (strcmp (name, "char16_t") == 0 + || strcmp (name, "char8_t") == 0 || strcmp (name, "char32_t") == 0) { encoding = DW_ATE_UTF; diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C b/gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C new file mode 100644 index 000000000000..43b354f1bb5d --- /dev/null +++ b/gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C @@ -0,0 +1,9 @@ +// { dg-do compile { target c++20 } } +// { dg-options { -gdwarf -dA } } + +// Test that all three use DW_ATE_UTF. +// { dg-final { scan-assembler-times {DW_AT_encoding \(0x10\)} 3 } } + +char8_t c8; +char16_t c16; +char32_t c32;