Store the pending implicit instantiations in the PCH and perform them at the end of the translation unit that
included the PCH, as God intended.

llvm-svn: 110324
diff --git a/clang/test/PCH/cxx-templates.cpp b/clang/test/PCH/cxx-templates.cpp
index 8e89b1d..0749fc3 100644
--- a/clang/test/PCH/cxx-templates.cpp
+++ b/clang/test/PCH/cxx-templates.cpp
@@ -7,6 +7,7 @@
 // RUN: %clang_cc1 -include-pch %t -verify %s -ast-dump  1>/dev/null
 // RUN: %clang_cc1 -include-pch %t %s -emit-llvm -o - | FileCheck %s
 
+// CHECK: define weak_odr void @_ZN2S4IiE1mEv
 // CHECK: define linkonce_odr void @_ZN2S3IiE1mEv
 
 struct A {
@@ -30,3 +31,5 @@
   S3<int> s3;
   s3.m();
 }
+
+template struct S4<int>;