[cfe-commits] r112333 - in /cfe/trunk: lib/Sema/SemaExpr.cpp test/SemaTemplate/inject-templated-friend.cpp
Gabor Greif
ggreif at gmail.com
Fri Aug 27 17:16:06 PDT 2010
Author: ggreif
Date: Fri Aug 27 19:16:06 2010
New Revision: 112333
URL: http://llvm.org/viewvc/llvm-project?rev=112333&view=rev
Log:
fix PR8007
reordering and redefinition issues still may linger,
I plan to nail them next
Modified:
cfe/trunk/lib/Sema/SemaExpr.cpp
cfe/trunk/test/SemaTemplate/inject-templated-friend.cpp
Modified: cfe/trunk/lib/Sema/SemaExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=112333&r1=112332&r2=112333&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaExpr.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExpr.cpp Fri Aug 27 19:16:06 2010
@@ -7709,7 +7709,12 @@
else
PendingInstantiations.push_back(std::make_pair(Function, Loc));
}
- }
+ } else // Walk redefinitions, as some of them may be instantiable.
+ for (FunctionDecl::redecl_iterator i(Function->redecls_begin()),
+ e(Function->redecls_end()); i != e; ++i) {
+ if (i->isImplicitlyInstantiable())
+ MarkDeclarationReferenced(Loc, *i);
+ }
// FIXME: keep track of references to static functions
Modified: cfe/trunk/test/SemaTemplate/inject-templated-friend.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/inject-templated-friend.cpp?rev=112333&r1=112332&r2=112333&view=diff
==============================================================================
--- cfe/trunk/test/SemaTemplate/inject-templated-friend.cpp (original)
+++ cfe/trunk/test/SemaTemplate/inject-templated-friend.cpp Fri Aug 27 19:16:06 2010
@@ -1,5 +1,4 @@
// RUN: %clang %s -S -emit-llvm -o - | grep -e "define linkonce_odr.*_ZN6pr8007lsERNS_11std_ostreamERKNS_8StreamerINS_3FooEEE"
-// XFAIL: *
namespace pr8007 {
More information about the cfe-commits
mailing list