summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/llvm/files/clang-3.7.1-ccc-analyzer-isystem.patch18
-rw-r--r--sys-devel/llvm/llvm-3.7.1-r3.ebuild3
2 files changed, 21 insertions, 0 deletions
diff --git a/sys-devel/llvm/files/clang-3.7.1-ccc-analyzer-isystem.patch b/sys-devel/llvm/files/clang-3.7.1-ccc-analyzer-isystem.patch
new file mode 100644
index 000000000000..78ca922b6366
--- /dev/null
+++ b/sys-devel/llvm/files/clang-3.7.1-ccc-analyzer-isystem.patch
@@ -0,0 +1,18 @@
+https://bugs.gentoo.org/586168
+
+Index: tools/clang/tools/scan-build/ccc-analyzer
+===================================================================
+--- a/tools/clang/tools/scan-build/ccc-analyzer (revision 250980)
++++ b/tools/clang/tools/scan-build/ccc-analyzer (working copy)
+@@ -586,9 +586,9 @@
+ }
+
+ # Compile mode flags.
+- if ($Arg =~ /^-[D,I,U,isystem](.*)$/) {
++ if ($Arg =~ /^-(D|I|U|isystem)(.*)$/) {
+ my $Tmp = $Arg;
+- if ($1 eq '') {
++ if ($2 eq '') {
+ # FIXME: Check if we are going off the end.
+ ++$i;
+ $Tmp = $Arg . $ARGV[$i];
diff --git a/sys-devel/llvm/llvm-3.7.1-r3.ebuild b/sys-devel/llvm/llvm-3.7.1-r3.ebuild
index d134a06e519c..5f6e18433df0 100644
--- a/sys-devel/llvm/llvm-3.7.1-r3.ebuild
+++ b/sys-devel/llvm/llvm-3.7.1-r3.ebuild
@@ -189,6 +189,9 @@ src_prepare() {
eapply "${FILESDIR}"/clang-3.4-darwin_prefix-include-paths.patch
eprefixify tools/clang/lib/Frontend/InitHeaderSearch.cpp
+ # Fix -isystem support in ccc-analyzer
+ eapply "${FILESDIR}"/clang-3.7.1-ccc-analyzer-isystem.patch
+
sed -i -e "s^@EPREFIX@^${EPREFIX}^" \
tools/clang/tools/scan-build/scan-build || die