diff options
author | Nathan Sidwell <nathan@acm.org> | 2022-03-08 12:54:03 -0800 |
---|---|---|
committer | Nathan Sidwell <nathan@acm.org> | 2022-05-23 05:39:15 -0700 |
commit | b7feb71d45e4cd894d7706c21a21a3871070d098 (patch) | |
tree | ed5f57ea1f5d52d05acc92c20f1325cfe7c4cad2 /libiberty/testsuite/demangle-expected | |
parent | 63798f67dcc848dcd110ce222b97304565c9ea29 (diff) | |
download | gcc-b7feb71d45e4cd894d7706c21a21a3871070d098.zip gcc-b7feb71d45e4cd894d7706c21a21a3871070d098.tar.gz gcc-b7feb71d45e4cd894d7706c21a21a3871070d098.tar.bz2 |
demangler: C++ modules support
This adds demangling support for C++ modules. A new 'W' component
along with augmented behaviour of 'S' components.
include/
* demangle.h (enum demangle_component_type): Add module components.
libiberty/
* cp-demangle.c (d_make_comp): Adjust.
(d_name, d_prefix): Adjust subst handling. Add module handling.
(d_maybe_module_name): New.
(d_unqualified_name): Add incoming module parm. Handle it. Adjust all callers.
(d_special_name): Add 'GI' support.
(d_count_template_scopes): Adjust.
(d_print_comp_inner): Print module.
* testsuite/demangle-expected: New test cases
Diffstat (limited to 'libiberty/testsuite/demangle-expected')
-rw-r--r-- | libiberty/testsuite/demangle-expected | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected index 2b0b531..351af34 100644 --- a/libiberty/testsuite/demangle-expected +++ b/libiberty/testsuite/demangle-expected @@ -1503,3 +1503,70 @@ std::[a] _ZN3NMSDC1aEE NMS::[a] + +# Modules +_ZN5Outer5InnerW3FOO2FnERNS0_1XE +Outer::Inner::Fn@FOO(Outer::Inner::X&) + +_ZN5OuterW3FOO5Inner2FnERNS1_1XE +Outer::Inner@FOO::Fn(Outer::Inner@FOO::X&) + +_ZN4Quux4TotoW3FooW3Bar3BazEPNS0_S2_5PlughE +Quux::Toto::Baz@Foo.Bar(Quux::Toto::Plugh@Foo.Bar*) + +_ZW6Module1fNS_1a1bENS0_1cE +f@Module(a@Module::b, a@Module::c) + +_ZN3BobW3FOOW3BAR3BarEPS1_1APNS_S1_1BE +Bob::Bar@FOO.BAR(A@FOO.BAR*, Bob::B@FOO.BAR*) + +_ZW3FOOW3BAR3FooPS0_1APN3BobS0_1BE +Foo@FOO.BAR(A@FOO.BAR*, Bob::B@FOO.BAR*) + +_ZN3BobW3FOOW3BAZ3FooEPS0_W3BAR1APNS_S2_1BE +Bob::Foo@FOO.BAZ(A@FOO.BAR*, Bob::B@FOO.BAR*) + +_ZW3FOOW3BAZ3BarPS_W3BAR1APN3BobS1_1BE +Bar@FOO.BAZ(A@FOO.BAR*, Bob::B@FOO.BAR*) + +_ZNW3FOO3TPLIS_3OneE1MEPS1_ +TPL@FOO<One@FOO>::M(One@FOO*) + +_ZNW3FOO3TPLIS_3OneE1NIS_3TwoEEvPS1_PT_ +void TPL@FOO<One@FOO>::N<Two@FOO>(One@FOO*, Two@FOO*) + +_ZN3NMSW3FOO3TPLINS_S0_3OneEE1MEPS2_ +NMS::TPL@FOO<NMS::One@FOO>::M(NMS::One@FOO*) + +_ZN3NMSW3FOO3TPLINS_S0_3OneEE1NINS_S0_3TwoEEEvPS2_PT_ +void NMS::TPL@FOO<NMS::One@FOO>::N<NMS::Two@FOO>(NMS::One@FOO*, NMS::Two@FOO*) + +_ZNStW3STD9allocatorIiE1MEPi +std::allocator@STD<int>::M(int*) + +_ZNStW3STD9allocatorIiE1NIfEEPT_Pi +float* std::allocator@STD<int>::N<float>(int*) + +_ZNStW3STD9allocatorI4PoohE1MEPS1_ +std::allocator@STD<Pooh>::M(Pooh*) + +_ZNStW3STD9allocatorI4PoohE1NI6PigletEEPT_PS1_ +Piglet* std::allocator@STD<Pooh>::N<Piglet>(Pooh*) + +_ZW3FooDC1a1bE +[a, b]@Foo + +_ZN1NW3FooDC1a1bEE +N::[a, b]@Foo + +_ZN3NMSW3MOD3FooB3ABIEv +NMS::Foo@MOD[abi:ABI]() + +_ZGIW3Foo +initializer for module Foo + +_ZGIW3FooW3Bar +initializer for module Foo.Bar + +_ZGIW3FooWP3BarW3Baz +initializer for module Foo:Bar.Baz |