<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 24, 2015, at 6:31 PM, Richard Smith <<a href="mailto:richard@metafoo.co.uk" class="">richard@metafoo.co.uk</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">My modules bootstrap is broken; I'm not certain this change is responsible, but it looks likely. You should be able to reproduce by configuring with<div class=""><br class=""></div><div class="">  cmake -DLLVM_ENABLE_MODULES=1 -DLLVM_USE_SPLIT_DWARF=1</div><div class=""><br class=""></div><div class="">The error I get is:</div><div class=""><br class=""></div><div class=""><div class="">  "clang: for the -split-dwarf option: may only occur zero or one times!"</div></div><div class=""><br class=""></div><div class="">Simpler repro:</div><div class=""><br class=""></div><div class="">  clang -fmodules -gsplit-dwarf any-file-that-imports-a-module.cpp</div></div></div></blockquote><div><br class=""></div><div>Ah yes that makes total sense. I will revert the set once more and will take this configuration into my growing list of local tests :-)</div><div><br class=""></div><div>-- adrian</div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Feb 24, 2015 at 5:31 PM, Adrian Prantl <span dir="ltr" class=""><<a href="mailto:aprantl@apple.com" target="_blank" class="">aprantl@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: adrian<br class="">
Date: Tue Feb 24 19:31:45 2015<br class="">
New Revision: 230423<br class="">
<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=230423&view=rev" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=230423&view=rev</a><br class="">
Log:<br class="">
Wrap clang module files in a Mach-O, ELF, or COFF container.<br class="">
This is a necessary prerequisite for debugging with modules.<br class="">
The .pcm files become containers that hold the serialized AST which allows<br class="">
us to store debug information in the module file that can be shared by all<br class="">
object files that were built importing the module.<br class="">
<br class="">
This reapplies r230044 with a fixed configure+make build and updated<br class="">
dependencies and testcase requirements. Over the last iteration this<br class="">
version adds<br class="">
- missing target requirements for testcases that specify an x86 triple,<br class="">
- a missing clangCodeGen.a dependency to libClang.a in the make build.<br class="">
<br class="">
<a href="rdar://problem/19104245" class="">rdar://problem/19104245</a><br class="">
<br class="">
Added:<br class="">
    cfe/trunk/include/clang/CodeGen/CodeGenModuleContainer.h<br class="">
    cfe/trunk/lib/CodeGen/CodeGenModuleContainer.cpp<br class="">
    cfe/trunk/test/Modules/module_container.m<br class="">
Modified:<br class="">
    cfe/trunk/docs/PCHInternals.rst<br class="">
    cfe/trunk/include/clang/Frontend/FrontendActions.h<br class="">
    cfe/trunk/include/clang/Serialization/ASTReader.h<br class="">
    cfe/trunk/include/clang/Serialization/ASTWriter.h<br class="">
    cfe/trunk/lib/CodeGen/CMakeLists.txt<br class="">
    cfe/trunk/lib/Frontend/ASTUnit.cpp<br class="">
    cfe/trunk/lib/Frontend/CMakeLists.txt<br class="">
    cfe/trunk/lib/Frontend/ChainedIncludesSource.cpp<br class="">
    cfe/trunk/lib/Frontend/FrontendActions.cpp<br class="">
    cfe/trunk/lib/Frontend/MultiplexConsumer.cpp<br class="">
    cfe/trunk/lib/Serialization/ASTReader.cpp<br class="">
    cfe/trunk/lib/Serialization/CMakeLists.txt<br class="">
    cfe/trunk/lib/Serialization/GeneratePCH.cpp<br class="">
    cfe/trunk/lib/Serialization/GlobalModuleIndex.cpp<br class="">
    cfe/trunk/lib/Serialization/ModuleManager.cpp<br class="">
    cfe/trunk/test/ARCMT/check-with-pch.m<br class="">
    cfe/trunk/test/ARCMT/migrate-on-pch-and-module.m<br class="">
    cfe/trunk/test/ARCMT/objcmt-with-pch.m<br class="">
    cfe/trunk/test/ARCMT/objcmt-with-pch.m.result<br class="">
    cfe/trunk/test/CMakeLists.txt<br class="">
    cfe/trunk/test/CXX/expr/expr.unary/expr.unary.noexcept/cg.cpp<br class="">
    cfe/trunk/test/CodeGen/atomic-ops.c<br class="">
    cfe/trunk/test/CodeGen/big-atomic-ops.c<br class="">
    cfe/trunk/test/Frontend/ast-codegen.c<br class="">
    cfe/trunk/test/Index/TestClassForwardDecl.m<br class="">
    cfe/trunk/test/Index/c-index-api-loadTU-test.m<br class="">
    cfe/trunk/test/Index/c-index-getCursor-test.m<br class="">
    cfe/trunk/test/Index/pch-with-module.m<br class="">
    cfe/trunk/test/Index/print-mangled-name.cpp<br class="">
    cfe/trunk/test/Modules/dependency-gen-inferred-map.m<br class="">
    cfe/trunk/test/Modules/dependency-gen-pch.m<br class="">
    cfe/trunk/test/Modules/irgen.c<br class="">
    cfe/trunk/test/Modules/self-import-header.m<br class="">
    cfe/trunk/test/Modules/<a href="http://templates-2.mm/" target="_blank" class="">templates-2.mm</a><br class="">
    cfe/trunk/test/Modules/<a href="http://templates.mm/" target="_blank" class="">templates.mm</a><br class="">
    cfe/trunk/test/Modules/va_list.m<br class="">
    cfe/trunk/test/OpenMP/atomic_read_codegen.c<br class="">
    cfe/trunk/test/OpenMP/barrier_codegen.cpp<br class="">
    cfe/trunk/test/OpenMP/critical_codegen.cpp<br class="">
    cfe/trunk/test/OpenMP/flush_codegen.cpp<br class="">
    cfe/trunk/test/OpenMP/for_codegen.cpp<br class="">
    cfe/trunk/test/OpenMP/master_codegen.cpp<br class="">
    cfe/trunk/test/OpenMP/parallel_codegen.cpp<br class="">
    cfe/trunk/test/OpenMP/parallel_private_codegen.cpp<br class="">
    cfe/trunk/test/OpenMP/simd_codegen.cpp<br class="">
    cfe/trunk/test/OpenMP/single_codegen.cpp<br class="">
    cfe/trunk/test/OpenMP/taskyield_codegen.cpp<br class="">
    cfe/trunk/test/OpenMP/threadprivate_codegen.cpp<br class="">
    cfe/trunk/test/PCH/__va_list_tag.c<br class="">
    cfe/trunk/test/PCH/arc.m<br class="">
    cfe/trunk/test/PCH/asm.c<br class="">
    cfe/trunk/test/PCH/chain-external-defs.c<br class="">
    cfe/trunk/test/PCH/chain-trivial.c<br class="">
    cfe/trunk/test/PCH/cxx-ms-function-specialization-class-scope.cpp<br class="">
    cfe/trunk/test/PCH/external-defs.c<br class="">
    cfe/trunk/test/PCH/floating-literal.c<br class="">
    cfe/trunk/test/PCH/local_static.cpp<br class="">
    cfe/trunk/test/PCH/pchpch.c<br class="">
    cfe/trunk/test/PCH/reloc.c<br class="">
    cfe/trunk/test/PCH/subscripting-literals.m<br class="">
    cfe/trunk/test/PCH/target-options.c<br class="">
    cfe/trunk/test/PCH/tentative-defs.c<br class="">
    cfe/trunk/test/PCH/thread-local.cpp<br class="">
    cfe/trunk/test/PCH/va_arg.c<br class="">
    cfe/trunk/test/PCH/va_arg.cpp<br class="">
    cfe/trunk/tools/arcmt-test/Makefile<br class="">
    cfe/trunk/tools/c-arcmt-test/Makefile<br class="">
    cfe/trunk/tools/c-index-test/Makefile<br class="">
    cfe/trunk/tools/clang-check/Makefile<br class="">
    cfe/trunk/tools/diagtool/Makefile<br class="">
    cfe/trunk/tools/libclang/CMakeLists.txt<br class="">
    cfe/trunk/tools/libclang/Makefile<br class="">
    cfe/trunk/unittests/AST/Makefile<br class="">
    cfe/trunk/unittests/ASTMatchers/Dynamic/Makefile<br class="">
    cfe/trunk/unittests/ASTMatchers/Makefile<br class="">
    cfe/trunk/unittests/CodeGen/Makefile<br class="">
    cfe/trunk/unittests/Frontend/Makefile<br class="">
    cfe/trunk/unittests/Sema/Makefile<br class="">
    cfe/trunk/unittests/Tooling/Makefile<br class="">
    cfe/trunk/unittests/libclang/Makefile<br class="">
<br class="">
Modified: cfe/trunk/docs/PCHInternals.rst<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/PCHInternals.rst?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/PCHInternals.rst?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/docs/PCHInternals.rst (original)<br class="">
+++ cfe/trunk/docs/PCHInternals.rst Tue Feb 24 19:31:45 2015<br class="">
@@ -65,6 +65,9 @@ be included at the beginning of the tran<br class="">
 AST file format required for modules are discussed in the section on<br class="">
 :ref:`modules <pchinternals-modules>`.<br class="">
<br class="">
+Clang's AST files are Mach-O, ELF, or COFF containers that contain a<br class="">
+``__clangast`` section which holds the AST bitstream.<br class="">
+<br class="">
 Clang's AST files are designed with a compact on-disk representation, which<br class="">
 minimizes both creation time and the time required to initially load the AST<br class="">
 file.  The AST file itself contains a serialized representation of Clang's<br class="">
<br class="">
Added: cfe/trunk/include/clang/CodeGen/CodeGenModuleContainer.h<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/CodeGen/CodeGenModuleContainer.h?rev=230423&view=auto" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/CodeGen/CodeGenModuleContainer.h?rev=230423&view=auto</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/include/clang/CodeGen/CodeGenModuleContainer.h (added)<br class="">
+++ cfe/trunk/include/clang/CodeGen/CodeGenModuleContainer.h Tue Feb 24 19:31:45 2015<br class="">
@@ -0,0 +1,34 @@<br class="">
+//===--- CodeGen/ModuleContainerGenerator.h - Emit .pcm files ---*- C++ -*-===//<br class="">
+//<br class="">
+//                     The LLVM Compiler Infrastructure<br class="">
+//<br class="">
+// This file is distributed under the University of Illinois Open Source<br class="">
+// License. See LICENSE.TXT for details.<br class="">
+//<br class="">
+//===----------------------------------------------------------------------===//<br class="">
+<br class="">
+#ifndef LLVM_CLANG_CODEGEN_MODULE_CONTAINER_H<br class="">
+#define LLVM_CLANG_CODEGEN_MODULE_CONTAINER_H<br class="">
+<br class="">
+#include "ModuleBuilder.h"<br class="">
+#include <string><br class="">
+<br class="">
+namespace llvm {<br class="">
+class raw_ostream;<br class="">
+}<br class="">
+<br class="">
+namespace clang {<br class="">
+<br class="">
+class PCHGenerator;<br class="">
+class TargetOptions;<br class="">
+<br class="">
+/// \brief Create a CodeGenerator instance.<br class="">
+/// It is the responsibility of the caller to call delete on<br class="">
+/// the allocated CodeGenerator instance.<br class="">
+CodeGenerator *CreateModuleContainerGenerator(<br class="">
+    DiagnosticsEngine &Diags, const std::string &ModuleName,<br class="">
+    const CodeGenOptions &CGO, const TargetOptions &TO, const LangOptions &LO,<br class="">
+    llvm::raw_ostream *OS, PCHGenerator *PCHGen);<br class="">
+}<br class="">
+<br class="">
+#endif<br class="">
<br class="">
Modified: cfe/trunk/include/clang/Frontend/FrontendActions.h<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/FrontendActions.h?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/FrontendActions.h?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/include/clang/Frontend/FrontendActions.h (original)<br class="">
+++ cfe/trunk/include/clang/Frontend/FrontendActions.h Tue Feb 24 19:31:45 2015<br class="">
@@ -69,6 +69,14 @@ protected:<br class="">
                                                  StringRef InFile) override;<br class="">
 };<br class="">
