[cfe-commits] r161791 - in /cfe/trunk: lib/AST/ExprCXX.cpp test/CodeGenCXX/debug-info-cxx0x.cpp
Richard Smith
richard-llvm at metafoo.co.uk
Mon Aug 13 14:29:18 PDT 2012
Author: rsmith
Date: Mon Aug 13 16:29:18 2012
New Revision: 161791
URL: http://llvm.org/viewvc/llvm-project?rev=161791&view=rev
Log:
PR13570: When an unresolved overloaded call appeared in a dependent context, we
forgot to set it as being instantiation-dependent as well as being type- and
value-dependent.
Modified:
cfe/trunk/lib/AST/ExprCXX.cpp
cfe/trunk/test/CodeGenCXX/debug-info-cxx0x.cpp
Modified: cfe/trunk/lib/AST/ExprCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ExprCXX.cpp?rev=161791&r1=161790&r2=161791&view=diff
==============================================================================
--- cfe/trunk/lib/AST/ExprCXX.cpp (original)
+++ cfe/trunk/lib/AST/ExprCXX.cpp Mon Aug 13 16:29:18 2012
@@ -277,6 +277,7 @@
isa<UnresolvedUsingValueDecl>(*I)) {
ExprBits.TypeDependent = true;
ExprBits.ValueDependent = true;
+ ExprBits.InstantiationDependent = true;
}
}
Modified: cfe/trunk/test/CodeGenCXX/debug-info-cxx0x.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-cxx0x.cpp?rev=161791&r1=161790&r2=161791&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/debug-info-cxx0x.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/debug-info-cxx0x.cpp Mon Aug 13 16:29:18 2012
@@ -6,3 +6,13 @@
return x;
}
}
+
+// Don't crash.
+namespace PR13570 {
+ template<typename T, typename U> struct P {};
+ template<typename T> struct A {
+ template<typename U> static P<T,U> isa(U);
+ decltype(isa(int())) f() {}
+ };
+ template struct A<int>;
+}
More information about the cfe-commits
mailing list