[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[creduce-dev] Patch for building with llvm-svn trunk



The following patch fixes a build failure with with llvm trunk:

diff --git a/clang_delta/TransformationManager.cpp b/clang_delta/TransformationManager.cpp
index 51e3f4a24536..dea86557efdf 100644
--- a/clang_delta/TransformationManager.cpp
+++ b/clang_delta/TransformationManager.cpp
@@ -85,17 +85,19 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg)
   
   ClangInstance->createDiagnostics();
 
+  TargetOptions &TargetOpts = ClangInstance->getTargetOpts();
+  llvm::Triple T(TargetOpts.Triple);
   CompilerInvocation &Invocation = ClangInstance->getInvocation();
   InputKind IK = FrontendOptions::getInputKindForExtension(
         StringRef(SrcFileName).rsplit('.').second);
   if ((IK == IK_C) || (IK == IK_PreprocessedC)) {
-    Invocation.setLangDefaults(ClangInstance->getLangOpts(), IK_C);
+    Invocation.setLangDefaults(ClangInstance->getLangOpts(), IK_C, T);
   }
   else if ((IK == IK_CXX) || (IK == IK_PreprocessedCXX)) {
     // ISSUE: it might cause some problems when building AST
     // for a function which has a non-declared callee, e.g., 
     // It results an empty AST for the caller. 
-    Invocation.setLangDefaults(ClangInstance->getLangOpts(), IK_CXX);
+    Invocation.setLangDefaults(ClangInstance->getLangOpts(), IK_CXX, T);
   }
   else if(IK == IK_OpenCL) {
     //Commandline parameters
@@ -121,15 +123,13 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg)
     CompilerInvocation::CreateFromArgs(Invocation,
                                        &Args[0], &Args[0] + Args.size(),
                                        ClangInstance->getDiagnostics());
-    Invocation.setLangDefaults(ClangInstance->getLangOpts(), IK_OpenCL);
+    Invocation.setLangDefaults(ClangInstance->getLangOpts(), IK_OpenCL, T);
   }
   else {
     ErrorMsg = "Unsupported file type!";
     return false;
   }
 
-  TargetOptions &TargetOpts = ClangInstance->getTargetOpts();
-
   if (const char *env = getenv("CREDUCE_TARGET_TRIPLE")) {
     TargetOpts.Triple = std::string(env);
   } else {
-- 
Markus