Hello community, here is the log from the commit of package llvm7 for openSUSE:Factory checked in at 2018-12-12 17:29:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/llvm7 (Old) and /work/SRC/openSUSE:Factory/.llvm7.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "llvm7" Wed Dec 12 17:29:28 2018 rev:4 rq:657239 version:7.0.0 Changes: -------- --- /work/SRC/openSUSE:Factory/llvm7/llvm7.changes 2018-10-23 20:42:38.840382528 +0200 +++ /work/SRC/openSUSE:Factory/.llvm7.new.28833/llvm7.changes 2018-12-12 17:29:34.730793749 +0100 @@ -1,0 +2,7 @@ +Tue Dec 11 10:26:04 UTC 2018 - [email protected] + +- llvm-drop-llvm-optional-clang-specific-optimization.patch + * Fix ABI incompatibility when libLLVM (built with clang) is + linked to a program build with gcc. (boo#1119092) + +------------------------------------------------------------------- New: ---- llvm-drop-llvm-optional-clang-specific-optimization.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ llvm7.spec ++++++ --- /var/tmp/diff_new_pack.Z7rZTv/_old 2018-12-12 17:29:36.770791169 +0100 +++ /var/tmp/diff_new_pack.Z7rZTv/_new 2018-12-12 17:29:36.774791164 +0100 @@ -100,6 +100,7 @@ Patch22: llvm-better-detect-64bit-atomics-support.patch Patch23: llvm-unittests-Don-t-install-TestPlugin.so.patch Patch24: opt-viewer-Find-style-css-in-usr-share.patch +Patch25: llvm-drop-llvm-optional-clang-specific-optimization.patch BuildRequires: binutils-devel >= 2.21.90 BuildRequires: binutils-gold BuildRequires: cmake @@ -522,6 +523,7 @@ %patch22 -p1 %patch23 -p1 %patch24 -p1 +%patch25 -p1 pushd cfe-%{_relver}.src %patch1 -p1 ++++++ llvm-drop-llvm-optional-clang-specific-optimization.patch ++++++ Subject: [ADT] Drop llvm::Optional clang-specific optmization for trivially copyable… References: boo#1119092 https://reviews.llvm.org/rL346985 Index: llvm/include/llvm/ADT/Optional.h =================================================================== --- llvm/include/llvm/ADT/Optional.h (revision 346984) +++ llvm/include/llvm/ADT/Optional.h (revision 346985) @@ -108,24 +108,6 @@ } }; -#if !defined(__GNUC__) || defined(__clang__) // GCC up to GCC7 miscompiles this. -/// Storage for trivially copyable types only. -template <typename T> struct OptionalStorage<T, true> { - AlignedCharArrayUnion<T> storage; - bool hasVal = false; - - OptionalStorage() = default; - - OptionalStorage(const T &y) : hasVal(true) { new (storage.buffer) T(y); } - OptionalStorage &operator=(const T &y) { - *reinterpret_cast<T *>(storage.buffer) = y; - hasVal = true; - return *this; - } - - void reset() { hasVal = false; } -}; -#endif } // namespace optional_detail template <typename T> class Optional {
