From 9140cc7b19ee1eddde576ff18d486b6e7a3f6170 Mon Sep 17 00:00:00 2001 From: Chris Mihelich Date: Fri, 7 Jun 2024 12:27:00 -0700 Subject: Demangle complex floating-point literals. PiperOrigin-RevId: 641324572 Change-Id: Ie266da9c8c702e62b89352d64870fb41d2ea76c3 --- absl/debugging/internal/demangle_test.cc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'absl/debugging/internal/demangle_test.cc') diff --git a/absl/debugging/internal/demangle_test.cc b/absl/debugging/internal/demangle_test.cc index 9100d5f1..111e895c 100644 --- a/absl/debugging/internal/demangle_test.cc +++ b/absl/debugging/internal/demangle_test.cc @@ -641,6 +641,25 @@ TEST(Demangle, StringLiterals) { EXPECT_STREQ("f<>()", tmp); } +TEST(Demangle, ComplexFloatingPointLiterals) { + char tmp[80]; + + // Source (use g++ -fext-numeric-literals to compile): + // + // using C = double _Complex; + // template void f(char (&)[sizeof(C{sizeof(T)} + 4.0j)]) {} + // template void f(char (&)[sizeof(C{sizeof(int)} + 4.0j)]); + // + // GNU demangling: + // + // void f(char (&) [sizeof (double _Complex{sizeof (int)}+ + // ((double _Complex)0000000000000000_4010000000000000))]) + EXPECT_TRUE(Demangle( + "_Z1fIiEvRAszpltlCdstT_ELS0_0000000000000000_4010000000000000E_c", + tmp, sizeof(tmp))); + EXPECT_STREQ("f<>()", tmp); +} + TEST(Demangle, GlobalInitializers) { char tmp[80]; -- cgit v1.2.3