commit:     bcee044c4c0e9f12b663f8886f181a7d46acea66
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jul  3 06:50:42 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jul  3 07:17:44 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bcee044c

sys-devel/llvm: Fix static analyzer -isystem support, #586168

 .../llvm/files/clang-3.7.1-ccc-analyzer-isystem.patch  | 18 ++++++++++++++++++
 sys-devel/llvm/llvm-3.7.1-r3.ebuild                    |  3 +++
 2 files changed, 21 insertions(+)

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 0000000..78ca922
--- /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 d134a06..5f6e184 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
 

Reply via email to