[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