Bug#759286: smokegen generates wrong cast function for smokeqt
Package: src:smokeqt
Version: 4:4.14.0-1
Severity: serious
Tags: sid jessie
This causes #759239 and #759205:
In stable, smokegen generates smokedata.cpp(cast), which ends with:
[...]
case 152: //QXmlStreamWriter
switch(to) {
case 152: return (void*)(QXmlStreamWriter*)xptr;
default: return xptr;
}
default: return xptr;
}
}
in unstable, the function ends as:
case 155: //QXmlStreamWriter
switch(to) {
case 155: return (void*)(QXmlStreamWriter*)xptr;
default: return xptr;
}
case 157: //iterator
switch(to) {
case 157: return (void*)(iterator*)xptr;
default: return xptr;
}
default: return xptr;
}
}
This doesn't look right, and ends with a build error. Removing the 157 case lets
the build continue and then fails further on with
/scratch/packages/tmp/smokeqt-4.14.0/obj-x86_64-linux-gnu/qtcore/x_3.cpp: In
member function 'void __smokeqtcore::x_QBitArray::x_36(Smoke::Stack)':
/scratch/packages/tmp/smokeqt-4.14.0/obj-x86_64-linux-gnu/qtcore/x_3.cpp:1003:57: warning:
ISO C++ forbids taking the address of an unqualified or parenthesized non-static
member function to form a pointer to member function. Say
'&__smokeqtcore::x_QBitArray::operator=' [-fpermissive]
x[0].s_class = (void*)&this->QBitArray::operator=;
^
/scratch/packages/tmp/smokeqt-4.14.0/obj-x86_64-linux-gnu/qtcore/x_3.cpp:1003:57: warning:
converting from 'QBitArray& (QBitArray::*)(const QBitArray&)' to 'void*'
[-Wpmf-conversions]
Reply to: