diff options
authorMorten Johan Sørvig <morten.sorvig@qt.io>2019-02-11 18:36:40 +0100
committerMorten Johan Sørvig <morten.sorvig@qt.io>2019-03-08 10:11:10 +0000
commit850aaa0fb43f64a2d9cf5160fd6c54dd552cd6a5 (patch)
parent014e7a91f20eb01bac3ec99cea5c76053ae4b59e (diff)
wasm: disable MOTH_COMPUTED_GOTO for stock llvmv5.13.0-beta1
The WASM_OBJECT_FILES=1 build mode requires using upstream llvm (instead of the of the emscripten ‘fastcomp’ llvm fork), which does not support computed goto. Change-Id: Ie47b29ac8a09f4bd2519fc55087e4803e66e9520 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
1 files changed, 7 insertions, 1 deletions
diff --git a/src/qml/compiler/qv4instr_moth_p.h b/src/qml/compiler/qv4instr_moth_p.h
index 080f4b42b6..3996143843 100644
--- a/src/qml/compiler/qv4instr_moth_p.h
+++ b/src/qml/compiler/qv4instr_moth_p.h
@@ -346,12 +346,18 @@ QT_BEGIN_NAMESPACE
#define MOTH_NUM_INSTRUCTIONS() (static_cast<int>(Moth::Instr::Type::Debug_Wide) + 1)
-#if defined(Q_CC_GNU) && !defined(Q_CC_INTEL)
+#if defined(Q_CC_GNU)
+#if defined(Q_CC_INTEL)
// icc before version 1200 doesn't support computed goto, and at least up to version 18.0.0 the
// current use results in an internal compiler error. We could enable this if/when it gets fixed
// in a later version.
+# elif defined(Q_OS_WASM) && !defined(__asmjs)
+// Upstream llvm does not support computed goto for the wasm target, unlike the 'fastcomp' llvm fork
+// shipped with the emscripten SDK. Disable computed goto usage for non-fastcomp llvm on Wasm.
#define MOTH_INSTR_ALIGN_MASK (Q_ALIGNOF(QV4::Moth::Instr) - 1)