commit:     934709b268c66b5600591f1e5bbe44c3d1b1e076
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 20 06:11:16 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Sep 20 07:34:42 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=934709b2

sys-devel/clang: Backport gcc-9 build fix to 9.0.0*

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-devel/clang/clang-9.0.0.9999.ebuild            |  3 ++
 .../0002-Initialize-all-fields-in-ABIArgInfo.patch | 43 ++++++++++++++++++++++
 2 files changed, 46 insertions(+)

diff --git a/sys-devel/clang/clang-9.0.0.9999.ebuild 
b/sys-devel/clang/clang-9.0.0.9999.ebuild
index 2322c115940..16f86d8d2b9 100644
--- a/sys-devel/clang/clang-9.0.0.9999.ebuild
+++ b/sys-devel/clang/clang-9.0.0.9999.ebuild
@@ -68,6 +68,9 @@ PATCHES=(
        # fix linking in non-native build (without tools-extra)
        # https://bugs.llvm.org/show_bug.cgi?id=43281
        
"${FILESDIR}"/9.0.0/0001-clang-unittest-Import-LLVMTestingSupport-if-necessar.patch
+       # fix build with gcc-9.0.0
+       # https://bugs.llvm.org/show_bug.cgi?id=40547
+       "${FILESDIR}"/9.0.0/0002-Initialize-all-fields-in-ABIArgInfo.patch
 )
 
 # Multilib notes:

diff --git 
a/sys-devel/clang/files/9.0.0/0002-Initialize-all-fields-in-ABIArgInfo.patch 
b/sys-devel/clang/files/9.0.0/0002-Initialize-all-fields-in-ABIArgInfo.patch
new file mode 100644
index 00000000000..cc397f7c078
--- /dev/null
+++ b/sys-devel/clang/files/9.0.0/0002-Initialize-all-fields-in-ABIArgInfo.patch
@@ -0,0 +1,43 @@
+From 3398b3f937dd025c81d75a7322a6b7b2205ca8da Mon Sep 17 00:00:00 2001
+From: Serge Guelton <[email protected]>
+Date: Thu, 19 Sep 2019 00:54:40 +0000
+Subject: [PATCH] Initialize all fields in ABIArgInfo.
+
+Due to usage of an uninitialized fields, we end up with
+a Conditional jump or move depends on uninitialised value
+
+Fixes https://bugs.llvm.org/show_bug.cgi?id=40547
+
+Commited on behalf of Martin Liska <[email protected]>
+
+llvm-svn: 372281
+---
+ clang/include/clang/CodeGen/CGFunctionInfo.h | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/clang/include/clang/CodeGen/CGFunctionInfo.h 
b/clang/include/clang/CodeGen/CGFunctionInfo.h
+index 1f81072e23d..5069d9af42a 100644
+--- a/include/clang/CodeGen/CGFunctionInfo.h
++++ b/include/clang/CodeGen/CGFunctionInfo.h
+@@ -109,14 +109,12 @@ private:
+     UnpaddedCoerceAndExpandType = T;
+   }
+ 
+-  ABIArgInfo(Kind K)
+-      : TheKind(K), PaddingInReg(false), InReg(false) {
+-  }
+-
+ public:
+-  ABIArgInfo()
++  ABIArgInfo(Kind K = Direct)
+       : TypeData(nullptr), PaddingType(nullptr), DirectOffset(0),
+-        TheKind(Direct), PaddingInReg(false), InReg(false) {}
++        TheKind(K), PaddingInReg(false), InAllocaSRet(false),
++        IndirectByVal(false), IndirectRealign(false), SRetAfterThis(false),
++        InReg(false), CanBeFlattened(false), SignExt(false) {}
+ 
+   static ABIArgInfo getDirect(llvm::Type *T = nullptr, unsigned Offset = 0,
+                               llvm::Type *Padding = nullptr,
+-- 
+2.23.0
+

Reply via email to