qt6-bb10/tests/auto/tools/moc
Lars Knoll fa93f1aeb0 Fix compile time type normalization code
Use a simpler constexpr to generate type name on gcc This
works around an ICE on gcc in release mode when compiling
with PCH enabled. As the type we're getting from Q_FUNC_INFO is
already in a somewhat normalized form, this requires significanlty
less processing and esp. not a recursive constexpr method which
I suspect triggers the ICE.

Fix integer type conversions to also properly normalize long long
values (to q(u)longlong. Make sure the mapping also works on
MSVC, where long long types get mapped to __int64. Also, normalize
unsigned short and unsigned char to ushort and uchar, respectively, to
follow the convention set by uint and ulong.

Add some test cases to verify the mappings.

Change-Id: I3dec5764450bf22ab6f066597803c3f46c2cd5ac
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2020-10-14 21:37:39 +02:00
..
Test.framework/Headers
subdir
task71021
testproject
.gitattributes
.gitignore Add support for machine-readable JSON output to the MOC 2019-10-04 18:35:29 +02:00
CMakeLists.txt CMake: Regenerate projects to use new qt_internal_ API 2020-09-23 16:59:06 +02:00
Header
allmocs_baseline_in.json Make bindings introspectable through moc 2020-09-02 22:44:29 +02:00
assign-namespace.h
backslash-newlines.h Fix warnings in tst_moc 2020-08-23 01:18:13 +02:00
c-comments.h
cstyle-enums.h
cxx-attributes.h Fix warnings in tst_moc 2020-08-23 01:18:13 +02:00
cxx11-enums.h
cxx11-explicit-override-control.h Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
cxx11-final-classes.h Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
cxx17-namespaces.h
dir-in-include-path.h
dollars.h
enum_inc.h moc: handle include directives in enums 2020-05-27 09:21:08 +02:00
enum_with_include.h moc: handle include directives in enums 2020-05-27 09:21:08 +02:00
error-on-wrong-notify.h
escapes-in-string-literals.h
extraqualification.h
forgotten-qinterface.h
forward-declared-param.h Extend QSequentialIterable and add QAssociativeIterable 2020-09-19 11:14:30 +02:00
forwarddeclaredparam.h MetaObject: Store the QMetaType of the methods 2020-06-02 22:42:15 +02:00
function-with-attributes.h
fwdclass1.h Introduce Q_MOC_INCLUDE 2020-01-17 02:22:22 +01:00
fwdclass2.h Introduce Q_MOC_INCLUDE 2020-01-17 02:22:22 +01:00
fwdclass3.h Introduce Q_MOC_INCLUDE 2020-01-17 02:22:22 +01:00
gadgetwithnoenums.h
grand-parent-gadget-class.h Support Q_GADGET QMetaObject super class hierarchies across templates 2019-12-12 13:02:52 +01:00
interface-from-framework.h
interface-from-include.h
macro-on-cmdline.h
moc.pro metatype: Do not try analyze T in Q*Pointer<T> if T is incomplete 2020-06-09 14:20:31 +02:00
moc_include.h Introduce Q_MOC_INCLUDE 2020-01-17 02:22:22 +01:00
namespace.h
namespace_no_merge.h
namespaced-flags.h
no-keywords.h Fix warnings in tst_moc 2020-08-23 01:18:13 +02:00
non-gadget-parent-class.h
oldstyle-casts.h
os9-newlines.h
parse-boost.h
parse-defines.h MetaObject: Store the QMetaType of the methods 2020-06-02 22:42:15 +02:00
plugin_metadata.h
pointery_to_incomplete.h Remove unnecessary ; after function implementations 2020-07-06 11:46:39 +02:00
pp-dollar-signs.h
pure-virtual-signals.h Remove most compiler warnings about missing overrides 2020-09-11 00:20:47 +02:00
qinvokable.h
qprivateslots.h Remove unnecessary ; after function implementations 2020-07-06 11:46:39 +02:00
qtbug-35657-gadget.h
related-metaobjects-in-gadget.h
related-metaobjects-in-namespaces.h
related-metaobjects-name-conflict.h
single-quote-digit-separator-n3781.h
single_function_keyword.h Fix warnings in tst_moc 2020-08-23 01:18:13 +02:00
slots-with-void-template.h
task87883.h
task192552.h
task234909.h
task240368.h
template-gtgt.h Use QList instead of QVector in other qtbase tests 2020-07-07 11:48:45 +02:00
trigraphs.h
tst_moc.cpp Fix compile time type normalization code 2020-10-14 21:37:39 +02:00
unterminated-function-macro.h
using-namespaces.h
warn-on-multiple-qobject-subclasses.h
warn-on-property-without-read.h
win-newlines.h