Summary: | qstring-uneeded-heap-allocations: fixit changes QString to QLatin1String even if a QString function (sprintf, arg...) on that object | ||
---|---|---|---|
Product: | [Developer tools] clazy | Reporter: | NooN <oo.o+kde> |
Component: | general | Assignee: | Sergio Martins <smartins> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | smartins |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Debian testing | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/clazy/2d119b58204d2357ed418077e3780afa8415ed6a | Version Fixed In: | |
Sentry Crash Report: | |||
Attachments: | testcase for QString with sprintf |
Git commit 2d119b58204d2357ed418077e3780afa8415ed6a by Sergio Martins. Committed on 31/01/2016 at 18:59. Pushed by smartins into branch 'master'. qstring-uneeded-heap-allocations: Fix wrong usage of QL1S QString("").sprintf() can't be replaced with QL1S, only QSL. M +1 -1 checks/qstringuneededheapallocations.cpp M +7 -0 tests/qstring-uneeded-heap-allocations/main.cpp M +2 -0 tests/qstring-uneeded-heap-allocations/main.cpp.expected M +7 -0 tests/qstring-uneeded-heap-allocations/main.cpp_fixed.cpp.expected http://commits.kde.org/clazy/2d119b58204d2357ed418077e3780afa8415ed6a |
Created attachment 96901 [details] testcase for QString with sprintf If a QString is created and a function of that object get's called ist must not be converted to a QLatin1String. That class has only a minimal set of functions and for example arg or sprintf is not supported. testcase_qstring.cpp:21:5: warning: QString(const char*) being called [-Wclazy-qstring-uneeded-heap-allocations] QString("").sprintf("0x%02X", 0x1E); If the (automatic) fixit get applied there is than a no member error. testcase_with_fixit.cpp:21:23: error: no member named 'sprintf' in 'QLatin1String' QLatin1String("").sprintf("0x%02X", 0x1E);