eugene created this revision.
eugene added a reviewer: labath.
Now incorrect type argument that looks like T<A><B> doesn't cause an assert,
but just a parsing error.
Bug: 36224
https://reviews.llvm.org/D42939
Files:
source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp
unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
Index: unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
===================================================================
--- unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
+++ unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
@@ -160,4 +160,6 @@
"selector:otherField:", context, basename));
EXPECT_FALSE(CPlusPlusLanguage::ExtractContextAndIdentifier(
"abc::", context, basename));
+ EXPECT_FALSE(CPlusPlusLanguage::ExtractContextAndIdentifier(
+ "f<A<B><C>>", context, basename));
}
Index: source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp
===================================================================
--- source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp
+++ source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp
@@ -242,8 +242,7 @@
}
}
- assert(template_counter >= 0);
- if (template_counter > 0) {
+ if (template_counter != 0) {
return false;
}
start_position.Remove();
Index: unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
===================================================================
--- unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
+++ unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
@@ -160,4 +160,6 @@
"selector:otherField:", context, basename));
EXPECT_FALSE(CPlusPlusLanguage::ExtractContextAndIdentifier(
"abc::", context, basename));
+ EXPECT_FALSE(CPlusPlusLanguage::ExtractContextAndIdentifier(
+ "f<A<B><C>>", context, basename));
}
Index: source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp
===================================================================
--- source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp
+++ source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp
@@ -242,8 +242,7 @@
}
}
- assert(template_counter >= 0);
- if (template_counter > 0) {
+ if (template_counter != 0) {
return false;
}
start_position.Remove();
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits