[analyzer] Fix CloneDetector crash on calling methods of class templates.
If a call expression represents a method call of a class template,
and the method itself isn't templated, then the method may be considered
to be a template instantiation without template specialization arguments.
No longer crash when we could not find template specialization arguments.
Patch by Raphael Isemann!
Differential Revision: https://reviews.llvm.org/D23780
llvm-svn: 279529
diff --git a/clang/test/Analysis/copypaste/call.cpp b/clang/test/Analysis/copypaste/call.cpp
index 46df022..8e95f7c 100644
--- a/clang/test/Analysis/copypaste/call.cpp
+++ b/clang/test/Analysis/copypaste/call.cpp
@@ -88,3 +88,15 @@
return templatePaddingFunc<XX, X>();
return true;
}
+
+// Test that we don't crash on member functions of template instantiations.
+
+template<typename T>
+struct A {
+ void foo(T t) {}
+};
+
+void fooTestInstantiation() {
+ A<int> a;
+ a.foo(1);
+}