diff options
author | Chris Mihelich <cmihelic@google.com> | 2024-05-23 11:21:54 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-05-23 11:22:59 -0700 |
commit | a3c25aec21595adf6b1e16f2209fafd39c8e7942 (patch) | |
tree | 2350253fd140caffa8f01203dcd22b221546addf /absl/debugging/internal/demangle_test.cc | |
parent | 88c1f181e2b60463b127ec554689f1450f6c142d (diff) | |
download | abseil-a3c25aec21595adf6b1e16f2209fafd39c8e7942.tar.gz abseil-a3c25aec21595adf6b1e16f2209fafd39c8e7942.tar.bz2 abseil-a3c25aec21595adf6b1e16f2209fafd39c8e7942.zip |
Demangle C++ sZ encodings (sizeof...(pack)).
PiperOrigin-RevId: 636615840
Change-Id: I34f584ea0c6603a0781e874d683b516de94c6928
Diffstat (limited to 'absl/debugging/internal/demangle_test.cc')
-rw-r--r-- | absl/debugging/internal/demangle_test.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/absl/debugging/internal/demangle_test.cc b/absl/debugging/internal/demangle_test.cc index 9db79e64..0044d420 100644 --- a/absl/debugging/internal/demangle_test.cc +++ b/absl/debugging/internal/demangle_test.cc @@ -329,6 +329,26 @@ TEST(Demangle, SubobjectAddresses) { EXPECT_STREQ("f<>()", tmp); } +TEST(Demangle, SizeofPacks) { + char tmp[80]; + + // template <std::size_t i> struct S {}; + // + // template <class... T> auto f(T... p) -> S<sizeof...(T)> { return {}; } + // template auto f<int, long>(int, long) -> S<2>; + // + // template <class... T> auto g(T... p) -> S<sizeof...(p)> { return {}; } + // template auto g<int, long>(int, long) -> S<2>; + + // S<sizeof...(int, long)> f<int, long>(int, long) + EXPECT_TRUE(Demangle("_Z1fIJilEE1SIXsZT_EEDpT_", tmp, sizeof(tmp))); + EXPECT_STREQ("f<>()", tmp); + + // S<sizeof... (fp)> g<int, long>(int, long) + EXPECT_TRUE(Demangle("_Z1gIJilEE1SIXsZfp_EEDpT_", tmp, sizeof(tmp))); + EXPECT_STREQ("g<>()", tmp); +} + // Test one Rust symbol to exercise Demangle's delegation path. Rust demangling // itself is more thoroughly tested in demangle_rust_test.cc. TEST(Demangle, DelegatesToDemangleRustSymbolEncoding) { |