diff --git a/debian/changelog b/debian/changelog index 4b46fe27..bb76327d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,3 @@ -llvm-toolchain-7 (1:7.0.1~svn352582-1~exp1) UNRELEASED; urgency=medium - - * experimental New snapshot release - * Remove pr39427-misscompile.diff as it has been applied upstream - - -- Sylvestre Ledru Wed, 30 Jan 2019 08:53:14 +0100 - llvm-toolchain-7 (1:7.0.1-5) unstable; urgency=medium * Add 'Rules-Requires-Root: no' in debian/control diff --git a/debian/patches/pr39427-misscompile.diff b/debian/patches/pr39427-misscompile.diff new file mode 100644 index 00000000..797e02b1 --- /dev/null +++ b/debian/patches/pr39427-misscompile.diff @@ -0,0 +1,29 @@ +Index: llvm-toolchain-7-7/include/llvm/ADT/Optional.h +=================================================================== +--- llvm-toolchain-7-7.orig/include/llvm/ADT/Optional.h ++++ llvm-toolchain-7-7/include/llvm/ADT/Optional.h +@@ -108,24 +108,6 @@ template st + } + }; + +-#if !defined(__GNUC__) || defined(__clang__) // GCC up to GCC7 miscompiles this. +-/// Storage for trivially copyable types only. +-template struct OptionalStorage { +- AlignedCharArrayUnion storage; +- bool hasVal = false; +- +- OptionalStorage() = default; +- +- OptionalStorage(const T &y) : hasVal(true) { new (storage.buffer) T(y); } +- OptionalStorage &operator=(const T &y) { +- *reinterpret_cast(storage.buffer) = y; +- hasVal = true; +- return *this; +- } +- +- void reset() { hasVal = false; } +-}; +-#endif + } // namespace optional_detail + + template class Optional { diff --git a/debian/patches/series b/debian/patches/series index be214d4e..f189a676 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -99,6 +99,7 @@ clang-arm-default-vfp3-on-armv7a.patch # For the bootstrap bootstrap-fix-include-next.diff clangd-atomic-cmake.patch +pr39427-misscompile.diff # Rustc rustc-aarch64-test-failure.diff