diff options
author | Matthew Woehlke <matthew.woehlke@kitware.com> | 2013-06-11 16:27:12 -0400 |
---|---|---|
committer | John Ehresman <jpe@wingware.com> | 2013-06-22 23:10:08 +0200 |
commit | b137af6d67c65b7e0e362acbdfc0cce0a321e90c (patch) | |
tree | d2d1d56230eb166d9f4a19f681fc8900133e5915 /generator | |
parent | 709f98d254efde9f98476913e79ea02fd88cd7c2 (diff) |
fix build in C++11 mode
Add spaces between string literals and preprocessor symbols. These are
required because C++11 defines string prefix and suffix operators, and
confuses preprocessor tokens adjacent to string literals as unrecognized
string literal modifies, resulting in compile errors.
Some of these changes are also needed to prevent generating code with
the same problem (which affects both Shiboken building itself, but also
any users of Shiboken).
Change-Id: I99f2d3c61fd9df682f915a29f27321fee2ce759e
Reviewed-by: John Ehresman <jpe@wingware.com>
Diffstat (limited to 'generator')
-rw-r--r-- | generator/shiboken/cppgenerator.cpp | 20 | ||||
-rw-r--r-- | generator/shiboken/shibokengenerator.cpp | 10 | ||||
-rw-r--r-- | generator/shiboken/shibokengenerator.h | 4 |
3 files changed, 17 insertions, 17 deletions
diff --git a/generator/shiboken/cppgenerator.cpp b/generator/shiboken/cppgenerator.cpp index 70f357a0b..e7ecbdd02 100644 --- a/generator/shiboken/cppgenerator.cpp +++ b/generator/shiboken/cppgenerator.cpp @@ -648,7 +648,7 @@ void CppGenerator::writeVirtualMethodNative(QTextStream&s, const AbstractMetaFun ac << INDENT; if (!func->conversionRule(TypeSystem::TargetLangCode, arg->argumentIndex() + 1).isEmpty()) { // Has conversion rule. - ac << QString("%1"CONV_RULE_OUT_VAR_SUFFIX).arg(arg->name()); + ac << QString("%1" CONV_RULE_OUT_VAR_SUFFIX).arg(arg->name()); } else { QString argName = arg->name(); if (convert) @@ -1714,7 +1714,7 @@ void CppGenerator::writeErrorSection(QTextStream& s, OverloadData& overloadData) QString strArg; AbstractMetaType* argType = arg->type(); if (isCString(argType)) { - strArg = "\"SBK_STR_NAME\""; + strArg = "\" SBK_STR_NAME \""; } else if (argType->isPrimitive()) { const PrimitiveTypeEntry* ptp = reinterpret_cast<const PrimitiveTypeEntry*>(argType->typeEntry()); while (ptp->aliasedTypeEntry()) @@ -1748,7 +1748,7 @@ void CppGenerator::writeErrorSection(QTextStream& s, OverloadData& overloadData) else if (strArg == "PyString") strArg = "str"; else if (strArg == "PyBytes") - strArg = "\"SBK_STR_NAME\""; + strArg = "\" SBK_STR_NAME \""; else if (strArg == "PySequece") strArg = "list"; else if (strArg == "PyTuple") @@ -2307,7 +2307,7 @@ void CppGenerator::writeSingleFunctionCall(QTextStream& s, const OverloadData& o const AbstractMetaArgument* arg = func->arguments().at(argIdx); if (func->argumentRemoved(argIdx + 1)) { if (!arg->defaultValueExpression().isEmpty()) { - QString cppArgRemoved = QString(CPP_ARG_REMOVED"%1").arg(argIdx); + QString cppArgRemoved = QString(CPP_ARG_REMOVED "%1").arg(argIdx); s << INDENT << getFullTypeName(arg->type()) << ' ' << cppArgRemoved; s << " = " << guessScopeForDefaultValue(func, arg) << ';' << endl; writeUnusedVariableCast(s, cppArgRemoved); @@ -2752,17 +2752,17 @@ void CppGenerator::writeMethodCall(QTextStream& s, const AbstractMetaFunction* f // If have conversion rules I will use this for removed args if (hasConversionRule) - userArgs << QString("%1"CONV_RULE_OUT_VAR_SUFFIX).arg(arg->name()); + userArgs << QString("%1" CONV_RULE_OUT_VAR_SUFFIX).arg(arg->name()); else if (!arg->defaultValueExpression().isEmpty()) - userArgs << QString(CPP_ARG_REMOVED"%1").arg(i); + userArgs << QString(CPP_ARG_REMOVED "%1").arg(i); } else { int idx = arg->argumentIndex() - removedArgs; bool deRef = isValueTypeWithCopyConstructorOnly(arg->type()) || isObjectTypeUsedAsValueType(arg->type()) || (arg->type()->isReference() && isWrapperType(arg->type()) && !isPointer(arg->type())); QString argName = hasConversionRule - ? QString("%1"CONV_RULE_OUT_VAR_SUFFIX).arg(arg->name()) - : QString("%1"CPP_ARG"%2").arg(deRef ? "*" : "").arg(idx); + ? QString("%1" CONV_RULE_OUT_VAR_SUFFIX).arg(arg->name()) + : QString("%1" CPP_ARG "%2").arg(deRef ? "*" : "").arg(idx); userArgs << argName; } } @@ -2784,9 +2784,9 @@ void CppGenerator::writeMethodCall(QTextStream& s, const AbstractMetaFunction* f argsClear = false; otherArgsModified |= defValModified || hasConversionRule || func->argumentRemoved(i + 1); if (hasConversionRule) - otherArgs.prepend(QString("%1"CONV_RULE_OUT_VAR_SUFFIX).arg(arg->name())); + otherArgs.prepend(QString("%1" CONV_RULE_OUT_VAR_SUFFIX).arg(arg->name())); else - otherArgs.prepend(QString(CPP_ARG_REMOVED"%1").arg(i)); + otherArgs.prepend(QString(CPP_ARG_REMOVED "%1").arg(i)); } if (otherArgsModified) userArgs << otherArgs; diff --git a/generator/shiboken/shibokengenerator.cpp b/generator/shiboken/shibokengenerator.cpp index bc0067fb8..7de0d3a51 100644 --- a/generator/shiboken/shibokengenerator.cpp +++ b/generator/shiboken/shibokengenerator.cpp @@ -1452,9 +1452,9 @@ ShibokenGenerator::ArgumentVarReplacementList ShibokenGenerator::getArgumentRepl bool argRemoved = func->argumentRemoved(i+1); removed = removed + (int) argRemoved; if (argRemoved && hasConversionRule) - argValue = QString("%1"CONV_RULE_OUT_VAR_SUFFIX).arg(arg->name()); + argValue = QString("%1" CONV_RULE_OUT_VAR_SUFFIX).arg(arg->name()); else if (argRemoved || (lastArg && arg->argumentIndex() > lastArg->argumentIndex())) - argValue = QString(CPP_ARG_REMOVED"%1").arg(i); + argValue = QString(CPP_ARG_REMOVED "%1").arg(i); if (!argRemoved && argValue.isEmpty()) { int argPos = i - removed; const AbstractMetaType* type = arg->type(); @@ -1465,11 +1465,11 @@ ShibokenGenerator::ArgumentVarReplacementList ShibokenGenerator::getArgumentRepl type = builtType; } if (type->typeEntry()->isCustom()) { - argValue = usePyArgs ? QString(PYTHON_ARGS"[%1]").arg(argPos) : PYTHON_ARG; + argValue = usePyArgs ? QString(PYTHON_ARGS "[%1]").arg(argPos) : PYTHON_ARG; } else { argValue = hasConversionRule - ? QString("%1"CONV_RULE_OUT_VAR_SUFFIX).arg(arg->name()) - : QString(CPP_ARG"%1").arg(argPos); + ? QString("%1" CONV_RULE_OUT_VAR_SUFFIX).arg(arg->name()) + : QString(CPP_ARG "%1").arg(argPos); if (isWrapperType(type)) { if (type->isReference() && !isPointer(type)) argValue.prepend('*'); diff --git a/generator/shiboken/shibokengenerator.h b/generator/shiboken/shibokengenerator.h index be39b4ddd..adeb73433 100644 --- a/generator/shiboken/shibokengenerator.h +++ b/generator/shiboken/shibokengenerator.h @@ -27,11 +27,11 @@ #define CONV_RULE_OUT_VAR_SUFFIX "_out" #define CPP_ARG "cppArg" #define CPP_ARG0 CPP_ARG"0" -#define CPP_ARG_REMOVED "removed_"CPP_ARG +#define CPP_ARG_REMOVED "removed_" CPP_ARG #define CPP_RETURN_VAR "cppResult" #define CPP_SELF_VAR "cppSelf" #define PYTHON_ARG "pyArg" -#define PYTHON_ARGS PYTHON_ARG"s" +#define PYTHON_ARGS PYTHON_ARG "s" #define PYTHON_OVERRIDE_VAR "pyOverride" #define PYTHON_RETURN_VAR "pyResult" #define PYTHON_SELF_VAR "self" |