use*_*932 5 c++ clang clang-static-analyzer
这是一个最小、完整且可验证的示例:
#include <QTimer>
#include <QApplication>
#include <QtDebug>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QObject boo;
QTimer::singleShot(0, &boo, []() {
qDebug() << "hi";
});
}
Run Code Online (Sandbox Code Playgroud)
这是我的 CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
find_package(Qt5Widgets REQUIRED)
include_directories(${Qt5Widgets_INCLUDE_DIRS})
add_executable(boo main.cpp)
qt5_use_modules(boo Widgets)
Run Code Online (Sandbox Code Playgroud)
如果我针对它运行clang-analyzer :
$ mkdir build && cd build && scan-build cmake .. && scan-build cmake --build .
...
warning: Path diagnostic report is not generated. Current output format does not support diagnostics that cross file boundaries. Refer to --analyzer-output for valid output formats
In file included from /tmp/boo/main.cpp:1:
In file included from /usr/include/qt/QtCore/QTimer:1:
/usr/include/qt/QtCore/qtimer.h:154:5: warning: Potential memory leak
}
^
Run Code Online (Sandbox Code Playgroud)
我无法理解的是:
warning: Path diagnostic report is not generated. Current output format does not support diagnostics that cross file boundaries. Refer to --analyzer-output for valid output formats
Run Code Online (Sandbox Code Playgroud)
但是scan-build没有--analyzer-output,我怎样才能将qtimer.h问题纳入报告中?
| 归档时间: |
|
| 查看次数: |
594 次 |
| 最近记录: |