aboutsummaryrefslogtreecommitdiffstats
path: root/generator
diff options
context:
space:
mode:
authorMatthew Woehlke <matthew.woehlke@kitware.com>2013-06-11 16:27:12 -0400
committerJohn Ehresman <jpe@wingware.com>2013-06-22 23:10:08 +0200
commitb137af6d67c65b7e0e362acbdfc0cce0a321e90c (patch)
treed2d1d56230eb166d9f4a19f681fc8900133e5915 /generator
parent709f98d254efde9f98476913e79ea02fd88cd7c2 (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.cpp20
-rw-r--r--generator/shiboken/shibokengenerator.cpp10
-rw-r--r--generator/shiboken/shibokengenerator.h4
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"