[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[creduce-dev] updated Patch for building with llvm-svn trunk
On 2016.06.20 at 15:08 +0200, Markus Trippelsdorf wrote:
setLangDefaults() was changed again yesterday. Here's an updated patch:
diff --git a/clang_delta/TransformationManager.cpp b/clang_delta/TransformationManager.cpp
index 51e3f4a24536..0b75ec7d1809 100644
--- a/clang_delta/TransformationManager.cpp
+++ b/clang_delta/TransformationManager.cpp
@@ -85,17 +85,27 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg)
ClangInstance->createDiagnostics();
+ TargetOptions &TargetOpts = ClangInstance->getTargetOpts();
+ PreprocessorOptions &PreprocessorOpts = ClangInstance->getPreprocessorOpts();
+
+ if (const char *env = getenv("CREDUCE_TARGET_TRIPLE")) {
+ TargetOpts.Triple = std::string(env);
+ } else {
+ TargetOpts.Triple = LLVM_DEFAULT_TARGET_TRIPLE;
+ }
+
+ 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, PreprocessorOpts);
}
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, PreprocessorOpts);
}
else if(IK == IK_OpenCL) {
//Commandline parameters
@@ -121,21 +131,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, PreprocessorOpts);
}
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 {
- TargetOpts.Triple = LLVM_DEFAULT_TARGET_TRIPLE;
- }
-
TargetInfo *Target =
TargetInfo::CreateTargetInfo(ClangInstance->getDiagnostics(),
ClangInstance->getInvocation().TargetOpts);
--
Markus