summaryrefslogtreecommitdiff
path: root/src/tools/moc
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/moc')
-rw-r--r--src/tools/moc/preprocessor.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/tools/moc/preprocessor.cpp b/src/tools/moc/preprocessor.cpp
index b4cf578360..6650a1b9e9 100644
--- a/src/tools/moc/preprocessor.cpp
+++ b/src/tools/moc/preprocessor.cpp
@@ -515,7 +515,12 @@ void Preprocessor::substituteMacro(const MacroName &macro, Symbols &substituted,
Symbols saveSymbols = symbols;
int saveIndex = index;
- symbols = macros.value(macro).symbols;
+ // This is a workaround for a compiler bug that did not like the QHash::value function that
+ // simply did: "return T();" This code should essentially do the same thing but declares the
+ // default instance outside and calls the other QHash::value() implementation that returns
+ // 'dummy' as the default value now.
+ Macro dummy;
+ symbols = macros.value(macro, dummy).symbols;
index = 0;
safeset += macro;