From 93b54f123771c5b7da9880e9a2f372562893707f Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 9 Nov 2018 14:18:55 +0100 Subject: shiboken: Generate static_cast for constructor parameters with space unsigned long(0) does not work, use static_cast(0). Fixes: PYSIDE-846 Change-Id: If41baebdf0b1228b658408e4c300872d17143e6f Reviewed-by: Alexandru Croitor --- sources/shiboken2/generator/generator.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'sources/shiboken2') diff --git a/sources/shiboken2/generator/generator.cpp b/sources/shiboken2/generator/generator.cpp index 8b37b44e0..ec227bd83 100644 --- a/sources/shiboken2/generator/generator.cpp +++ b/sources/shiboken2/generator/generator.cpp @@ -124,8 +124,13 @@ QString DefaultValue::constructorParameter() const return QLatin1String("#error"); case DefaultValue::Boolean: return QLatin1String("false"); - case DefaultValue::CppScalar: - return m_value + QLatin1String("(0)"); + case DefaultValue::CppScalar: { + // PYSIDE-846: Use static_cast in case of "unsigned long" and similar + const QString cast = m_value.contains(QLatin1Char(' ')) + ? QLatin1String("static_cast<") + m_value + QLatin1Char('>') + : m_value; + return cast + QLatin1String("(0)"); + } case DefaultValue::Custom: case DefaultValue::Enum: return m_value; -- cgit v1.2.3