From 2a992040e2ef3f9dab087be3bfac05e28596672b Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Wed, 9 Nov 2016 16:06:56 +0100 Subject: Fix more cases where DSE would optimize out too many stores GCC5/6 do aggressive dead store elimination on memory passed to placement-new. This resulted in the Heap::Object::prototype being a nullptr. qml.pro already contained the -fno-lifetime-dse flag, but there are other places where we ask the memory manager to allocate data. This is temporary band-aid, and is already fixed in 5.8. Change-Id: Ia61a69f65fab351068a588cfc36b5b3d762ffc9f Task-number: QTBUG-56932 (cherry picked from commit f4ac007f4a19bc095ff15d415a6629986de78e49) Reviewed-by: Lars Knoll --- src/imports/particles/particles.pro | 5 +++++ src/quick/quick.pro | 5 +++++ tests/auto/qml/qqmlecmascript/qqmlecmascript.pro | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/src/imports/particles/particles.pro b/src/imports/particles/particles.pro index 4460d03a04..fb9626c40e 100644 --- a/src/imports/particles/particles.pro +++ b/src/imports/particles/particles.pro @@ -3,6 +3,11 @@ TARGET = particlesplugin TARGETPATH = QtQuick/Particles.2 IMPORT_VERSION = 2.0 +greaterThan(QT_GCC_MAJOR_VERSION, 5) { + # Our code is bad. Temporary workaround. Fixed in 5.8 + QMAKE_CXXFLAGS += -fno-delete-null-pointer-checks -fno-lifetime-dse +} + SOURCES += \ plugin.cpp diff --git a/src/quick/quick.pro b/src/quick/quick.pro index 1c14ff8d57..f56fb2e081 100644 --- a/src/quick/quick.pro +++ b/src/quick/quick.pro @@ -13,6 +13,11 @@ exists("qqml_enable_gcov") { LIBS_PRIVATE += -lgcov } +greaterThan(QT_GCC_MAJOR_VERSION, 5) { + # Our code is bad. Temporary workaround. Fixed in 5.8 + QMAKE_CXXFLAGS += -fno-delete-null-pointer-checks -fno-lifetime-dse +} + QMAKE_DOCS = $$PWD/doc/qtquick.qdocconf ANDROID_LIB_DEPENDENCIES = \ diff --git a/tests/auto/qml/qqmlecmascript/qqmlecmascript.pro b/tests/auto/qml/qqmlecmascript/qqmlecmascript.pro index 101181bba0..684e7adb98 100644 --- a/tests/auto/qml/qqmlecmascript/qqmlecmascript.pro +++ b/tests/auto/qml/qqmlecmascript/qqmlecmascript.pro @@ -13,6 +13,11 @@ RESOURCES += qqmlecmascript.qrc include (../../shared/util.pri) +greaterThan(QT_GCC_MAJOR_VERSION, 5) { + # Our code is bad. Temporary workaround. Fixed in 5.8 + QMAKE_CXXFLAGS += -fno-delete-null-pointer-checks -fno-lifetime-dse +} + # QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage # LIBS += -lgcov -- cgit v1.2.3