<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/73e1c3434058a4cbd61502883be7144aedbb21cf">https://github.com/macports/macports-ports/commit/73e1c3434058a4cbd61502883be7144aedbb21cf</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 73e1c343405 creduce: add variants llvm90, llvm11 - Auto-select llvm11 for Big Sur and later - Also migrate default from llvm 8 to 9 Fixes: https://trac.macports.org/ticket/62637
</span>73e1c343405 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 73e1c3434058a4cbd61502883be7144aedbb21cf
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Sat Jul 2 13:51:34 2022 -0400
<span style='display:block; white-space:pre;color:#404040;'> creduce: add variants llvm90, llvm11
</span><span style='display:block; white-space:pre;color:#404040;'> - Auto-select llvm11 for Big Sur and later
</span><span style='display:block; white-space:pre;color:#404040;'> - Also migrate default from llvm 8 to 9
</span><span style='display:block; white-space:pre;color:#404040;'> Fixes: https://trac.macports.org/ticket/62637
</span>---
devel/creduce/Portfile | 68 +++++++++++-----
devel/creduce/files/patch-llvm-11.diff | 137 +++++++++++++++++++++++++++++++++
2 files changed, 186 insertions(+), 19 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/creduce/Portfile b/devel/creduce/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 5919c7f4be4..5aebec0db5c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/creduce/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/creduce/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,12 +1,12 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup active_variants 1.1
</span>
name creduce
version 2.10.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 2
</span> categories devel
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms darwin
</span> license NCSA
maintainers {larryv @larryv}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -21,15 +21,44 @@ long_description C-Reduce is a tool that takes a large C, C++, \
</span> process source code.
homepage http://embed.cs.utah.edu/creduce
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patch.pre_args -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # INSTALL.md notes the specific version of LLVM that is required.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set llvm_version 8.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { !([variant_isset llvm90] || [variant_isset llvm11]) } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # LLVM-11 needed for Big Sur and later
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} >= 20} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants +llvm11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants +llvm90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Note that LLVM 11 and later, each require different upstream patches
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[variant_isset llvm90]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set llvm_version 9.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {[variant_isset llvm11]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set llvm_version 11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-llvm-11.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error "One variant must be selected"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Clang must be installed with `+analyzer`, otherwise we'll be missing some required libs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+require_active_variants clang-${llvm_version} analyzer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> set perl5.major 5.34
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Build with Clang matching selected LLVM version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.compiler macports-clang-${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # INSTALL.md mentions flex, but the tarball ships with pregenerated parsers.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_build port:llvm-${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append port:llvm-${llvm_version}
</span>
# Required by the LLVM static libraries.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib port:ncurses port:zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append port:ncurses \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:zlib
</span>
# Not required at compile time, but the configure script checks for them.
depends_lib-append port:clang-${llvm_version} \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -39,6 +68,7 @@ depends_lib-append port:clang-${llvm_version} \
</span> port:p${perl5.major}-getopt-tabular \
port:p${perl5.major}-regexp-common \
port:p${perl5.major}-term-readkey
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> depends_skip_archcheck clang-${llvm_version} \
perl${perl5.major} \
p${perl5.major}-term-readkey
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -50,23 +80,20 @@ checksums rmd160 183be95aec282812724ec66204952ad33dbc923b \
</span>
compiler.cxx_standard 2011
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${os.platform} eq "darwin" && ${os.major} <= 9} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- known_fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_error "${name} is only supported on Mac OS X 10.6 or newer."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return -code error "unsupported Mac OS X version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} <= 9} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ known_fail yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "${name} is only supported on Mac OS X 10.6 or newer."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -code error "unsupported Mac OS X version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {${os.major} <= 12} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # forcing libc++ works on these platforms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cxx_stdlib libc++
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${os.platform} eq "darwin" && ${os.major} <= 12} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # forcing libc++ works on these platforms
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:libcxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.cxx_stdlib libc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # clang < macOS 10.9 don't work. clang-5.0 tested and works.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # just whitelist working compilers rather than a long list of blacklisting and fallback additions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- compiler.whitelist macports-clang-5.0 macports-clang-6.0 macports-clang-7.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> configure.perl ${prefix}/bin/perl${perl5.major}
configure.args --libexecdir=${prefix}/libexec/${name} \
--with-llvm=${prefix}/libexec/llvm-${llvm_version}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -80,6 +107,9 @@ post-destroot {
</span> AUTHORS COPYING NEWS README.md ${destroot}${docdir}
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+variant llvm90 conflicts llvm11 description {Use LLVM 9.0} {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant llvm11 conflicts llvm90 description {Use LLVM 11} {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> test.run yes
test.dir ${worksrcpath}/tests
test.cmd ./run_tests
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/creduce/files/patch-llvm-11.diff b/devel/creduce/files/patch-llvm-11.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c7ef566760f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/creduce/files/patch-llvm-11.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,137 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# ===========================================================================================================
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# LLVM 11 patch consists of:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# - https://github.com/csmith-project/creduce/commit/3e1f5a1ec1365fafae965c97603221c9ccbc2d61.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# ===========================================================================================================
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 3e1f5a1ec1365fafae965c97603221c9ccbc2d61 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Yang Chen <chenyang@cs.utah.edu>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 13 Oct 2020 00:49:53 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Make it compile with LLVM11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Applied the patch provided by Vegard Nossum (vegard@github).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang_delta/CommonRenameClassRewriteVisitor.h | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang_delta/RemoveNamespace.cpp | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang_delta/RewriteUtils.cpp | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang_delta/Transformation.cpp | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang_delta/TransformationManager.cpp | 18 ++++++++++--------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5 files changed, 15 insertions(+), 13 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# ===========================================================================================================
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang_delta/CommonRenameClassRewriteVisitor.h b/clang_delta/CommonRenameClassRewriteVisitor.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e400f3ff..ba860d9d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang_delta/CommonRenameClassRewriteVisitor.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang_delta/CommonRenameClassRewriteVisitor.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -98,7 +98,7 @@ bool CommonRenameClassRewriteVisitor<T>::VisitUsingDecl(UsingDecl *D)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IdentifierInfo *IdInfo = DeclName.getAsIdentifierInfo();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- std::string IdName = IdInfo->getName();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ std::string IdName = IdInfo->getName().str();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ std::string Name;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (getNewNameByName(IdName, Name)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SourceLocation LocStart = NameInfo.getBeginLoc();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -337,7 +337,7 @@ template<typename T> bool CommonRenameClassRewriteVisitor<T>::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TransAssert(DTST && "Bad DependentTemplateSpecializationType!");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const IdentifierInfo *IdInfo = DTST->getIdentifier();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- std::string IdName = IdInfo->getName();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ std::string IdName = IdInfo->getName().str();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ std::string Name;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (getNewNameByName(IdName, Name)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SourceLocation LocStart = DTSLoc.getTemplateNameLoc();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang_delta/RemoveNamespace.cpp b/clang_delta/RemoveNamespace.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 71ea5710..867e9c0b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang_delta/RemoveNamespace.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang_delta/RemoveNamespace.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -458,7 +458,7 @@ bool RemoveNamespaceRewriteVisitor::VisitDependentTemplateSpecializationTypeLoc(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TransAssert(DTST && "Bad DependentTemplateSpecializationType!");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const IdentifierInfo *IdInfo = DTST->getIdentifier();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- std::string IdName = IdInfo->getName();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ std::string IdName = IdInfo->getName().str();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ std::string Name;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // FIXME:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang_delta/RewriteUtils.cpp b/clang_delta/RewriteUtils.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 71e9914c..8c185aaa 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang_delta/RewriteUtils.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang_delta/RewriteUtils.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -748,7 +748,7 @@ std::string RewriteUtils::getStmtIndentString(Stmt *S,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ++I;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ indentSpace = MB.substr(lineOffs, I-lineOffs);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return indentSpace;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return indentSpace.str();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool RewriteUtils::addLocalVarToFunc(const std::string &VarStr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang_delta/Transformation.cpp b/clang_delta/Transformation.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9ef79cce..41153f3b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang_delta/Transformation.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang_delta/Transformation.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -357,7 +357,7 @@ unsigned int Transformation::getConstArraySize(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ llvm::SmallString<8> IntStr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Result.toStringUnsigned(IntStr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- std::stringstream TmpSS(IntStr.str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ std::stringstream TmpSS(IntStr.str().str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!(TmpSS >> Sz)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TransAssert(0 && "Non-integer value!");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/clang_delta/TransformationManager.cpp b/clang_delta/TransformationManager.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b123632e..98fc67ec 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/clang_delta/TransformationManager.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/clang_delta/TransformationManager.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16,7 +16,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sstream>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "clang/Basic/Builtins.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "clang/Basic/Diagnostic.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "clang/Basic/FileManager.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "clang/Basic/TargetInfo.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "clang/Lex/Preprocessor.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "clang/Frontend/CompilerInstance.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -101,16 +103,16 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CompilerInvocation &Invocation = ClangInstance->getInvocation();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ InputKind IK = FrontendOptions::getInputKindForExtension(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ StringRef(SrcFileName).rsplit('.').second);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (IK.getLanguage() == InputKind::C) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Invocation.setLangDefaults(ClangInstance->getLangOpts(), InputKind::C, T, PPOpts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (IK.getLanguage() == Language::C) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Invocation.setLangDefaults(ClangInstance->getLangOpts(), Language::C, T, PPOpts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- else if (IK.getLanguage() == InputKind::CXX) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (IK.getLanguage() == Language::CXX) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // ISSUE: it might cause some problems when building AST
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // for a function which has a non-declared callee, e.g.,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // It results an empty AST for the caller.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Invocation.setLangDefaults(ClangInstance->getLangOpts(), InputKind::CXX, T, PPOpts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Invocation.setLangDefaults(ClangInstance->getLangOpts(), Language::CXX, T, PPOpts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- else if(IK.getLanguage() == InputKind::OpenCL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if(IK.getLanguage() == Language::OpenCL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //Commandline parameters
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ std::vector<const char*> Args;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Args.push_back("-x");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -122,7 +124,7 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ClangInstance->createFileManager();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(CLCPath != NULL && ClangInstance->hasFileManager() &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ClangInstance->getFileManager().getDirectory(CLCPath, false)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Args.push_back("-I");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Args.push_back(CLCPath);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -132,10 +134,10 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Args.push_back("-fno-builtin");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CompilerInvocation::CreateFromArgs(Invocation,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- &Args[0], &Args[0] + Args.size(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ArrayRef<const char*>(&Args[0], &Args[0] + Args.size()),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ClangInstance->getDiagnostics());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Invocation.setLangDefaults(ClangInstance->getLangOpts(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- InputKind::OpenCL, T, PPOpts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Language::OpenCL, T, PPOpts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ErrorMsg = "Unsupported file type!";
</span></pre><pre style='margin:0'>
</pre>