<br class="">
+/// \brief Emits the output of a GeneratePCHAction or GenerateModuleAction into<br class="">
+/// a Mach-O/ELF/COFF container.<br class="">
+class GeneratePCMContainerAction : public FrontendAction {<br class="">
+protected:<br class="">
+  std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI,<br class="">
+                                                 StringRef InFile) override;<br class="">
+};<br class="">
+<br class="">
 class GeneratePCHAction : public ASTFrontendAction {<br class="">
 protected:<br class="">
   std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI,<br class="">
<br class="">
Modified: cfe/trunk/include/clang/Serialization/ASTReader.h<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTReader.h?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTReader.h?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/include/clang/Serialization/ASTReader.h (original)<br class="">
+++ cfe/trunk/include/clang/Serialization/ASTReader.h Tue Feb 24 19:31:45 2015<br class="">
@@ -1127,6 +1127,10 @@ private:<br class="">
 public:<br class="">
   void ResolveImportedPath(ModuleFile &M, std::string &Filename);<br class="">
   static void ResolveImportedPath(std::string &Filename, StringRef Prefix);<br class="">
+  /// \brief Initialize a BitstreamReader with the `__clangast` section from an<br class="">
+  /// object file container found in Buffer.<br class="">
+  static void InitStreamFileWithModule(llvm::MemoryBufferRef Buffer,<br class="">
+                                       llvm::BitstreamReader &StreamFile);<br class="">
<br class="">
 private:<br class="">
   struct ImportedModule {<br class="">
<br class="">
Modified: cfe/trunk/include/clang/Serialization/ASTWriter.h<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTWriter.h?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTWriter.h?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/include/clang/Serialization/ASTWriter.h (original)<br class="">
+++ cfe/trunk/include/clang/Serialization/ASTWriter.h Tue Feb 24 19:31:45 2015<br class="">
@@ -823,10 +823,13 @@ class PCHGenerator : public SemaConsumer<br class="">
   std::string OutputFile;<br class="">
   clang::Module *Module;<br class="">
   std::string isysroot;<br class="">
-  raw_ostream *Out;<br class="">
   Sema *SemaPtr;<br class="">
-  SmallVector<char, 128> Buffer;<br class="">
+  // This buffer is always large, but BitstreamWriter really wants a<br class="">
+  // SmallVectorImpl<char>.<br class="">
+  SmallVector<char, 0> Buffer;<br class="">
   llvm::BitstreamWriter Stream;<br class="">
+  std::function<void(SmallVectorImpl<char>*)><br class="">
+    SerializationFinishedCallback;<br class="">
   ASTWriter Writer;<br class="">
   bool AllowASTWithErrors;<br class="">
   bool HasEmittedPCH;<br class="">
@@ -836,16 +839,21 @@ protected:<br class="">
   const ASTWriter &getWriter() const { return Writer; }<br class="">
<br class="">
 public:<br class="">
-  PCHGenerator(const Preprocessor &PP, StringRef OutputFile,<br class="">
+  PCHGenerator(const Preprocessor &PP,<br class="">
+               StringRef OutputFile,<br class="">
                clang::Module *Module,<br class="">
-               StringRef isysroot, raw_ostream *Out,<br class="">
+               StringRef isysroot,<br class="">
                bool AllowASTWithErrors = false);<br class="">
   ~PCHGenerator();<br class="">
   void InitializeSema(Sema &S) override { SemaPtr = &S; }<br class="">
   void HandleTranslationUnit(ASTContext &Ctx) override;<br class="">
   ASTMutationListener *GetASTMutationListener() override;<br class="">
   ASTDeserializationListener *GetASTDeserializationListener() override;<br class="">
-<br class="">
+  /// \brief Register a callback to be invoked when the serialization is done.<br class="">
+  void RegisterSerializationFinishedCallback(<br class="">
+    const std::function<void(SmallVectorImpl<char>*)> Fn) {<br class="">
+    SerializationFinishedCallback = Fn;<br class="">
+  }<br class="">
   bool hasEmittedPCH() const { return HasEmittedPCH; }<br class="">
 };<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/lib/CodeGen/CMakeLists.txt<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CMakeLists.txt?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CMakeLists.txt?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/CodeGen/CMakeLists.txt (original)<br class="">
+++ cfe/trunk/lib/CodeGen/CMakeLists.txt Tue Feb 24 19:31:45 2015<br class="">
@@ -1,4 +1,5 @@<br class="">
 set(LLVM_LINK_COMPONENTS<br class="">
+  ${LLVM_TARGETS_TO_BUILD}<br class="">
   Analysis<br class="">
   BitReader<br class="">
   BitWriter<br class="">
@@ -63,6 +64,7 @@ add_clang_library(clangCodeGen<br class="">
   CodeGenAction.cpp<br class="">
   CodeGenFunction.cpp<br class="">
   CodeGenModule.cpp<br class="">
+  CodeGenModuleContainer.cpp<br class="">
   CodeGenPGO.cpp<br class="">
   CodeGenTBAA.cpp<br class="">
   CodeGenTypes.cpp<br class="">
<br class="">
Added: cfe/trunk/lib/CodeGen/CodeGenModuleContainer.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModuleContainer.cpp?rev=230423&view=auto" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModuleContainer.cpp?rev=230423&view=auto</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/CodeGen/CodeGenModuleContainer.cpp (added)<br class="">
+++ cfe/trunk/lib/CodeGen/CodeGenModuleContainer.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -0,0 +1,150 @@<br class="">
+//===--- CodeGenModuleContainer.cpp - Emit .pcm files ---------------------===//<br class="">
+//<br class="">
+//                     The LLVM Compiler Infrastructure<br class="">
+//<br class="">
+// This file is distributed under the University of Illinois Open Source<br class="">
+// License. See LICENSE.TXT for details.<br class="">
+//<br class="">
+//===----------------------------------------------------------------------===//<br class="">
+<br class="">
+#include "clang/CodeGen/CodeGenModuleContainer.h"<br class="">
+#include "CodeGenModule.h"<br class="">
+#include "clang/AST/ASTContext.h"<br class="">
+#include "clang/AST/DeclObjC.h"<br class="">
+#include "clang/AST/Expr.h"<br class="">
+#include "clang/AST/RecursiveASTVisitor.h"<br class="">
+#include "clang/Basic/Diagnostic.h"<br class="">
+#include "clang/Basic/TargetInfo.h"<br class="">
+#include "clang/CodeGen/BackendUtil.h"<br class="">
+#include "clang/Frontend/CodeGenOptions.h"<br class="">
+#include "clang/Serialization/ASTWriter.h"<br class="">
+#include "llvm/ADT/StringRef.h"<br class="">
+#include "llvm/IR/Constants.h"<br class="">
+#include "llvm/IR/DataLayout.h"<br class="">
+#include "llvm/IR/LLVMContext.h"<br class="">
+#include "llvm/IR/Module.h"<br class="">
+#include "llvm/Support/TargetRegistry.h"<br class="">
+#include <memory><br class="">
+using namespace clang;<br class="">
+<br class="">
+namespace {<br class="">
+class ModuleContainerGenerator : public CodeGenerator {<br class="">
+  DiagnosticsEngine &Diags;<br class="">
+  std::unique_ptr<const llvm::DataLayout> TD;<br class="">
+  ASTContext *Ctx;<br class="">
+  const CodeGenOptions CodeGenOpts;<br class="">
+  const TargetOptions TargetOpts;<br class="">
+  const LangOptions LangOpts;<br class="">
+  llvm::LLVMContext VMContext;<br class="">
+  std::unique_ptr<llvm::Module> M;<br class="">
+  std::unique_ptr<CodeGen::CodeGenModule> Builder;<br class="">
+  raw_ostream *OS;<br class="">
+  SmallVectorImpl<char> *SerializedASTBuffer;<br class="">
+<br class="">
+public:<br class="">
+  ModuleContainerGenerator(DiagnosticsEngine &diags,<br class="">
+                           const std::string &ModuleName,<br class="">
+                           const CodeGenOptions &CGO, const TargetOptions &TO,<br class="">
+                           const LangOptions &LO, raw_ostream *OS,<br class="">
+                           PCHGenerator *PCHGen)<br class="">
+      : Diags(diags), CodeGenOpts(CGO), TargetOpts(TO), LangOpts(LO),<br class="">
+        M(new llvm::Module(ModuleName, VMContext)), OS(OS) {<br class="">
+    PCHGen->RegisterSerializationFinishedCallback(<br class="">
+      [&](SmallVectorImpl<char> *Buf){<br class="">
+        SerializedASTBuffer = Buf;<br class="">
+      });<br class="">
+  }<br class="">
+<br class="">
+  virtual ~ModuleContainerGenerator() {}<br class="">
+  llvm::Module *GetModule() override { return M.get(); }<br class="">
+  llvm::Module *ReleaseModule() override { return M.release(); }<br class="">
+<br class="">
+  /// Lifted from ModuleBuilder.<br class="">
+  const Decl *GetDeclForMangledName(StringRef MangledName) override {<br class="">
+    GlobalDecl Result;<br class="">
+    if (!Builder->lookupRepresentativeDecl(MangledName, Result))<br class="">
+      return nullptr;<br class="">
+    const Decl *D = Result.getCanonicalDecl().getDecl();<br class="">
+    if (auto FD = dyn_cast<FunctionDecl>(D)) {<br class="">
+      if (FD->hasBody(FD))<br class="">
+        return FD;<br class="">
+    } else if (auto TD = dyn_cast<TagDecl>(D)) {<br class="">
+      if (auto Def = TD->getDefinition())<br class="">
+        return Def;<br class="">
+    }<br class="">
+    return D;<br class="">
+  }<br class="">
+<br class="">
+  void Initialize(ASTContext &Context) override {<br class="">
+    Ctx = &Context;<br class="">
+    M->setTargetTriple(Ctx->getTargetInfo().getTriple().getTriple());<br class="">
+    M->setDataLayout(Ctx->getTargetInfo().getTargetDescription());<br class="">
+    TD.reset(new llvm::DataLayout(Ctx->getTargetInfo().getTargetDescription()));<br class="">
+    Builder.reset(<br class="">
+        new CodeGen::CodeGenModule(Context, CodeGenOpts, *M, *TD, Diags));<br class="">
+  }<br class="">
+<br class="">
+  /// Emit a container holding the serialized AST.<br class="">
+  void HandleTranslationUnit(ASTContext &Ctx) override {<br class="">
+    if (Diags.hasErrorOccurred()) {<br class="">
+      if (Builder)<br class="">
+        Builder->clear();<br class="">
+      M.reset();<br class="">
+      return;<br class="">
+    }<br class="">
+<br class="">
+    // Finalize the Builder.<br class="">
+    if (Builder)<br class="">
+      Builder->Release();<br class="">
+<br class="">
+    // Initialize the backend if we haven't done so already.<br class="">
+    LLVMInitializeAllTargetInfos();<br class="">
+    LLVMInitializeAllTargets();<br class="">
+    LLVMInitializeAllAsmPrinters();<br class="">
+    LLVMInitializeAllTargetMCs();<br class="">
+<br class="">
+    // Ensure the target exists.<br class="">
+    std::string Error;<br class="">
+    auto Triple = Ctx.getTargetInfo().getTriple();<br class="">
+    if (!llvm::TargetRegistry::lookupTarget(Triple.getTriple(), Error))<br class="">
+      llvm::report_fatal_error(Error);<br class="">
+<br class="">
+    // Emit the serialized Clang AST into its own section.<br class="">
+    auto Size = SerializedASTBuffer->size();<br class="">
+    auto Int8Ty = llvm::Type::getInt8Ty(VMContext);<br class="">
+    auto *Ty = llvm::ArrayType::get(Int8Ty, Size);<br class="">
+    auto *Data = llvm::ConstantDataArray::getString(VMContext,<br class="">
+        StringRef(SerializedASTBuffer->data(), Size), /*AddNull=*/false);<br class="">
+    auto *ASTSym = new llvm::GlobalVariable(*M, Ty, /*constant*/ true,<br class="">
+        llvm::GlobalVariable::InternalLinkage, Data, "__clang_ast");<br class="">
+    ASTSym->setAlignment(8);<br class="">
+    if (Triple.isOSBinFormatMachO())<br class="">
+      // Include Mach-O segment name.<br class="">
+      ASTSym->setSection("__CLANG,__clangast");<br class="">
+    else if (Triple.isOSBinFormatCOFF())<br class="">
+      // Adhere to COFF eight-character limit.<br class="">
+      ASTSym->setSection("clangast");<br class="">
+    else<br class="">
+      ASTSym->setSection("__clangast");<br class="">
+<br class="">
+    // Use the LLVM backend to emit the pcm.<br class="">
+    clang::EmitBackendOutput(Diags, CodeGenOpts, TargetOpts, LangOpts,<br class="">
+                      Ctx.getTargetInfo().getTargetDescription(), M.get(),<br class="">
+                      BackendAction::Backend_EmitObj, OS);<br class="">
+<br class="">
+    // Make sure the module container hits disk now.<br class="">
+    OS->flush();<br class="">
+<br class="">
+    // Free up some memory, in case the process is kept alive.<br class="">
+    SerializedASTBuffer->clear();<br class="">
+  }<br class="">
+};<br class="">
+}<br class="">
+<br class="">
+CodeGenerator *clang::CreateModuleContainerGenerator(<br class="">
+    DiagnosticsEngine &Diags, const std::string &ModuleName,<br class="">
+    const CodeGenOptions &CGO, const TargetOptions &TO, const LangOptions &LO,<br class="">
+    llvm::raw_ostream *OS, PCHGenerator *PCHGen) {<br class="">
+  return<br class="">
+    new ModuleContainerGenerator(Diags, ModuleName, CGO, TO, LO, OS, PCHGen);<br class="">
+}<br class="">
<br class="">
Modified: cfe/trunk/lib/Frontend/ASTUnit.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ASTUnit.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ASTUnit.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/Frontend/ASTUnit.cpp (original)<br class="">
+++ cfe/trunk/lib/Frontend/ASTUnit.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -914,13 +914,20 @@ class PrecompilePreambleConsumer : publi<br class="">
   unsigned &Hash;<br class="">
   std::vector<Decl *> TopLevelDecls;<br class="">
   PrecompilePreambleAction *Action;<br class="">
+  raw_ostream *Out;<br class="">
+  SmallVectorImpl<char> *SerializedASTBuffer;<br class="">
<br class="">
 public:<br class="">
   PrecompilePreambleConsumer(ASTUnit &Unit, PrecompilePreambleAction *Action,<br class="">
                              const Preprocessor &PP, StringRef isysroot,<br class="">
                              raw_ostream *Out)<br class="">
-    : PCHGenerator(PP, "", nullptr, isysroot, Out, /*AllowASTWithErrors=*/true),<br class="">
-      Unit(Unit), Hash(Unit.getCurrentTopLevelHashValue()), Action(Action) {<br class="">
+    : PCHGenerator(PP, "", nullptr, isysroot, /*AllowASTWithErrors=*/true),<br class="">
+      Unit(Unit), Hash(Unit.getCurrentTopLevelHashValue()), Action(Action),<br class="">
+      Out(Out) {<br class="">
+    RegisterSerializationFinishedCallback(<br class="">
+      [&](SmallVectorImpl<char> *Buf){<br class="">
+        SerializedASTBuffer = Buf;<br class="">
+      });<br class="">
     Hash = 0;<br class="">
   }<br class="">
<br class="">
@@ -941,6 +948,13 @@ public:<br class="">
   void HandleTranslationUnit(ASTContext &Ctx) override {<br class="">
     PCHGenerator::HandleTranslationUnit(Ctx);<br class="">
     if (hasEmittedPCH()) {<br class="">
+      // Write the generated bitstream to "Out".<br class="">
+      Out->write((char *)&SerializedASTBuffer->front(),<br class="">
+                 SerializedASTBuffer->size());<br class="">
+      // Make sure it hits disk now.<br class="">
+      Out->flush();<br class="">
+      SerializedASTBuffer->clear();<br class="">
+<br class="">
       // Translate the top-level declarations we captured during<br class="">
       // parsing into declaration IDs in the precompiled<br class="">
       // preamble. This will allow us to deserialize those top-level<br class="">
<br class="">
Modified: cfe/trunk/lib/Frontend/CMakeLists.txt<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CMakeLists.txt?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CMakeLists.txt?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/Frontend/CMakeLists.txt (original)<br class="">
+++ cfe/trunk/lib/Frontend/CMakeLists.txt Tue Feb 24 19:31:45 2015<br class="">
@@ -45,6 +45,7 @@ add_clang_library(clangFrontend<br class="">
   LINK_LIBS<br class="">
   clangAST<br class="">
   clangBasic<br class="">
+  clangCodeGen<br class="">
   clangDriver<br class="">
   clangEdit<br class="">
   clangLex<br class="">
<br class="">
Modified: cfe/trunk/lib/Frontend/ChainedIncludesSource.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ChainedIncludesSource.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ChainedIncludesSource.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/Frontend/ChainedIncludesSource.cpp (original)<br class="">
+++ cfe/trunk/lib/Frontend/ChainedIncludesSource.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -156,11 +156,13 @@ IntrusiveRefCntPtr<ExternalSemaSource> c<br class="">
                                                  &Clang->getPreprocessor());<br class="">
     Clang->createASTContext();<br class="">
<br class="">
-    SmallVector<char, 256> serialAST;<br class="">
-    llvm::raw_svector_ostream OS(serialAST);<br class="">
-    auto consumer =<br class="">
-        llvm::make_unique<PCHGenerator>(Clang->getPreprocessor(), "-", nullptr,<br class="">
-                                        /*isysroot=*/"", &OS);<br class="">
+    auto consumer = llvm::make_unique<PCHGenerator>(Clang->getPreprocessor(),<br class="">
+                                       "-", nullptr, /*isysroot=*/"");<br class="">
+    SmallVectorImpl<char> *serialAST;<br class="">
+    consumer->RegisterSerializationFinishedCallback(<br class="">
+      [&](SmallVectorImpl<char> *Buf){<br class="">
+        serialAST = Buf;<br class="">
+      });<br class="">
     Clang->getASTContext().setASTMutationListener(<br class="">
                                             consumer->GetASTMutationListener());<br class="">
     Clang->setASTConsumer(std::move(consumer));<br class="">
@@ -197,7 +199,9 @@ IntrusiveRefCntPtr<ExternalSemaSource> c<br class="">
<br class="">
     ParseAST(Clang->getSema());<br class="">
     Clang->getDiagnosticClient().EndSourceFile();<br class="">
-    SerialBufs.push_back(llvm::MemoryBuffer::getMemBufferCopy(OS.str()));<br class="">
+    SerialBufs.push_back(llvm::MemoryBuffer::<br class="">
+        getMemBufferCopy(StringRef(serialAST->data(), serialAST->size())));<br class="">
+    serialAST->clear();<br class="">
     source->CIs.push_back(Clang.release());<br class="">
   }<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/lib/Frontend/FrontendActions.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/FrontendActions.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/FrontendActions.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/Frontend/FrontendActions.cpp (original)<br class="">
+++ cfe/trunk/lib/Frontend/FrontendActions.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -10,10 +10,13 @@<br class="">
 #include "clang/Frontend/FrontendActions.h"<br class="">
 #include "clang/AST/ASTConsumer.h"<br class="">
 #include "clang/Basic/FileManager.h"<br class="">
+#include "clang/Basic/TargetInfo.h"<br class="">
+#include "clang/CodeGen/CodeGenModuleContainer.h"<br class="">
 #include "clang/Frontend/ASTConsumers.h"<br class="">
 #include "clang/Frontend/ASTUnit.h"<br class="">
 #include "clang/Frontend/CompilerInstance.h"<br class="">
 #include "clang/Frontend/FrontendDiagnostic.h"<br class="">
+#include "clang/Frontend/MultiplexConsumer.h"<br class="">
 #include "clang/Frontend/Utils.h"<br class="">
 #include "clang/Lex/HeaderSearch.h"<br class="">
 #include "clang/Lex/Pragma.h"<br class="">
@@ -85,8 +88,23 @@ GeneratePCHAction::CreateASTConsumer(Com<br class="">
<br class="">
   if (!CI.getFrontendOpts().RelocatablePCH)<br class="">
     Sysroot.clear();<br class="">
-  return llvm::make_unique<PCHGenerator>(CI.getPreprocessor(), OutputFile,<br class="">
-                                         nullptr, Sysroot, OS);<br class="">
+<br class="">
+  std::vector<std::unique_ptr<ASTConsumer>> Consumers;<br class="">
+  Consumers.push_back(llvm::make_unique<PCHGenerator>(CI.getPreprocessor(),<br class="">
+                                                      OutputFile, nullptr,<br class="">
+                                                      Sysroot));<br class="">
+<br class="">
+  auto CGOpts = CI.getCodeGenOpts();<br class="">
+  // The debug info emitted by ModuleContainerGenerator is not affected by the<br class="">
+  // optimization level.<br class="">
+  CGOpts.OptimizationLevel = 0;<br class="">
+  CGOpts.setDebugInfo(CodeGenOptions::LimitedDebugInfo);<br class="">
+  Consumers.push_back(std::unique_ptr<ASTConsumer>(<br class="">
+      CreateModuleContainerGenerator(CI.getDiagnostics(), "PCH", CGOpts,<br class="">
+                                     CI.getTargetOpts(), CI.getLangOpts(), OS,<br class="">
+                                     cast<PCHGenerator>(Consumers[0].get()))));<br class="">
+<br class="">
+  return llvm::make_unique<MultiplexConsumer>(std::move(Consumers));<br class="">
 }<br class="">
<br class="">
 bool GeneratePCHAction::ComputeASTConsumerArguments(CompilerInstance &CI,<br class="">
@@ -122,8 +140,22 @@ GenerateModuleAction::CreateASTConsumer(<br class="">
   if (ComputeASTConsumerArguments(CI, InFile, Sysroot, OutputFile, OS))<br class="">
     return nullptr;<br class="">
<br class="">
-  return llvm::make_unique<PCHGenerator>(CI.getPreprocessor(), OutputFile,<br class="">
-                                         Module, Sysroot, OS);<br class="">
+  std::vector<std::unique_ptr<ASTConsumer>> Consumers;<br class="">
+  Consumers.push_back(llvm::make_unique<PCHGenerator>(CI.getPreprocessor(),<br class="">
+                                                      OutputFile, Module,<br class="">
+                                                      Sysroot));<br class="">
+<br class="">
+  auto CGOpts = CI.getCodeGenOpts();<br class="">
+  // The debug info emitted by ModuleContainerGenerator is not affected by the<br class="">
+  // optimization level.<br class="">
+  CGOpts.OptimizationLevel = 0;<br class="">
+  CGOpts.setDebugInfo(CodeGenOptions::LimitedDebugInfo);<br class="">
+  Consumers.push_back(<br class="">
+      std::unique_ptr<ASTConsumer>(CreateModuleContainerGenerator(<br class="">
+          CI.getDiagnostics(), Module->getFullModuleName(), CGOpts,<br class="">
+          CI.getTargetOpts(), CI.getLangOpts(), OS,<br class="">
+          cast<PCHGenerator>(Consumers[0].get()))));<br class="">
+  return llvm::make_unique<MultiplexConsumer>(std::move(Consumers));<br class="">
 }<br class="">
<br class="">
 static SmallVectorImpl<char> &<br class="">
<br class="">
Modified: cfe/trunk/lib/Frontend/MultiplexConsumer.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/MultiplexConsumer.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/MultiplexConsumer.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/Frontend/MultiplexConsumer.cpp (original)<br class="">
+++ cfe/trunk/lib/Frontend/MultiplexConsumer.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -33,11 +33,14 @@ public:<br class="">
   void ReaderInitialized(ASTReader *Reader) override;<br class="">
   void IdentifierRead(serialization::IdentID ID,<br class="">
                       IdentifierInfo *II) override;<br class="">
+  void MacroRead(serialization::MacroID ID, MacroInfo *MI) override;<br class="">
   void TypeRead(serialization::TypeIdx Idx, QualType T) override;<br class="">
   void DeclRead(serialization::DeclID ID, const Decl *D) override;<br class="">
   void SelectorRead(serialization::SelectorID iD, Selector Sel) override;<br class="">
   void MacroDefinitionRead(serialization::PreprocessedEntityID,<br class="">
                            MacroDefinition *MD) override;<br class="">
+  void ModuleRead(serialization::SubmoduleID ID, Module *Mod) override;<br class="">
+<br class="">
 private:<br class="">
   std::vector<ASTDeserializationListener*> Listeners;<br class="">
 };<br class="">
@@ -59,6 +62,12 @@ void MultiplexASTDeserializationListener<br class="">
     Listeners[i]->IdentifierRead(ID, II);<br class="">
 }<br class="">
<br class="">
+void MultiplexASTDeserializationListener::MacroRead(<br class="">
+    serialization::MacroID ID, MacroInfo *MI) {<br class="">
+  for (auto &Listener : Listeners)<br class="">
+    Listener->MacroRead(ID, MI);<br class="">
+}<br class="">
+<br class="">
 void MultiplexASTDeserializationListener::TypeRead(<br class="">
     serialization::TypeIdx Idx, QualType T) {<br class="">
   for (size_t i = 0, e = Listeners.size(); i != e; ++i)<br class="">
@@ -83,6 +92,12 @@ void MultiplexASTDeserializationListener<br class="">
     Listeners[i]->MacroDefinitionRead(ID, MD);<br class="">
 }<br class="">
<br class="">
+void MultiplexASTDeserializationListener::ModuleRead(<br class="">
+    serialization::SubmoduleID ID, Module *Mod) {<br class="">
+  for (auto &Listener : Listeners)<br class="">
+    Listener->ModuleRead(ID, Mod);<br class="">
+}<br class="">
+<br class="">
 // This ASTMutationListener forwards its notifications to a set of<br class="">
 // child listeners.<br class="">
 class MultiplexASTMutationListener : public ASTMutationListener {<br class="">
@@ -98,11 +113,13 @@ public:<br class="">
                                const VarTemplateSpecializationDecl *D) override;<br class="">
   void AddedCXXTemplateSpecialization(const FunctionTemplateDecl *TD,<br class="">
                                       const FunctionDecl *D) override;<br class="">
+  void ResolvedExceptionSpec(const FunctionDecl *FD) override;<br class="">
   void DeducedReturnType(const FunctionDecl *FD, QualType ReturnType) override;<br class="">
   void CompletedImplicitDefinition(const FunctionDecl *D) override;<br class="">
   void StaticDataMemberInstantiated(const VarDecl *D) override;<br class="">
   void AddedObjCCategoryToInterface(const ObjCCategoryDecl *CatD,<br class="">
                                     const ObjCInterfaceDecl *IFD) override;<br class="">
+  void FunctionDefinitionInstantiated(const FunctionDecl *D) override;<br class="">
   void AddedObjCPropertyInClassExtension(const ObjCPropertyDecl *Prop,<br class="">
                                     const ObjCPropertyDecl *OrigProp,<br class="">
                                     const ObjCCategoryDecl *ClassExt) override;<br class="">
@@ -149,6 +166,11 @@ void MultiplexASTMutationListener::Added<br class="">
   for (size_t i = 0, e = Listeners.size(); i != e; ++i)<br class="">
     Listeners[i]->AddedCXXTemplateSpecialization(TD, D);<br class="">
 }<br class="">
+void MultiplexASTMutationListener::ResolvedExceptionSpec(<br class="">
+    const FunctionDecl *FD) {<br class="">
+  for (auto &Listener : Listeners)<br class="">
+    Listener->ResolvedExceptionSpec(FD);<br class="">
+}<br class="">
 void MultiplexASTMutationListener::DeducedReturnType(const FunctionDecl *FD,<br class="">
                                                      QualType ReturnType) {<br class="">
   for (size_t i = 0, e = Listeners.size(); i != e; ++i)<br class="">
@@ -170,6 +192,11 @@ void MultiplexASTMutationListener::Added<br class="">
   for (size_t i = 0, e = Listeners.size(); i != e; ++i)<br class="">
     Listeners[i]->AddedObjCCategoryToInterface(CatD, IFD);<br class="">
 }<br class="">
+void MultiplexASTMutationListener::FunctionDefinitionInstantiated(<br class="">
+    const FunctionDecl *D) {<br class="">
+  for (auto &Listener : Listeners)<br class="">
+    Listener->FunctionDefinitionInstantiated(D);<br class="">
+}<br class="">
 void MultiplexASTMutationListener::AddedObjCPropertyInClassExtension(<br class="">
                                              const ObjCPropertyDecl *Prop,<br class="">
                                              const ObjCPropertyDecl *OrigProp,<br class="">
<br class="">
Modified: cfe/trunk/lib/Serialization/ASTReader.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/Serialization/ASTReader.cpp (original)<br class="">
+++ cfe/trunk/lib/Serialization/ASTReader.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -46,6 +46,8 @@<br class="">
 #include "llvm/ADT/Hashing.h"<br class="">
 #include "llvm/ADT/StringExtras.h"<br class="">
 #include "llvm/Bitcode/BitstreamReader.h"<br class="">
+#include "llvm/Object/COFF.h"<br class="">
+#include "llvm/Object/ObjectFile.h"<br class="">
 #include "llvm/Support/ErrorHandling.h"<br class="">
 #include "llvm/Support/FileSystem.h"<br class="">
 #include "llvm/Support/MemoryBuffer.h"<br class="">
@@ -632,6 +634,27 @@ void PCHValidator::ReadCounter(const Mod<br class="">
 // AST reader implementation<br class="">
 //===----------------------------------------------------------------------===//<br class="">
<br class="">
+void ASTReader::InitStreamFileWithModule(llvm::MemoryBufferRef Buffer,<br class="">
+                                         llvm::BitstreamReader &StreamFile) {<br class="">
+  if (auto OF = llvm::object::ObjectFile::createObjectFile(Buffer)) {<br class="">
+    bool IsCOFF = isa<llvm::object::COFFObjectFile>(OF.get().get());<br class="">
+    // Find the clang AST section in the container.<br class="">
+    for (auto &Section : OF->get()->sections()) {<br class="">
+      StringRef Name;<br class="">
+      Section.getName(Name);<br class="">
+      if ((!IsCOFF && Name == "__clangast") ||<br class="">
+          ( IsCOFF && Name ==   "clangast")) {<br class="">
+        StringRef Buf;<br class="">
+        Section.getContents(Buf);<br class="">
+        return StreamFile.init((const unsigned char*)Buf.begin(),<br class="">
+                               (const unsigned char*)Buf.end());<br class="">
+      }<br class="">
+    }<br class="">
+  }<br class="">
+  StreamFile.init((const unsigned char *)Buffer.getBufferStart(),<br class="">
+                  (const unsigned char *)Buffer.getBufferEnd());<br class="">
+}<br class="">
+<br class="">
 void ASTReader::setDeserializationListener(ASTDeserializationListener *Listener,<br class="">
                                            bool TakeOwnership) {<br class="">
   DeserializationListener = Listener;<br class="">
@@ -3883,9 +3906,10 @@ ASTReader::ReadASTCore(StringRef FileNam<br class="">
<br class="">
   ModuleFile &F = *M;<br class="">
   BitstreamCursor &Stream = F.Stream;<br class="">
+  InitStreamFileWithModule(F.Buffer->getMemBufferRef(), F.StreamFile);<br class="">
   Stream.init(&F.StreamFile);<br class="">
-  F.SizeInBits = F.Buffer->getBufferSize() * 8;<br class="">
-<br class="">
+  F.SizeInBits = F.StreamFile.getBitcodeBytes().getExtent() * 8;<br class="">
+<br class="">
   // Sniff for the signature.<br class="">
   if (Stream.Read(8) != 'C' ||<br class="">
       Stream.Read(8) != 'P' ||<br class="">
@@ -4174,8 +4198,7 @@ std::string ASTReader::getOriginalSource<br class="">
<br class="">
   // Initialize the stream<br class="">
   llvm::BitstreamReader StreamFile;<br class="">
-  StreamFile.init((const unsigned char *)(*Buffer)->getBufferStart(),<br class="">
-                  (const unsigned char *)(*Buffer)->getBufferEnd());<br class="">
+  InitStreamFileWithModule((*Buffer)->getMemBufferRef(), StreamFile);<br class="">
   BitstreamCursor Stream(StreamFile);<br class="">
<br class="">
   // Sniff for the signature.<br class="">
@@ -4270,8 +4293,7 @@ bool ASTReader::readASTFileControlBlock(<br class="">
<br class="">
   // Initialize the stream<br class="">
   llvm::BitstreamReader StreamFile;<br class="">
-  StreamFile.init((const unsigned char *)(*Buffer)->getBufferStart(),<br class="">
-                  (const unsigned char *)(*Buffer)->getBufferEnd());<br class="">
+  InitStreamFileWithModule((*Buffer)->getMemBufferRef(), StreamFile);<br class="">
   BitstreamCursor Stream(StreamFile);<br class="">
<br class="">
   // Sniff for the signature.<br class="">
<br class="">
Modified: cfe/trunk/lib/Serialization/CMakeLists.txt<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/CMakeLists.txt?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/CMakeLists.txt?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/Serialization/CMakeLists.txt (original)<br class="">
+++ cfe/trunk/lib/Serialization/CMakeLists.txt Tue Feb 24 19:31:45 2015<br class="">
@@ -1,5 +1,6 @@<br class="">
 set(LLVM_LINK_COMPONENTS<br class="">
   BitReader<br class="">
+  Object<br class="">
   Support<br class="">
   )<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/lib/Serialization/GeneratePCH.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/GeneratePCH.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/GeneratePCH.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/Serialization/GeneratePCH.cpp (original)<br class="">
+++ cfe/trunk/lib/Serialization/GeneratePCH.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -19,7 +19,6 @@<br class="">
 #include "clang/Lex/Preprocessor.h"<br class="">
 #include "clang/Sema/SemaConsumer.h"<br class="">
 #include "llvm/Bitcode/BitstreamWriter.h"<br class="">
-#include "llvm/Support/raw_ostream.h"<br class="">
 #include <string><br class="">
<br class="">
 using namespace clang;<br class="">
@@ -28,10 +27,11 @@ PCHGenerator::PCHGenerator(const Preproc<br class="">
                            StringRef OutputFile,<br class="">
                            clang::Module *Module,<br class="">
                            StringRef isysroot,<br class="">
-                           raw_ostream *OS, bool AllowASTWithErrors)<br class="">
+                           bool AllowASTWithErrors)<br class="">
   : PP(PP), OutputFile(OutputFile), Module(Module),<br class="">
-    isysroot(isysroot.str()), Out(OS),<br class="">
-    SemaPtr(nullptr), Stream(Buffer), Writer(Stream),<br class="">
+    isysroot(isysroot.str()),<br class="">
+    SemaPtr(nullptr), Stream(Buffer),<br class="">
+    Writer(Stream),<br class="">
     AllowASTWithErrors(AllowASTWithErrors),<br class="">
     HasEmittedPCH(false) {<br class="">
 }<br class="">
@@ -52,14 +52,8 @@ void PCHGenerator::HandleTranslationUnit<br class="">
   assert(SemaPtr && "No Sema?");<br class="">
   Writer.WriteAST(*SemaPtr, OutputFile, Module, isysroot, hasErrors);<br class="">
<br class="">
-  // Write the generated bitstream to "Out".<br class="">
-  Out->write((char *)&Buffer.front(), Buffer.size());<br class="">
-<br class="">
-  // Make sure it hits disk now.<br class="">
-  Out->flush();<br class="">
-<br class="">
-  // Free up some memory, in case the process is kept alive.<br class="">
-  Buffer.clear();<br class="">
+  if (SerializationFinishedCallback)<br class="">
+    SerializationFinishedCallback(&Buffer);<br class="">
<br class="">
   HasEmittedPCH = true;<br class="">
 }<br class="">
<br class="">
Modified: cfe/trunk/lib/Serialization/GlobalModuleIndex.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/GlobalModuleIndex.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/GlobalModuleIndex.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/Serialization/GlobalModuleIndex.cpp (original)<br class="">
+++ cfe/trunk/lib/Serialization/GlobalModuleIndex.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -15,6 +15,7 @@<br class="">
 #include "clang/Basic/FileManager.h"<br class="">
 #include "clang/Lex/HeaderSearch.h"<br class="">
 #include "clang/Serialization/ASTBitCodes.h"<br class="">
+#include "clang/Serialization/ASTReader.h"<br class="">
 #include "clang/Serialization/GlobalModuleIndex.h"<br class="">
 #include "clang/Serialization/Module.h"<br class="">
 #include "llvm/ADT/DenseMap.h"<br class="">
@@ -501,8 +502,8 @@ bool GlobalModuleIndexBuilder::loadModul<br class="">
<br class="">
   // Initialize the input stream<br class="">
   llvm::BitstreamReader InStreamFile;<br class="">
-  InStreamFile.init((const unsigned char *)(*Buffer)->getBufferStart(),<br class="">
-                    (const unsigned char *)(*Buffer)->getBufferEnd());<br class="">
+  ASTReader::InitStreamFileWithModule((*Buffer)->getMemBufferRef(),<br class="">
+                                      InStreamFile);<br class="">
   llvm::BitstreamCursor InStream(InStreamFile);<br class="">
<br class="">
   // Sniff for the signature.<br class="">
<br class="">
Modified: cfe/trunk/lib/Serialization/ModuleManager.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ModuleManager.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ModuleManager.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/Serialization/ModuleManager.cpp (original)<br class="">
+++ cfe/trunk/lib/Serialization/ModuleManager.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -13,6 +13,7 @@<br class="">
 //===----------------------------------------------------------------------===//<br class="">
 #include "clang/Lex/HeaderSearch.h"<br class="">
 #include "clang/Lex/ModuleMap.h"<br class="">
+#include "clang/Serialization/ASTReader.h"<br class="">
 #include "clang/Serialization/GlobalModuleIndex.h"<br class="">
 #include "clang/Serialization/ModuleManager.h"<br class="">
 #include "llvm/Support/MemoryBuffer.h"<br class="">
@@ -135,10 +136,10 @@ ModuleManager::addModule(StringRef FileN<br class="">
<br class="">
       New->Buffer = std::move(*Buf);<br class="">
     }<br class="">
-<br class="">
-    // Initialize the stream<br class="">
-    New->StreamFile.init((const unsigned char *)New->Buffer->getBufferStart(),<br class="">
-                         (const unsigned char *)New->Buffer->getBufferEnd());<br class="">
+<br class="">
+    // Initialize the stream.<br class="">
+    ASTReader::InitStreamFileWithModule(New->Buffer->getMemBufferRef(),<br class="">
+                                        New->StreamFile);<br class="">
   }<br class="">
<br class="">
   if (ExpectedSignature) {<br class="">
<br class="">
Modified: cfe/trunk/test/ARCMT/check-with-pch.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/check-with-pch.m?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/check-with-pch.m?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/ARCMT/check-with-pch.m (original)<br class="">
+++ cfe/trunk/test/ARCMT/check-with-pch.m Tue Feb 24 19:31:45 2015<br class="">
@@ -1,5 +1,6 @@<br class="">
 // RUN: %clang_cc1 -x objective-c -triple x86_64-apple-darwin10 %S/Common.h -emit-pch -o %t.pch<br class="">
 // RUN: %clang_cc1 -include-pch %t.pch -arcmt-check -verify -triple x86_64-apple-darwin10 -fblocks -Werror %s<br class="">
+// REQUIRES: x86-registered-target<br class="">
<br class="">
 // <a href="rdar://9601437" class="">rdar://9601437</a><br class="">
 @interface I9601437 {<br class="">
<br class="">
Modified: cfe/trunk/test/ARCMT/migrate-on-pch-and-module.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/migrate-on-pch-and-module.m?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/migrate-on-pch-and-module.m?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/ARCMT/migrate-on-pch-and-module.m (original)<br class="">
+++ cfe/trunk/test/ARCMT/migrate-on-pch-and-module.m Tue Feb 24 19:31:45 2015<br class="">
@@ -1,6 +1,7 @@<br class="">
 // RUN: rm -rf %t-mcp<br class="">
 // RUN: %clang_cc1 -objcmt-migrate-subscripting -emit-pch -o %t.pch %s -isysroot %S/Inputs/System -triple x86_64-apple-darwin10 -F %S/Inputs -fmodules -fmodules-cache-path=%t-mcp -w<br class="">
 // RUN: %clang_cc1 -objcmt-migrate-subscripting -include-pch %t.pch %s -migrate -o %t.remap -isysroot %S/Inputs/System -triple x86_64-apple-darwin10 -F %S/Inputs -fmodules -fmodules-cache-path=%t-mcp<br class="">
+// REQUIRES: x86-registered-target<br class="">
<br class="">
 #ifndef HEADER<br class="">
 #define HEADER<br class="">
<br class="">
Modified: cfe/trunk/test/ARCMT/objcmt-with-pch.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/objcmt-with-pch.m?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/objcmt-with-pch.m?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/ARCMT/objcmt-with-pch.m (original)<br class="">
+++ cfe/trunk/test/ARCMT/objcmt-with-pch.m Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // RUN: rm -rf %t<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -x objective-c %S/Common.h -emit-pch -o %t.pch<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -objcmt-migrate-literals -objcmt-migrate-subscripting -mt-migrate-directory %t %s -x objective-c -include-pch %t.pch<br class="">
<br class="">
Modified: cfe/trunk/test/ARCMT/objcmt-with-pch.m.result<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/objcmt-with-pch.m.result?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/objcmt-with-pch.m.result?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/ARCMT/objcmt-with-pch.m.result (original)<br class="">
+++ cfe/trunk/test/ARCMT/objcmt-with-pch.m.result Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // RUN: rm -rf %t<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -x objective-c %S/Common.h -emit-pch -o %t.pch<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -objcmt-migrate-literals -objcmt-migrate-subscripting -mt-migrate-directory %t %s -x objective-c -include-pch %t.pch<br class="">
<br class="">
Modified: cfe/trunk/test/CMakeLists.txt<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CMakeLists.txt?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CMakeLists.txt?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/CMakeLists.txt (original)<br class="">
+++ cfe/trunk/test/CMakeLists.txt Tue Feb 24 19:31:45 2015<br class="">
@@ -58,7 +58,7 @@ set(CLANG_TEST_PARAMS<br class="">
 if( NOT CLANG_BUILT_STANDALONE )<br class="">
   list(APPEND CLANG_TEST_DEPS<br class="">
     llvm-config<br class="">
-    llc opt FileCheck count not llvm-symbolizer llvm-profdata<br class="">
+    llc opt FileCheck count not llvm-symbolizer llvm-profdata llvm-objdump<br class="">
     )<br class="">
 endif()<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/CXX/expr/expr.unary/expr.unary.noexcept/cg.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/expr/expr.unary/expr.unary.noexcept/cg.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/expr/expr.unary/expr.unary.noexcept/cg.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/CXX/expr/expr.unary/expr.unary.noexcept/cg.cpp (original)<br class="">
+++ cfe/trunk/test/CXX/expr/expr.unary/expr.unary.noexcept/cg.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // RUN: %clang_cc1 -fcxx-exceptions -fexceptions -triple x86_64-apple-darwin10 -S -emit-llvm -std=c++11 -include %S/ser.h %s -o - | FileCheck %s<br class="">
 // RUN: %clang_cc1 -fcxx-exceptions -fexceptions -triple x86_64-apple-darwin10 -emit-pch -o %t-ser.pch -std=c++11 -x c++ %S/ser.h<br class="">
 // RUN: %clang_cc1 -fcxx-exceptions -fexceptions -triple x86_64-apple-darwin10 -S -emit-llvm -std=c++11 -include-pch %t-ser.pch %s -o - | FileCheck %s<br class="">
<br class="">
Modified: cfe/trunk/test/CodeGen/atomic-ops.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/atomic-ops.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/atomic-ops.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/CodeGen/atomic-ops.c (original)<br class="">
+++ cfe/trunk/test/CodeGen/atomic-ops.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,4 +1,5 @@<br class="">
 // RUN: %clang_cc1 %s -emit-llvm -o - -ffreestanding -triple=i686-apple-darwin9 | FileCheck %s<br class="">
+// REQUIRES: x86-registered-target<br class="">
<br class="">
 // Also test serialization of atomic operations here, to avoid duplicating the<br class="">
 // test.<br class="">
<br class="">
Modified: cfe/trunk/test/CodeGen/big-atomic-ops.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/big-atomic-ops.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/big-atomic-ops.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/CodeGen/big-atomic-ops.c (original)<br class="">
+++ cfe/trunk/test/CodeGen/big-atomic-ops.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,5 +1,5 @@<br class="">
 // RUN: %clang_cc1 %s -emit-llvm -o - -triple=x86_64-apple-macosx10.9.0 | FileCheck %s<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // Also test serialization of atomic operations here, to avoid duplicating the<br class="">
 // test.<br class="">
 // RUN: %clang_cc1 %s -emit-pch -o %t -triple=x86_64-apple-macosx10.9.0<br class="">
<br class="">
Modified: cfe/trunk/test/Frontend/ast-codegen.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/ast-codegen.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/ast-codegen.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Frontend/ast-codegen.c (original)<br class="">
+++ cfe/trunk/test/Frontend/ast-codegen.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // RUN: %clang -target i386-unknown-unknown -emit-ast -o %t.ast %s<br class="">
 // RUN: %clang -target i386-unknown-unknown -emit-llvm -S -o - %t.ast | FileCheck %s<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/Index/TestClassForwardDecl.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/TestClassForwardDecl.m?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/TestClassForwardDecl.m?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Index/TestClassForwardDecl.m (original)<br class="">
+++ cfe/trunk/test/Index/TestClassForwardDecl.m Tue Feb 24 19:31:45 2015<br class="">
@@ -1,7 +1,7 @@<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fblocks -emit-pch -x objective-c %s -o %t.ast<br class="">
 // RUN: c-index-test -test-file-scan %t.ast %s | FileCheck -check-prefix=CHECK-scan %s<br class="">
 // RUN: c-index-test -test-load-tu %t.ast local | FileCheck -check-prefix=CHECK-load %s<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // This test checks how the @class resolves as a cursor when the @interface is implicitly defined.<br class="">
 // See TestClassDecl.m for the corresponding test case. (<<a href="rdar://problem/7383421" class="">rdar://problem/7383421</a>>)<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/Index/c-index-api-loadTU-test.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/c-index-api-loadTU-test.m?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/c-index-api-loadTU-test.m?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Index/c-index-api-loadTU-test.m (original)<br class="">
+++ cfe/trunk/test/Index/c-index-api-loadTU-test.m Tue Feb 24 19:31:45 2015<br class="">
@@ -1,6 +1,6 @@<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fblocks -emit-pch -x objective-c %s -o %t.ast<br class="">
 // RUN: c-index-test -test-load-tu %t.ast all > %t 2>&1 && FileCheck --input-file=%t %s<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 @interface Foo<br class="">
 {<br class="">
   __attribute__((iboutlet)) id myoutlet;<br class="">
<br class="">
Modified: cfe/trunk/test/Index/c-index-getCursor-test.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/c-index-getCursor-test.m?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/c-index-getCursor-test.m?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Index/c-index-getCursor-test.m (original)<br class="">
+++ cfe/trunk/test/Index/c-index-getCursor-test.m Tue Feb 24 19:31:45 2015<br class="">
@@ -166,3 +166,4 @@ void f() {<br class="">
 // CHECK: [57:1 - 57:10] FunctionDecl=f:57:6 (Definition)<br class="">
 // CHECK: [58:4 - 58:8] VarDecl=my_var:58:8 (Definition)<br class="">
 // CHECK: [58:8 - 58:15] macro expansion=CONCAT:55:9<br class="">
+// REQUIRES: x86-registered-target<br class="">
<br class="">
Modified: cfe/trunk/test/Index/pch-with-module.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/pch-with-module.m?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/pch-with-module.m?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Index/pch-with-module.m (original)<br class="">
+++ cfe/trunk/test/Index/pch-with-module.m Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // RUN: rm -rf %t.cache<br class="">
 // RUN: c-index-test -write-pch %t.h.pch %s -target x86_64-apple-macosx10.7 -fobjc-arc -fmodules-cache-path=%t.cache -fmodules -F %S/../Modules/Inputs -Xclang -fdisable-module-hash<br class="">
 // RUN: %clang -fsyntax-only %s -target x86_64-apple-macosx10.7 -include %t.h -fobjc-arc -fmodules-cache-path=%t.cache -fmodules -F %S/../Modules/Inputs \<br class="">
<br class="">
Modified: cfe/trunk/test/Index/print-mangled-name.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/print-mangled-name.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/print-mangled-name.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Index/print-mangled-name.cpp (original)<br class="">
+++ cfe/trunk/test/Index/print-mangled-name.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // RUN: %clang_cc1 -triple i686-pc-linux-gnu -emit-pch %s -o %t_linux.ast<br class="">
 // RUN: c-index-test -test-print-mangle %t_linux.ast | FileCheck %s --check-prefix=ITANIUM<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/Modules/dependency-gen-inferred-map.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/dependency-gen-inferred-map.m?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/dependency-gen-inferred-map.m?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Modules/dependency-gen-inferred-map.m (original)<br class="">
+++ cfe/trunk/test/Modules/dependency-gen-inferred-map.m Tue Feb 24 19:31:45 2015<br class="">
@@ -1,5 +1,6 @@<br class="">
 // Test that the virtual file "__inferred_module.map" doesn't show up as dependency.<br class="">
<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // RUN: rm -rf %t-mcp<br class="">
 // RUN: %clang_cc1 -isysroot %S/Inputs/System -triple x86_64-apple-darwin10 -dependency-file %t.d -MT %s.o -F %S/Inputs -fsyntax-only -fmodules -fmodules-cache-path=%t-mcp %s<br class="">
 // RUN: FileCheck %s < %t.d<br class="">
<br class="">
Modified: cfe/trunk/test/Modules/dependency-gen-pch.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/dependency-gen-pch.m?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/dependency-gen-pch.m?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Modules/dependency-gen-pch.m (original)<br class="">
+++ cfe/trunk/test/Modules/dependency-gen-pch.m Tue Feb 24 19:31:45 2015<br class="">
@@ -1,5 +1,6 @@<br class="">
 // RUN: rm -rf %t-mcp<br class="">
 // RUN: mkdir -p %t-mcp<br class="">
+// REQUIRES: x86-registered-target<br class="">
<br class="">
 // RUN: %clang_cc1 -isysroot %S/Inputs/System -triple x86_64-apple-darwin10 -module-file-deps -dependency-file %t.d -MT %s.o -I %S/Inputs -fmodules -fdisable-module-hash -fmodules-cache-path=%t-mcp -emit-pch -o %t.pch %s<br class="">
 // RUN: FileCheck %s < %t.d<br class="">
<br class="">
Modified: cfe/trunk/test/Modules/irgen.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/irgen.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/irgen.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Modules/irgen.c (original)<br class="">
+++ cfe/trunk/test/Modules/irgen.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // RUN: rm -rf %t<br class="">
 // RUN: %clang_cc1 -fmodules -x objective-c -fmodules-cache-path=%t -emit-module -fmodule-name=irgen -triple x86_64-apple-darwin10 %S/Inputs/module.map<br class="">
 // RUN: %clang_cc1 -fmodules -x objective-c -fmodules-cache-path=%t -I %S/Inputs -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s<br class="">
<br class="">
Added: cfe/trunk/test/Modules/module_container.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/module_container.m?rev=230423&view=auto" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/module_container.m?rev=230423&view=auto</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Modules/module_container.m (added)<br class="">
+++ cfe/trunk/test/Modules/module_container.m Tue Feb 24 19:31:45 2015<br class="">
@@ -0,0 +1,14 @@<br class="">
+@import DependsOnModule;<br class="">
+// REQUIRES: x86-registered-target<br class="">
+// RUN: rm -rf %t-MachO %t-ELF %t-COFF<br class="">
+// RUN: %clang_cc1 -triple=x86_64-apple-darwin -fmodules -fdisable-module-hash -fmodules-cache-path=%t-MachO -F %S/Inputs %s<br class="">
+// RUN: %clang_cc1 -triple=x86_64-linux-elf -fmodules -fdisable-module-hash -fmodules-cache-path=%t-ELF -F %S/Inputs %s<br class="">
+// RUN: %clang_cc1 -triple=x86_64-windows-coff -fmodules -fdisable-module-hash -fmodules-cache-path=%t-COFF -F %S/Inputs %s<br class="">
+<br class="">
+// RUN: llvm-objdump -section-headers %t-MachO/DependsOnModule.pcm %t-ELF/DependsOnModule.pcm %t-COFF/DependsOnModule.pcm | FileCheck %s<br class="">
+// CHECK: file format Mach-O 64-bit x86-64<br class="">
+// CHECK: __clangast   {{[0-9a-f]+}} {{[0-9a-f]+}} DATA<br class="">
+// CHECK: file format ELF64-x86-64<br class="">
+// CHECK: __clangast   {{[0-9a-f]+}} {{[0-9a-f]+}} DATA<br class="">
+// CHECK: file format COFF-x86-64<br class="">
+// CHECK: clangast   {{[0-9a-f]+}} {{[0-9a-f]+}}<br class="">
<br class="">
Modified: cfe/trunk/test/Modules/self-import-header.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/self-import-header.m?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/self-import-header.m?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Modules/self-import-header.m (original)<br class="">
+++ cfe/trunk/test/Modules/self-import-header.m Tue Feb 24 19:31:45 2015<br class="">
@@ -1,5 +1,5 @@<br class="">
 // <a href="rdar://13840148" class="">rdar://13840148</a><br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // RUN: rm -rf %t<br class="">
 // RUN: %clang -fsyntax-only -isysroot %S/Inputs/System/usr/include -fmodules -fmodules-cache-path=%t \<br class="">
 // RUN:    -target x86_64-darwin \<br class="">
<br class="">
Modified: cfe/trunk/test/Modules/<a href="http://templates-2.mm/" target="_blank" class="">templates-2.mm</a><br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/templates-2.mm?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/templates-2.mm?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Modules/<a href="http://templates-2.mm/" target="_blank" class="">templates-2.mm</a> (original)<br class="">
+++ cfe/trunk/test/Modules/<a href="http://templates-2.mm/" target="_blank" class="">templates-2.mm</a> Tue Feb 24 19:31:45 2015<br class="">
@@ -2,7 +2,7 @@<br class="">
 // RUN: %clang_cc1 -triple x86_64-linux-gnu -std=c++11 -x objective-c++ -fmodules -fmodules-cache-path=%t -I %S/Inputs -verify %s -Wno-objc-root-class<br class="">
 // RUN: %clang_cc1 -triple x86_64-linux-gnu -std=c++11 -x objective-c++ -fmodules -fmodules-cache-path=%t -I %S/Inputs -emit-llvm %s -o - -Wno-objc-root-class | FileCheck %s<br class="">
 // expected-no-diagnostics<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 @import templates_top;<br class="">
<br class="">
 struct TestEmitDefaultedSpecialMembers {<br class="">
<br class="">
Modified: cfe/trunk/test/Modules/<a href="http://templates.mm/" target="_blank" class="">templates.mm</a><br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/templates.mm?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/templates.mm?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Modules/<a href="http://templates.mm/" target="_blank" class="">templates.mm</a> (original)<br class="">
+++ cfe/trunk/test/Modules/<a href="http://templates.mm/" target="_blank" class="">templates.mm</a> Tue Feb 24 19:31:45 2015<br class="">
@@ -2,7 +2,7 @@<br class="">
 // RUN: %clang_cc1 -triple x86_64-linux-gnu -std=c++11 -x objective-c++ -fmodules -fmodules-cache-path=%t -I %S/Inputs -verify %s -Wno-objc-root-class<br class="">
 // RUN: %clang_cc1 -triple x86_64-linux-gnu -std=c++11 -x objective-c++ -fmodules -fmodules-cache-path=%t -I %S/Inputs -emit-llvm %s -o - -Wno-objc-root-class | FileCheck %s<br class="">
 // expected-no-diagnostics<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 @import templates_left;<br class="">
<br class="">
 void testInlineRedeclEarly() {<br class="">
<br class="">
Modified: cfe/trunk/test/Modules/va_list.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/va_list.m?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/va_list.m?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/Modules/va_list.m (original)<br class="">
+++ cfe/trunk/test/Modules/va_list.m Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // RUN: rm -rf %t<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-macosx10 -fmodules -fmodules-cache-path=%t \<br class="">
 // RUN:     -fmodules-ignore-macro=PREFIX -DPREFIX -I %S/Inputs/va_list \<br class="">
<br class="">
Modified: cfe/trunk/test/OpenMP/atomic_read_codegen.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/atomic_read_codegen.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/atomic_read_codegen.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/OpenMP/atomic_read_codegen.c (original)<br class="">
+++ cfe/trunk/test/OpenMP/atomic_read_codegen.c Tue Feb 24 19:31:45 2015<br class="">
@@ -2,7 +2,7 @@<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c -triple x86_64-apple-darwin10 -emit-pch -o %t %s<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c -triple x86_64-apple-darwin10 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s<br class="">
 // expected-no-diagnostics<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 #ifndef HEADER<br class="">
 #define HEADER<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/OpenMP/barrier_codegen.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/barrier_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/barrier_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/OpenMP/barrier_codegen.cpp (original)<br class="">
+++ cfe/trunk/test/OpenMP/barrier_codegen.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -2,7 +2,7 @@<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -std=c++11 -triple x86_64-unknown-unknown -emit-pch -o %t %s<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -triple x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s<br class="">
 // expected-no-diagnostics<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 #ifndef HEADER<br class="">
 #define HEADER<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/OpenMP/critical_codegen.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/critical_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/critical_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/OpenMP/critical_codegen.cpp (original)<br class="">
+++ cfe/trunk/test/OpenMP/critical_codegen.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -2,7 +2,7 @@<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s<br class="">
 // expected-no-diagnostics<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 #ifndef HEADER<br class="">
 #define HEADER<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/OpenMP/flush_codegen.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/flush_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/flush_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/OpenMP/flush_codegen.cpp (original)<br class="">
+++ cfe/trunk/test/OpenMP/flush_codegen.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -2,7 +2,7 @@<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -g -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s<br class="">
 // expected-no-diagnostics<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 #ifndef HEADER<br class="">
 #define HEADER<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/OpenMP/for_codegen.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/for_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/for_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/OpenMP/for_codegen.cpp (original)<br class="">
+++ cfe/trunk/test/OpenMP/for_codegen.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -3,9 +3,9 @@<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -g -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s<br class="">
 //<br class="">
 // expected-no-diagnostics<br class="">
+// REQUIRES: x86-registered-target<br class="">
 #ifndef HEADER<br class="">
 #define HEADER<br class="">
-<br class="">
 // CHECK: [[IDENT_T_TY:%.+]] = type { i32, i32, i32, i32, i8* }<br class="">
 // CHECK-LABEL: define {{.*void}} @{{.*}}without_schedule_clause{{.*}}(float* {{.+}}, float* {{.+}}, float* {{.+}}, float* {{.+}})<br class="">
 void without_schedule_clause(float *a, float *b, float *c, float *d) {<br class="">
<br class="">
Modified: cfe/trunk/test/OpenMP/master_codegen.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/master_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/master_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/OpenMP/master_codegen.cpp (original)<br class="">
+++ cfe/trunk/test/OpenMP/master_codegen.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -2,7 +2,7 @@<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s<br class="">
 // expected-no-diagnostics<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 #ifndef HEADER<br class="">
 #define HEADER<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/OpenMP/parallel_codegen.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/parallel_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/parallel_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/OpenMP/parallel_codegen.cpp (original)<br class="">
+++ cfe/trunk/test/OpenMP/parallel_codegen.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -2,9 +2,9 @@<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -g -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck --check-prefix=CHECK-DEBUG %s<br class="">
 // expected-no-diagnostics<br class="">
+// REQUIRES: x86-registered-target<br class="">
 #ifndef HEADER<br class="">
 #define HEADER<br class="">
-<br class="">
 // CHECK-DAG: %ident_t = type { i32, i32, i32, i32, i8* }<br class="">
 // CHECK-DAG: %struct.anon = type { i32* }<br class="">
 // CHECK-DAG: %struct.anon.0 = type { i8*** }<br class="">
<br class="">
Modified: cfe/trunk/test/OpenMP/parallel_private_codegen.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/parallel_private_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/parallel_private_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/OpenMP/parallel_private_codegen.cpp (original)<br class="">
+++ cfe/trunk/test/OpenMP/parallel_private_codegen.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -4,9 +4,9 @@<br class="">
 // RUN: %clang_cc1 -verify -fopenmp=libiomp5 -x c++ -std=c++11 -DLAMBDA -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck -check-prefix=LAMBDA %s<br class="">
 // RUN: %clang_cc1 -verify -fopenmp=libiomp5 -x c++ -fblocks -DBLOCKS -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck -check-prefix=BLOCKS %s<br class="">
 // expected-no-diagnostics<br class="">
+// REQUIRES: x86-registered-target<br class="">
 #ifndef HEADER<br class="">
 #define HEADER<br class="">
-<br class="">
 template <class T><br class="">
 struct S {<br class="">
   T f;<br class="">
<br class="">
Modified: cfe/trunk/test/OpenMP/simd_codegen.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/simd_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/simd_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/OpenMP/simd_codegen.cpp (original)<br class="">
+++ cfe/trunk/test/OpenMP/simd_codegen.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -1,7 +1,7 @@<br class="">
 // RUN: %clang_cc1 -verify -fopenmp=libiomp5 -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -g -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s<br class="">
-//<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // expected-no-diagnostics<br class="">
 #ifndef HEADER<br class="">
 #define HEADER<br class="">
<br class="">
Modified: cfe/trunk/test/OpenMP/single_codegen.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/single_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/single_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/OpenMP/single_codegen.cpp (original)<br class="">
+++ cfe/trunk/test/OpenMP/single_codegen.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -2,7 +2,7 @@<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s<br class="">
 // expected-no-diagnostics<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 #ifndef HEADER<br class="">
 #define HEADER<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/OpenMP/taskyield_codegen.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/taskyield_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/taskyield_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/OpenMP/taskyield_codegen.cpp (original)<br class="">
+++ cfe/trunk/test/OpenMP/taskyield_codegen.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -2,7 +2,7 @@<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -std=c++11 -triple x86_64-unknown-unknown -emit-pch -o %t %s<br class="">
 // RUN: %clang_cc1 -fopenmp=libiomp5 -x c++ -triple x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s<br class="">
 // expected-no-diagnostics<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 #ifndef HEADER<br class="">
 #define HEADER<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/OpenMP/threadprivate_codegen.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/threadprivate_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/threadprivate_codegen.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/OpenMP/threadprivate_codegen.cpp (original)<br class="">
+++ cfe/trunk/test/OpenMP/threadprivate_codegen.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -18,7 +18,7 @@<br class="">
 // CHECK-DEBUG-DAG: [[S4:%.+]] = type { [[INT]], [[INT]] }<br class="">
 // CHECK-DEBUG-DAG: [[S5:%.+]] = type { [[INT]], [[INT]], [[INT]] }<br class="">
 // CHECK-DEBUG-DAG: [[SMAIN:%.+]] = type { [[INT]], double, double }<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 struct S1 {<br class="">
   int a;<br class="">
   S1()<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/__va_list_tag.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/__va_list_tag.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/__va_list_tag.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/__va_list_tag.c (original)<br class="">
+++ cfe/trunk/test/PCH/__va_list_tag.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // PR13189<br class="">
 // <a href="rdar://problem/11741429" class="">rdar://problem/11741429</a><br class="">
 // Test this without pch.<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/arc.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/arc.m?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/arc.m?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/arc.m (original)<br class="">
+++ cfe/trunk/test/PCH/arc.m Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // Test this without pch.<br class="">
 // RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin11 -fobjc-arc -include %S/Inputs/arc.h -fsyntax-only -emit-llvm-only %s<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/asm.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/asm.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/asm.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/asm.c (original)<br class="">
+++ cfe/trunk/test/PCH/asm.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // Test this without pch.<br class="">
 // RUN: %clang_cc1 -triple i386-unknown-unknown -include %S/asm.h -fsyntax-only -verify %s<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/chain-external-defs.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/chain-external-defs.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/chain-external-defs.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/chain-external-defs.c (original)<br class="">
+++ cfe/trunk/test/PCH/chain-external-defs.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // Test with pch.<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -emit-pch -o %t1.pch %S/Inputs/chain-external-defs1.h<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -emit-pch -o %t2.pch %S/Inputs/chain-external-defs2.h -include-pch %t1.pch<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/chain-trivial.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/chain-trivial.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/chain-trivial.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/chain-trivial.c (original)<br class="">
+++ cfe/trunk/test/PCH/chain-trivial.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,2 +1,3 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-pch -o %t1 %S/Inputs/chain-trivial1.h<br class="">
 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-pch -o %t2 -include-pch %t1 %S/Inputs/chain-trivial2.h<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/cxx-ms-function-specialization-class-scope.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/cxx-ms-function-specialization-class-scope.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/cxx-ms-function-specialization-class-scope.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/cxx-ms-function-specialization-class-scope.cpp (original)<br class="">
+++ cfe/trunk/test/PCH/cxx-ms-function-specialization-class-scope.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // RUN: %clang_cc1 -fms-extensions -triple i386-unknown-unknown  -x c++-header -emit-pch -o %t %S/cxx-ms-function-specialization-class-scope.h<br class="">
 // RUN: %clang_cc1 -fms-extensions -triple i386-unknown-unknown -include-pch %t -fsyntax-only -verify %s<br class="">
 // expected-no-diagnostics<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/external-defs.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/external-defs.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/external-defs.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/external-defs.c (original)<br class="">
+++ cfe/trunk/test/PCH/external-defs.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // Test with pch.<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -emit-pch -o %t.pch %S/external-defs.h<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -include-pch %t.pch -emit-llvm -o %t %s<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/floating-literal.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/floating-literal.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/floating-literal.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/floating-literal.c (original)<br class="">
+++ cfe/trunk/test/PCH/floating-literal.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,4 +1,5 @@<br class="">
 // RUN: %clang_cc1 -triple mips64-none-linux-gnu -emit-pch -o %t %s<br class="">
+// REQUIRES: mips-registered-target<br class="">
 // RUN: %clang_cc1 -x ast -ast-print %t | FileCheck %s<br class="">
<br class="">
 // Make sure the semantics of FloatingLiterals are stored correctly in<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/local_static.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/local_static.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/local_static.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/local_static.cpp (original)<br class="">
+++ cfe/trunk/test/PCH/local_static.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -1,3 +1,4 @@<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // Test this without PCH.<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-macosx10.9.0 -include %S/local_static.h -fsyntax-only %s -emit-llvm -o %<a href="http://t.no" class="">t.no</a>_pch.ll %s<br class="">
 // RUN: FileCheck --input-file %<a href="http://t.no" class="">t.no</a>_pch.ll %s<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/pchpch.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/pchpch.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/pchpch.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/pchpch.c (original)<br class="">
+++ cfe/trunk/test/PCH/pchpch.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,6 +1,7 @@<br class="">
 // RUN: %clang_cc1 -triple i386-unknown-unknown -emit-pch -o %t1 %S/pchpch1.h<br class="">
 // RUN: %clang_cc1 -triple i386-unknown-unknown -emit-pch -o %t2 %S/pchpch2.h -include-pch %t1<br class="">
 // RUN: %clang_cc1 -triple i386-unknown-unknown -fsyntax-only %s -include-pch %t2<br class="">
+// REQUIRES: x86-registered-target<br class="">
<br class="">
 // The purpose of this test is to make sure that a PCH created while including<br class="">
 // an existing PCH can be loaded.<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/reloc.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/reloc.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/reloc.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/reloc.c (original)<br class="">
+++ cfe/trunk/test/PCH/reloc.c Tue Feb 24 19:31:45 2015<br class="">
@@ -3,6 +3,7 @@<br class="">
 // RUN: %clang -target x86_64-apple-darwin10 -fsyntax-only \<br class="">
 // RUN:   -include-pch %t -isysroot %S/libroot %s -Xclang -verify<br class="">
 // RUN: not %clang -target x86_64-apple-darwin10 -include-pch %t %s<br class="">
+// REQUIRES: x86-registered-target<br class="">
<br class="">
 #include <reloc.h><br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/subscripting-literals.m<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/subscripting-literals.m?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/subscripting-literals.m?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/subscripting-literals.m (original)<br class="">
+++ cfe/trunk/test/PCH/subscripting-literals.m Tue Feb 24 19:31:45 2015<br class="">
@@ -1,6 +1,7 @@<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -o %t.nopch.ll %s<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-pch -o %t.pch %s<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -o %t.pch.ll %s -include-pch %t.pch<br class="">
+// REQUIRES: x86-registered-target<br class="">
 // RUN: diff %t.nopch.ll %t.pch.ll<br class="">
<br class="">
 #ifndef HEADER<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/target-options.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/target-options.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/target-options.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/target-options.c (original)<br class="">
+++ cfe/trunk/test/PCH/target-options.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,5 +1,6 @@<br class="">
 // RUN: %clang_cc1 -triple=x86_64-apple-darwin9 -emit-pch -o %t.pch %S/target-options.h<br class="">
 // RUN: not %clang_cc1 -triple=x86_64-unknown-freebsd7.0 -include-pch %t.pch %s -emit-llvm -o - > %t.err 2>&1<br class="">
 // RUN: FileCheck %s < %t.err<br class="">
+// REQUIRES: x86-registered-target<br class="">
<br class="">
 // CHECK: for the target<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/tentative-defs.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/tentative-defs.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/tentative-defs.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/tentative-defs.c (original)<br class="">
+++ cfe/trunk/test/PCH/tentative-defs.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,6 +1,7 @@<br class="">
 // Test with pch.<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -emit-pch -o %t.pch %S/tentative-defs.h<br class="">
 // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -include-pch %t.pch -verify -emit-llvm -o %t %s<br class="">
+// REQUIRES: x86-registered-target<br class="">
<br class="">
 // RUN: grep "@variable = common global i32 0" %t | count 1<br class="">
 // RUN: grep "@incomplete_array = common global .*1 x i32" %t | count 1<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/thread-local.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/thread-local.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/thread-local.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/thread-local.cpp (original)<br class="">
+++ cfe/trunk/test/PCH/thread-local.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -1,6 +1,6 @@<br class="">
 // RUN: %clang_cc1 -pedantic-errors -std=c++11 -triple x86_64-linux-gnu -emit-pch %s -o %t<br class="">
 // RUN: %clang_cc1 -pedantic-errors -std=c++11 -triple x86_64-linux-gnu -include-pch %t -verify %s<br class="">
-<br class="">
+// REQUIRES: x86-registered-target<br class="">
 #ifndef HEADER_INCLUDED<br class="">
<br class="">
 #define HEADER_INCLUDED<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/va_arg.c<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/va_arg.c?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/va_arg.c?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/va_arg.c (original)<br class="">
+++ cfe/trunk/test/PCH/va_arg.c Tue Feb 24 19:31:45 2015<br class="">
@@ -1,5 +1,6 @@<br class="">
 // Test this without pch.<br class="">
 // RUN: %clang_cc1 -triple=x86_64-unknown-freebsd7.0 -include %S/va_arg.h %s -emit-llvm -o -<br class="">
+// REQUIRES: x86-registered-target<br class="">
<br class="">
 // Test with pch.<br class="">
 // RUN: %clang_cc1 -triple=x86_64-unknown-freebsd7.0 -emit-pch -o %t %S/va_arg.h<br class="">
<br class="">
Modified: cfe/trunk/test/PCH/va_arg.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/va_arg.cpp?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/va_arg.cpp?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/PCH/va_arg.cpp (original)<br class="">
+++ cfe/trunk/test/PCH/va_arg.cpp Tue Feb 24 19:31:45 2015<br class="">
@@ -1,5 +1,6 @@<br class="">
 // Test this without pch.<br class="">
 // RUN: %clang_cc1 -triple=x86_64-unknown-freebsd7.0 -include %S/Inputs/va_arg.h %s -emit-llvm -o -<br class="">
+// REQUIRES: x86-registered-target<br class="">
<br class="">
 // Test with pch.<br class="">
 // RUN: %clang_cc1 -triple=x86_64-unknown-freebsd7.0 -emit-pch -x c++-header -o %t %S/Inputs/va_arg.h<br class="">
<br class="">
Modified: cfe/trunk/tools/arcmt-test/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/arcmt-test/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/arcmt-test/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/tools/arcmt-test/Makefile (original)<br class="">
+++ cfe/trunk/tools/arcmt-test/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -17,9 +17,11 @@ TOOL_NO_EXPORTS = 1<br class="">
 NO_INSTALL = 1<br class="">
<br class="">
 include $(CLANG_LEVEL)/../../Makefile.config<br class="">
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option<br class="">
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter \<br class="">
+                   instrumentation ipo mc objcarcopts option support<br class="">
 USEDLIBS = clangARCMigrate.a clangRewrite.a \<br class="">
-                clangFrontend.a clangDriver.a clangSerialization.a clangParse.a \<br class="">
+                clangFrontend.a clangCodeGen.a \<br class="">
+                 clangDriver.a clangSerialization.a clangParse.a \<br class="">
                 clangSema.a clangEdit.a clangAnalysis.a clangAST.a clangLex.a \<br class="">
                 clangBasic.a<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/tools/c-arcmt-test/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/c-arcmt-test/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/c-arcmt-test/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/tools/c-arcmt-test/Makefile (original)<br class="">
+++ cfe/trunk/tools/c-arcmt-test/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -21,7 +21,8 @@ NO_INSTALL = 1<br class="">
 # LINK_COMPONENTS before including Makefile.rules<br class="">
 include $(CLANG_LEVEL)/../../Makefile.config<br class="">
<br class="">
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option<br class="">
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter \<br class="">
+                   instrumentation ipo support mc objcarcopts option<br class="">
<br class="">
 # Note that 'USEDLIBS' must include all of the core clang libraries<br class="">
 # when -static is given to linker on cygming.<br class="">
@@ -33,7 +34,7 @@ USEDLIBS = clang.a \<br class="">
           clangToolingCore.a \<br class="">
           clangRewriteFrontend.a \<br class="">
           clangRewrite.a \<br class="">
-          clangFrontend.a clangDriver.a \<br class="">
+          clangFrontend.a clangCodeGen.a clangDriver.a \<br class="">
           clangStaticAnalyzerCheckers.a clangStaticAnalyzerCore.a \<br class="">
           clangSerialization.a clangParse.a clangSema.a \<br class="">
           clangAnalysis.a clangEdit.a clangAST.a clangLex.a clangBasic.a<br class="">
<br class="">
Modified: cfe/trunk/tools/c-index-test/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/c-index-test/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/c-index-test/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/tools/c-index-test/Makefile (original)<br class="">
+++ cfe/trunk/tools/c-index-test/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -22,13 +22,15 @@ TOOL_NO_EXPORTS = 1<br class="">
 # LINK_COMPONENTS before including Makefile.rules<br class="">
 include $(CLANG_LEVEL)/../../Makefile.config<br class="">
<br class="">
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option<br class="">
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter \<br class="">
+                   instrumentation ipo support mc objcarcopts option<br class="">
<br class="">
 # Note that 'USEDLIBS' must include all of the core clang libraries<br class="">
 # when -static is given to linker on cygming.<br class="">
 USEDLIBS = clang.a \<br class="">
           clangIndex.a clangFormat.a clangRewrite.a \<br class="">
-          clangFrontend.a clangDriver.a \<br class="">
+           clangCodeGen.a \<br class="">
+          clangFrontend.a clangCodeGen.a clangDriver.a \<br class="">
           clangTooling.a \<br class="">
           clangToolingCore.a \<br class="">
           clangSerialization.a clangParse.a clangSema.a \<br class="">
<br class="">
Modified: cfe/trunk/tools/clang-check/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-check/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-check/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/tools/clang-check/Makefile (original)<br class="">
+++ cfe/trunk/tools/clang-check/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -15,8 +15,9 @@ TOOLNAME = clang-check<br class="">
 TOOL_NO_EXPORTS = 1<br class="">
<br class="">
 include $(CLANG_LEVEL)/../../Makefile.config<br class="">
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option<br class="">
-USEDLIBS = clangFrontend.a clangSerialization.a clangDriver.a \<br class="">
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter \<br class="">
+                   instrumentation ipo mc option objcarcopts support<br class="">
+USEDLIBS = clangFrontend.a clangCodeGen.a clangSerialization.a clangDriver.a \<br class="">
            clangTooling.a clangParse.a clangSema.a \<br class="">
            clangStaticAnalyzerFrontend.a clangStaticAnalyzerCheckers.a \<br class="">
            clangStaticAnalyzerCore.a clangAnalysis.a clangRewriteFrontend.a \<br class="">
<br class="">
Modified: cfe/trunk/tools/diagtool/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/diagtool/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/diagtool/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/tools/diagtool/Makefile (original)<br class="">
+++ cfe/trunk/tools/diagtool/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -20,7 +20,7 @@ include $(CLANG_LEVEL)/../../<a href="http://Makefile.co" class="">Makefile.co</a><br class="">
 LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option<br class="">
 USEDLIBS = clangFrontend.a clangDriver.a clangSerialization.a clangParse.a \<br class="">
            clangSema.a clangAnalysis.a clangEdit.a clangAST.a clangLex.a \<br class="">
-           clangBasic.a<br class="">
+           clangBasic.a clangCodeGen.a<br class="">
<br class="">
 include $(CLANG_LEVEL)/Makefile<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/tools/libclang/CMakeLists.txt<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CMakeLists.txt?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CMakeLists.txt?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/tools/libclang/CMakeLists.txt (original)<br class="">
+++ cfe/trunk/tools/libclang/CMakeLists.txt Tue Feb 24 19:31:45 2015<br class="">
@@ -40,6 +40,7 @@ set(SOURCES<br class="">
 set(LIBS<br class="">
   clangAST<br class="">
   clangBasic<br class="">
+  clangCodeGen<br class="">
   clangFrontend<br class="">
   clangIndex<br class="">
   clangLex<br class="">
<br class="">
Modified: cfe/trunk/tools/libclang/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/tools/libclang/Makefile (original)<br class="">
+++ cfe/trunk/tools/libclang/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -16,12 +16,13 @@ LINK_LIBS_IN_SHARED = 1<br class="">
 SHARED_LIBRARY = 1<br class="">
<br class="">
 include $(CLANG_LEVEL)/../../Makefile.config<br class="">
-LINK_COMPONENTS := AsmParser BitReader Core MC MCParser Option Support<br class="">
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter core \<br class="">
+                   instrumentation ipo mc mcparser objcarcopts option support<br class="">
 USEDLIBS = clangIndex.a clangARCMigrate.a \<br class="">
           clangRewriteFrontend.a \<br class="">
           clangFormat.a \<br class="">
           clangTooling.a clangToolingCore.a \<br class="">
-          clangFrontend.a clangDriver.a \<br class="">
+          clangFrontend.a clangCodeGen.a clangDriver.a \<br class="">
           clangSerialization.a \<br class="">
           clangParse.a clangSema.a \<br class="">
           clangStaticAnalyzerCheckers.a clangStaticAnalyzerCore.a \<br class="">
<br class="">
Modified: cfe/trunk/unittests/AST/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/AST/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/AST/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/unittests/AST/Makefile (original)<br class="">
+++ cfe/trunk/unittests/AST/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -10,9 +10,10 @@<br class="">
 CLANG_LEVEL = ../..<br class="">
 TESTNAME = AST<br class="">
 include $(CLANG_LEVEL)/../../Makefile.config<br class="">
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option<br class="">
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter \<br class="">
+                   instrumentation mc option objcarcopts support<br class="">
 USEDLIBS = clangTooling.a clangFrontend.a clangSerialization.a clangDriver.a \<br class="">
-           clangRewrite.a clangRewriteFrontend.a \<br class="">
+           clangCodeGen.a clangRewrite.a clangRewriteFrontend.a \<br class="">
            clangParse.a clangSema.a clangAnalysis.a \<br class="">
            clangEdit.a clangAST.a clangASTMatchers.a clangLex.a clangBasic.a<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/unittests/ASTMatchers/Dynamic/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/ASTMatchers/Dynamic/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/ASTMatchers/Dynamic/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/unittests/ASTMatchers/Dynamic/Makefile (original)<br class="">
+++ cfe/trunk/unittests/ASTMatchers/Dynamic/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -11,10 +11,11 @@ CLANG_LEVEL = ../../..<br class="">
<br class="">
 TESTNAME = DynamicASTMatchers<br class="">
 include $(CLANG_LEVEL)/../../Makefile.config<br class="">
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option<br class="">
-USEDLIBS = clangTooling.a clangFrontend.a clangSerialization.a clangDriver.a \<br class="">
-           clangRewrite.a clangRewriteFrontend.a clangParse.a clangSema.a \<br class="">
-           clangAnalysis.a clangEdit.a clangAST.a clangASTMatchers.a \<br class="">
-           clangLex.a clangBasic.a clangDynamicASTMatchers.a<br class="">
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter \<br class="">
+                   instrumentation ipo mc option objcarcopts support<br class="">
+USEDLIBS = clangTooling.a clangFrontend.a clangSerialization.a clangDriver.a    \<br class="">
+           clangCodeGen.a clangRewrite.a clangRewriteFrontend.a clangParse.a    \<br class="">
+           clangSema.a clangAnalysis.a clangEdit.a clangAST.a                   \<br class="">
+           clangASTMatchers.a clangLex.a clangBasic.a clangDynamicASTMatchers.a<br class="">
<br class="">
 include $(CLANG_LEVEL)/unittests/Makefile<br class="">
<br class="">
Modified: cfe/trunk/unittests/ASTMatchers/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/ASTMatchers/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/ASTMatchers/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/unittests/ASTMatchers/Makefile (original)<br class="">
+++ cfe/trunk/unittests/ASTMatchers/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -13,9 +13,10 @@ PARALLEL_DIRS = Dynamic<br class="">
<br class="">
 TESTNAME = ASTMatchers<br class="">
 include $(CLANG_LEVEL)/../../Makefile.config<br class="">
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option<br class="">
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter \<br class="">
+                   instrumentation mc option objcarcopts support<br class="">
 USEDLIBS = clangTooling.a clangFrontend.a clangSerialization.a clangDriver.a \<br class="">
-           clangRewrite.a clangRewriteFrontend.a \<br class="">
+           clangCodeGen.a clangRewrite.a clangRewriteFrontend.a \<br class="">
            clangParse.a clangSema.a clangAnalysis.a \<br class="">
            clangEdit.a clangAST.a clangASTMatchers.a clangLex.a clangBasic.a<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/unittests/CodeGen/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/CodeGen/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/CodeGen/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/unittests/CodeGen/Makefile (original)<br class="">
+++ cfe/trunk/unittests/CodeGen/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -10,9 +10,9 @@<br class="">
 CLANG_LEVEL = ../..<br class="">
 TESTNAME = CodeGen<br class="">
 include $(CLANG_LEVEL)/../../Makefile.config<br class="">
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader mc option \<br class="">
-                   profiledata support<br class="">
-USEDLIBS = clangCodeGen.a clangFrontend.a clangSerialization.a \<br class="">
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter \<br class="">
+                   instrumentation ipo mc option objcarcopts profiledata support<br class="">
+USEDLIBS = clangFrontend.a clangCodeGen.a clangSerialization.a \<br class="">
            clangDriver.a \<br class="">
            clangParse.a clangSema.a clangAnalysis.a \<br class="">
            clangEdit.a clangAST.a clangLex.a clangBasic.a<br class="">
<br class="">
Modified: cfe/trunk/unittests/Frontend/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Frontend/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Frontend/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/unittests/Frontend/Makefile (original)<br class="">
+++ cfe/trunk/unittests/Frontend/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -10,7 +10,8 @@<br class="">
 CLANG_LEVEL = ../..<br class="">
 TESTNAME = Frontend<br class="">
 include $(CLANG_LEVEL)/../../Makefile.config<br class="">
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option<br class="">
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter \<br class="">
+                   instrumentation mc option objcarcopts support<br class="">
 USEDLIBS = clangFrontendTool.a clangFrontend.a clangDriver.a \<br class="">
            clangSerialization.a clangCodeGen.a clangParse.a clangSema.a \<br class="">
            clangStaticAnalyzerCheckers.a clangStaticAnalyzerCore.a \<br class="">
<br class="">
Modified: cfe/trunk/unittests/Sema/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Sema/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Sema/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/unittests/Sema/Makefile (original)<br class="">
+++ cfe/trunk/unittests/Sema/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -10,9 +10,10 @@<br class="">
 CLANG_LEVEL = ../..<br class="">
 TESTNAME = Sema<br class="">
 include $(CLANG_LEVEL)/../../Makefile.config<br class="">
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option<br class="">
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter \<br class="">
+                   instrumentation mc option objcarcopts support<br class="">
 USEDLIBS = clangTooling.a clangFrontend.a clangSerialization.a clangDriver.a \<br class="">
-           clangRewrite.a clangRewriteFrontend.a \<br class="">
+           clangCodeGen.a clangRewrite.a clangRewriteFrontend.a \<br class="">
            clangParse.a clangSema.a clangAnalysis.a \<br class="">
            clangEdit.a clangAST.a clangASTMatchers.a clangLex.a clangBasic.a<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/unittests/Tooling/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Tooling/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Tooling/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/unittests/Tooling/Makefile (original)<br class="">
+++ cfe/trunk/unittests/Tooling/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -10,9 +10,10 @@<br class="">
 CLANG_LEVEL = ../..<br class="">
 TESTNAME = Tooling<br class="">
 include $(CLANG_LEVEL)/../../Makefile.config<br class="">
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option<br class="">
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter \<br class="">
+                   instrumentation ipo mc option objcarcopts support<br class="">
 USEDLIBS = clangTooling.a clangToolingCore.a clangFrontend.a \<br class="">
-          clangSerialization.a clangDriver.a \<br class="">
+          clangCodeGen.a clangSerialization.a clangDriver.a \<br class="">
            clangParse.a clangRewrite.a clangRewriteFrontend.a \<br class="">
           clangSema.a clangAnalysis.a clangEdit.a \<br class="">
            clangAST.a clangASTMatchers.a clangLex.a clangBasic.a<br class="">
<br class="">
Modified: cfe/trunk/unittests/libclang/Makefile<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/libclang/Makefile?rev=230423&r1=230422&r2=230423&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/libclang/Makefile?rev=230423&r1=230422&r2=230423&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/unittests/libclang/Makefile (original)<br class="">
+++ cfe/trunk/unittests/libclang/Makefile Tue Feb 24 19:31:45 2015<br class="">
@@ -12,13 +12,14 @@ TESTNAME = libclang<br class="">
 LINK_LIBS_IN_SHARED := 1<br class="">
<br class="">
 include $(CLANG_LEVEL)/../../Makefile.config<br class="">
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option<br class="">
+LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader ipo objcarcopts \<br class="">
+                   instrumentation bitwriter support mc option<br class="">
<br class="">
 # Note that 'USEDLIBS' must include all of the core clang libraries<br class="">
 # when -static is given to linker on cygming.<br class="">
 USEDLIBS = clang.a \<br class="">
           clangIndex.a clangFormat.a clangRewrite.a \<br class="">
-          clangFrontend.a clangDriver.a \<br class="">
+          clangCodeGen.a clangFrontend.a clangDriver.a \<br class="">
           clangTooling.a \<br class="">
           clangToolingCore.a \<br class="">
           clangSerialization.a clangParse.a clangSema.a \<br class="">
<br class="">
<br class="">
_______________________________________________<br class="">
cfe-commits mailing list<br class="">
<a href="mailto:cfe-commits@cs.uiuc.edu" class="">cfe-commits@cs.uiuc.edu</a><br class="">
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank" class="">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br class="">
</blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></body></html>