Summary: | No old-style-connect anywhere in Qt Creator | ||
---|---|---|---|
Product: | [Developer tools] clazy | Reporter: | Tobias Hunger <tobias.hunger> |
Component: | general | Assignee: | Unassigned bugs mailing-list <unassigned-bugs> |
Status: | RESOLVED NOT A BUG | ||
Severity: | normal | CC: | eric.lemanissier, smartins |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Tobias Hunger
2015-11-17 14:43:18 UTC
Git commit fbc60ace96ad267ad35fb7487a60ea890d9d3b90 by Sergio Martins. Committed on 17/11/2015 at 19:59. Pushed by smartins into branch 'master'. s/fix-old-style-connects/fix-old-style-connect The check name is also singular. M +1 -1 README M +1 -1 checks/oldstyleconnect.cpp M +4 -4 tests/clazy/test_requested_checks.sh http://commits.kde.org/clazy/fbc60ace96ad267ad35fb7487a60ea890d9d3b90 Can you test: mkdir /tmp/clazy cd <clazy_src_dir> git clean -fdx git pull cmake -DCMAKE_INSTALL_PREFIX=/tmp/clazy/ make && make install export PATH=/tmp/clazy/bin/:$PATH export LD_LIBRARY_PATH=/tmp/clazy/lib64/:$LD_LIBRARY_PATH cd <some_other folder> Create a .pro and a main.cpp with this contents: TEMPLATE = app TARGET = test INCLUDEPATH += . SOURCES += main.cpp CONFIG += C++11 main.cpp: #include <QObject> int main() { QObject *o = nullptr; QObject::connect(o, SIGNAL(destroyed()), o, SLOT(deleteLater())); } qmake -spec linux-clang QMAKE_CXX=/tmp/clazy/bin/clazy make be sure to start with a new terminal unset CLAZY_FIXIT unset CLAZY_CHECKS if needed old-style-connect is a level1 check, so runs by default if no checks are specified Your test produces a warning. Running qmake as I do within Qt Creator (qmake -r -spec linux-clang 'QMAKE_CXXFLAGS=-Xclang -load -Xclang /home/code/installed/clazy/lib64/ClangLazy.so -Xclang -add-plugin -Xclang clang-lazy -Xclang -plugin-arg-clang-lazy -Xclang "old-style-connect,fix-old-style-connect"') also produces a warning with your example, but it does not change the code. Qt Creator itself is still totally without any old style connects according to clazy. Running e.g. clang++ -c -Xclang -load -Xclang /home/code/installed/clazy/lib64/ClangLazy.so -Xclang -add-plugin -Xclang clang-lazy -Xclang -plugin-arg-clang-lazy -Xclang old-style-connect,fix-old-style-connect -g -std=gnu++11 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DEXTENSIONSYSTEM_LIBRARY -DWITH_TESTS -DIDE_LIBRARY_BASENAME=\"lib\" -DQT_CREATOR -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_FAST_CONCATENATION -DIDE_TEST_DIR=\"/home/code/src/creator/qtcreator\" -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_TESTLIB_LIB -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_TESTCASE_BUILDDIR='"/home/code/build/creator-clang-no-asan-clazy/qtcreator/src/libs/extensionsystem"' -I../../../src -I/home/code/src/creator/qtcreator/src/libs -I/home/code/src/creator/qtcreator/tools -I/home/code/src/creator/licensechecker/plugins -I/home/code/src/creator/perfprofiler/plugins -I/home/code/src/creator/qtcreator/src/plugins -I/home/code/src/qt5-dev-build/qtbase/include -I/home/code/src/qt5-dev-build/qtbase/include/QtWidgets -I/home/code/src/qt5-dev-build/qtbase/include/QtGui -I/home/code/src/qt5-dev-build/qtbase/include/QtTest -I/home/code/src/qt5-dev-build/qtbase/include/QtConcurrent -I/home/code/src/qt5-dev-build/qtbase/include/QtCore -I.moc/debug-shared -I.uic -I/home/code/src/qt5-dev/qtbase/mkspecs/linux-clang -o .obj/debug-shared/pluginmanager.o src/libs/extensionsystem/pluginmanager.cpp (which is what I run in Qt Creator) does *also* produce the expected warning output on the command line... Now what is different between QtC and the terminal?! Running inside Qt Creator with out giving any checks does get me lots of reports like "warning: QString(QLatin1String) being called [-Wclazy-qstring-uneeded-heap-allocations]", but not a single one about out-style-connects. What is different between old-style-connect and the other checks? Adding "-Xclang -plugin-arg-clang-lazy -Xclang print-requested-checks" to my qmake call gets me this: Requested checks: auto-unexpected-qstringbuilder, detaching-temporary, foreach, non-pod-global-static, old-style-connect, qdatetime-utc, qdeleteall, qgetenv, qmap-with-key-pointer, qstring-arg, qstring-ref, qstring-uneeded-heap-allocations, range-loop, temporary-iterator, variant-sanitizer, writing-to-temporary I do get several thousand warnings, from clazy, but nothing about old-style-connects when running the build in Qt Creator. The additional arguments I pass on to clang for clazy from Qt Creator are these now: 'QMAKE_CXXFLAGS=-Xclang -load -Xclang /home/code/installed/clazy/lib64/ClangLazy.so -Xclang -add-plugin -Xclang clang-lazy -Xclang -plugin-arg-clang-lazy -Xclang print-requested-checks' Does it make any difference with: -DLLVM_VERSION_MAJOR=3 -DLLVM_VERSION_MINOR=7 Aaaarggg! I found it: ccache kept the no-output version cached. Sorry for the unnecessary noise. |