aboutsummaryrefslogtreecommitdiff
path: root/absl/debugging/internal/demangle_test.cc
diff options
context:
space:
mode:
authorDino Radakovic <dinor@google.com>2024-02-09 11:58:31 -0800
committerCopybara-Service <copybara-worker@google.com>2024-02-09 12:00:20 -0800
commit1ac7f340105c75e447f5f98b77b71e4df2125153 (patch)
tree9b4328062098c4e986fe9f6c06d9d193e5df7c0d /absl/debugging/internal/demangle_test.cc
parent760b21530ffc22ef4859356e543022b18de7d2ce (diff)
downloadabseil-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.cc11
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];