diff options
author | Dino Radakovic <dinor@google.com> | 2024-02-09 11:58:31 -0800 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-02-09 12:00:20 -0800 |
commit | 1ac7f340105c75e447f5f98b77b71e4df2125153 (patch) | |
tree | 9b4328062098c4e986fe9f6c06d9d193e5df7c0d /absl/debugging/internal/demangle_test.cc | |
parent | 760b21530ffc22ef4859356e543022b18de7d2ce (diff) | |
download | abseil-1ac7f340105c75e447f5f98b77b71e4df2125153.tar.gz abseil-1ac7f340105c75e447f5f98b77b71e4df2125153.tar.bz2 abseil-1ac7f340105c75e447f5f98b77b71e4df2125153.zip |
`demangle`: Parse `requires` clauses on functions
These clauses show up in other places that end up mangled as parts of function signatures (e.g. on template struct params). We'll handle those in a follow-up.
PiperOrigin-RevId: 605694497
Change-Id: I1bfe4c0cfaa739fdd24548b1547482410c92b5a7
Diffstat (limited to 'absl/debugging/internal/demangle_test.cc')
-rw-r--r-- | absl/debugging/internal/demangle_test.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/absl/debugging/internal/demangle_test.cc b/absl/debugging/internal/demangle_test.cc index 4e04210e..4b9d7711 100644 --- a/absl/debugging/internal/demangle_test.cc +++ b/absl/debugging/internal/demangle_test.cc @@ -64,6 +64,17 @@ TEST(Demangle, FunctionTemplateWithNonTypeParamConstraint) { EXPECT_STREQ(tmp, "foo<>()"); } +TEST(Demangle, FunctionTemplateWithFunctionRequiresClause) { + char tmp[100]; + + // template <typename T> + // int foo() requires std::integral<T>; + // + // foo<int>(); + ASSERT_TRUE(Demangle("_Z3fooIiEivQsr3stdE8integralIT_E", tmp, sizeof(tmp))); + EXPECT_STREQ(tmp, "foo<>()"); +} + TEST(Demangle, FunctionTemplateWithAutoParam) { char tmp[100]; |