Skip to content

Fix #14516 (Review progress messages)#8241

Open
danmar wants to merge 7 commits intodanmar:mainfrom
cppchecksolutions:fix-14516
Open

Fix #14516 (Review progress messages)#8241
danmar wants to merge 7 commits intodanmar:mainfrom
cppchecksolutions:fix-14516

Conversation

@danmar
Copy link
Owner

@danmar danmar commented Feb 19, 2026

No description provided.

@danmar
Copy link
Owner Author

danmar commented Feb 19, 2026

With this debug code in cppcheckexecutor.cpp:

void StdLogger::reportProgress(const std::string &filename, const char stage[], const std::size_t value)
{
    std::cout << (std::time(nullptr) & 0xf) << ':' << stage << ':' << value << std::endl;
    return;

I get this output below. This is the output for 28 seconds of analysis:

daniel@dator:~/cppchecksolutions/cppcheck$ time ./cppcheck lib/astutils.cpp -D__CPPCHECK__ -D__GNUC__ --report-progress
Checking lib/astutils.cpp ...
Checking lib/astutils.cpp: __CPPCHECK__=1;__GNUC__=1...
8:Tokenize (typedef):0
8:Tokenize (typedef):0
8:Tokenize (typedef):100
8:Tokenize (using):0
8:Tokenize (using):0
8:Tokenize (using):100
8:Tokenize (using):0
8:Tokenize (using):0
8:Tokenize (using):100
8:TemplateSimplifier::simplifyTemplateInstantiations():31
8:TemplateSimplifier::simplifyTemplateInstantiations():35
8:TemplateSimplifier::simplifyTemplateInstantiations():35
8:TemplateSimplifier::simplifyTemplateInstantiations():35
8:TemplateSimplifier::simplifyTemplateInstantiations():16
8:TemplateSimplifier::simplifyTemplateInstantiations():99
8:Tokenize (using):0
8:Tokenize (using):0
8:Tokenize (using):100
8:Tokenize (using):0
8:Tokenize (using):0
8:Tokenize (using):100
8:TemplateSimplifier::simplifyTemplateInstantiations():99
8:Tokenize (using):0
8:Tokenize (using):0
8:Tokenize (using):100
8:Tokenize (using):0
8:Tokenize (using):0
8:Tokenize (using):100
8:SymbolDatabase (find all scopes):0
8:SymbolDatabase (find all scopes):0
8:SymbolDatabase (find all scopes):100
9:ValueFlow:0
11:ValueFlow::valueFlowImpossibleValues(tokenlist, settings) 1:0
11:ValueFlow::valueFlowImpossibleValues(tokenlist, settings) 1:100
11:ValueFlow::valueFlowSymbolicOperators(symboldatabase, settings) 1:0
11:ValueFlow::valueFlowSymbolicOperators(symboldatabase, settings) 1:100
11:ValueFlow::valueFlowCondition(SymbolicConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 1:0
12:ValueFlow::valueFlowCondition(SymbolicConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 1:100
12:ValueFlow::valueFlowSymbolicInfer(symboldatabase, settings) 1:0
12:ValueFlow::valueFlowSymbolicInfer(symboldatabase, settings) 1:100
12:ValueFlow::valueFlowArrayBool(tokenlist, settings) 1:0
12:ValueFlow::valueFlowArrayBool(tokenlist, settings) 1:100
12:ValueFlow::valueFlowArrayElement(tokenlist, settings) 1:0
12:ValueFlow::valueFlowArrayElement(tokenlist, settings) 1:100
12:ValueFlow::valueFlowRightShift(tokenlist, settings) 1:0
12:ValueFlow::valueFlowRightShift(tokenlist, settings) 1:100
12:ValueFlow::valueFlowCondition(ContainerConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 1:0
12:ValueFlow::valueFlowCondition(ContainerConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 1:100
12:ValueFlow::valueFlowAfterAssign(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 1:0
14:ValueFlow::valueFlowAfterAssign(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 1:100
14:ValueFlow::valueFlowAfterSwap(tokenlist, symboldatabase, errorLogger, settings) 1:0
14:ValueFlow::valueFlowAfterSwap(tokenlist, symboldatabase, errorLogger, settings) 1:100
14:ValueFlow::valueFlowCondition(SimpleConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 1:0
2:ValueFlow::valueFlowCondition(SimpleConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 1:100
2:ValueFlow::valueFlowInferCondition(tokenlist, settings) 1:0
2:ValueFlow::valueFlowInferCondition(tokenlist, settings) 1:100
2:ValueFlow::valueFlowSwitchVariable(tokenlist, symboldatabase, errorLogger, settings) 1:0
2:ValueFlow::valueFlowSwitchVariable(tokenlist, symboldatabase, errorLogger, settings) 1:100
2:ValueFlow::valueFlowForLoop(tokenlist, symboldatabase, errorLogger, settings) 1:0
2:ValueFlow::valueFlowForLoop(tokenlist, symboldatabase, errorLogger, settings) 1:100
2:ValueFlow::valueFlowSubFunction(tokenlist, symboldatabase, errorLogger, settings) 1:0
3:ValueFlow::valueFlowSubFunction(tokenlist, symboldatabase, errorLogger, settings) 1:100
3:ValueFlow::valueFlowFunctionReturn(tokenlist, errorLogger, settings) 1:0
3:ValueFlow::valueFlowFunctionReturn(tokenlist, errorLogger, settings) 1:100
3:ValueFlow::valueFlowLifetime(tokenlist, errorLogger, settings) 1:0
3:ValueFlow::valueFlowLifetime(tokenlist, errorLogger, settings) 1:100
3:ValueFlow::valueFlowFunctionDefaultParameter(tokenlist, symboldatabase, errorLogger, settings) 1:0
3:ValueFlow::valueFlowFunctionDefaultParameter(tokenlist, symboldatabase, errorLogger, settings) 1:100
3:ValueFlow::valueFlowUninit(tokenlist, errorLogger, settings) 1:0
3:ValueFlow::valueFlowUninit(tokenlist, errorLogger, settings) 1:100
3:ValueFlow::valueFlowAfterMove(tokenlist, symboldatabase, errorLogger, settings) 1:0
3:ValueFlow::valueFlowAfterMove(tokenlist, symboldatabase, errorLogger, settings) 1:100
3:ValueFlow::valueFlowSmartPointer(tokenlist, errorLogger, settings) 1:0
3:ValueFlow::valueFlowSmartPointer(tokenlist, errorLogger, settings) 1:100
3:ValueFlow::valueFlowIterators(tokenlist, settings) 1:0
3:ValueFlow::valueFlowIterators(tokenlist, settings) 1:100
3:ValueFlow::valueFlowCondition(IteratorConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 1:0
3:ValueFlow::valueFlowCondition(IteratorConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 1:100
3:ValueFlow::valueFlowIteratorInfer(tokenlist, settings) 1:0
3:ValueFlow::valueFlowIteratorInfer(tokenlist, settings) 1:100
3:ValueFlow::valueFlowContainerSize(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 1:0
3:ValueFlow::valueFlowContainerSize(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 1:100
3:ValueFlow::valueFlowSafeFunctions(tokenlist, symboldatabase, errorLogger, settings) 1:0
3:ValueFlow::valueFlowSafeFunctions(tokenlist, symboldatabase, errorLogger, settings) 1:100
3:ValueFlow::valueFlowImpossibleValues(tokenlist, settings) 2:0
3:ValueFlow::valueFlowImpossibleValues(tokenlist, settings) 2:100
3:ValueFlow::valueFlowSymbolicOperators(symboldatabase, settings) 2:0
3:ValueFlow::valueFlowSymbolicOperators(symboldatabase, settings) 2:100
3:ValueFlow::valueFlowCondition(SymbolicConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 2:0
4:ValueFlow::valueFlowCondition(SymbolicConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 2:100
4:ValueFlow::valueFlowSymbolicInfer(symboldatabase, settings) 2:0
4:ValueFlow::valueFlowSymbolicInfer(symboldatabase, settings) 2:100
4:ValueFlow::valueFlowArrayBool(tokenlist, settings) 2:0
4:ValueFlow::valueFlowArrayBool(tokenlist, settings) 2:100
4:ValueFlow::valueFlowArrayElement(tokenlist, settings) 2:0
4:ValueFlow::valueFlowArrayElement(tokenlist, settings) 2:100
4:ValueFlow::valueFlowRightShift(tokenlist, settings) 2:0
4:ValueFlow::valueFlowRightShift(tokenlist, settings) 2:100
4:ValueFlow::valueFlowCondition(ContainerConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 2:0
4:ValueFlow::valueFlowCondition(ContainerConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 2:100
4:ValueFlow::valueFlowAfterAssign(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 2:0
6:ValueFlow::valueFlowAfterAssign(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 2:100
6:ValueFlow::valueFlowAfterSwap(tokenlist, symboldatabase, errorLogger, settings) 2:0
6:ValueFlow::valueFlowAfterSwap(tokenlist, symboldatabase, errorLogger, settings) 2:100
6:ValueFlow::valueFlowCondition(SimpleConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 2:0
10:ValueFlow::valueFlowCondition(SimpleConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 2:100
10:ValueFlow::valueFlowInferCondition(tokenlist, settings) 2:0
10:ValueFlow::valueFlowInferCondition(tokenlist, settings) 2:100
10:ValueFlow::valueFlowSwitchVariable(tokenlist, symboldatabase, errorLogger, settings) 2:0
10:ValueFlow::valueFlowSwitchVariable(tokenlist, symboldatabase, errorLogger, settings) 2:100
10:ValueFlow::valueFlowForLoop(tokenlist, symboldatabase, errorLogger, settings) 2:0
10:ValueFlow::valueFlowForLoop(tokenlist, symboldatabase, errorLogger, settings) 2:100
10:ValueFlow::valueFlowSubFunction(tokenlist, symboldatabase, errorLogger, settings) 2:0
11:ValueFlow::valueFlowSubFunction(tokenlist, symboldatabase, errorLogger, settings) 2:100
11:ValueFlow::valueFlowFunctionReturn(tokenlist, errorLogger, settings) 2:0
11:ValueFlow::valueFlowFunctionReturn(tokenlist, errorLogger, settings) 2:100
11:ValueFlow::valueFlowLifetime(tokenlist, errorLogger, settings) 2:0
11:ValueFlow::valueFlowLifetime(tokenlist, errorLogger, settings) 2:100
11:ValueFlow::valueFlowFunctionDefaultParameter(tokenlist, symboldatabase, errorLogger, settings) 2:0
11:ValueFlow::valueFlowFunctionDefaultParameter(tokenlist, symboldatabase, errorLogger, settings) 2:100
11:ValueFlow::valueFlowUninit(tokenlist, errorLogger, settings) 2:0
11:ValueFlow::valueFlowUninit(tokenlist, errorLogger, settings) 2:100
11:ValueFlow::valueFlowAfterMove(tokenlist, symboldatabase, errorLogger, settings) 2:0
11:ValueFlow::valueFlowAfterMove(tokenlist, symboldatabase, errorLogger, settings) 2:100
11:ValueFlow::valueFlowSmartPointer(tokenlist, errorLogger, settings) 2:0
11:ValueFlow::valueFlowSmartPointer(tokenlist, errorLogger, settings) 2:100
11:ValueFlow::valueFlowIterators(tokenlist, settings) 2:0
11:ValueFlow::valueFlowIterators(tokenlist, settings) 2:100
11:ValueFlow::valueFlowCondition(IteratorConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 2:0
11:ValueFlow::valueFlowCondition(IteratorConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 2:100
11:ValueFlow::valueFlowIteratorInfer(tokenlist, settings) 2:0
11:ValueFlow::valueFlowIteratorInfer(tokenlist, settings) 2:100
11:ValueFlow::valueFlowContainerSize(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 2:0
11:ValueFlow::valueFlowContainerSize(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 2:100
11:ValueFlow::valueFlowSafeFunctions(tokenlist, symboldatabase, errorLogger, settings) 2:0
11:ValueFlow::valueFlowSafeFunctions(tokenlist, symboldatabase, errorLogger, settings) 2:100
11:ValueFlow::valueFlowImpossibleValues(tokenlist, settings) 3:0
11:ValueFlow::valueFlowImpossibleValues(tokenlist, settings) 3:100
11:ValueFlow::valueFlowSymbolicOperators(symboldatabase, settings) 3:0
11:ValueFlow::valueFlowSymbolicOperators(symboldatabase, settings) 3:100
11:ValueFlow::valueFlowCondition(SymbolicConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 3:0
12:ValueFlow::valueFlowCondition(SymbolicConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 3:100
12:ValueFlow::valueFlowSymbolicInfer(symboldatabase, settings) 3:0
12:ValueFlow::valueFlowSymbolicInfer(symboldatabase, settings) 3:100
12:ValueFlow::valueFlowArrayBool(tokenlist, settings) 3:0
12:ValueFlow::valueFlowArrayBool(tokenlist, settings) 3:100
12:ValueFlow::valueFlowArrayElement(tokenlist, settings) 3:0
12:ValueFlow::valueFlowArrayElement(tokenlist, settings) 3:100
12:ValueFlow::valueFlowRightShift(tokenlist, settings) 3:0
12:ValueFlow::valueFlowRightShift(tokenlist, settings) 3:100
12:ValueFlow::valueFlowCondition(ContainerConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 3:0
12:ValueFlow::valueFlowCondition(ContainerConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 3:100
12:ValueFlow::valueFlowAfterAssign(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 3:0
14:ValueFlow::valueFlowAfterAssign(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 3:100
14:ValueFlow::valueFlowAfterSwap(tokenlist, symboldatabase, errorLogger, settings) 3:0
14:ValueFlow::valueFlowAfterSwap(tokenlist, symboldatabase, errorLogger, settings) 3:100
14:ValueFlow::valueFlowCondition(SimpleConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 3:0
2:ValueFlow::valueFlowCondition(SimpleConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 3:100
2:ValueFlow::valueFlowInferCondition(tokenlist, settings) 3:0
2:ValueFlow::valueFlowInferCondition(tokenlist, settings) 3:100
2:ValueFlow::valueFlowSwitchVariable(tokenlist, symboldatabase, errorLogger, settings) 3:0
2:ValueFlow::valueFlowSwitchVariable(tokenlist, symboldatabase, errorLogger, settings) 3:100
2:ValueFlow::valueFlowForLoop(tokenlist, symboldatabase, errorLogger, settings) 3:0
2:ValueFlow::valueFlowForLoop(tokenlist, symboldatabase, errorLogger, settings) 3:100
2:ValueFlow::valueFlowSubFunction(tokenlist, symboldatabase, errorLogger, settings) 3:0
3:ValueFlow::valueFlowSubFunction(tokenlist, symboldatabase, errorLogger, settings) 3:100
3:ValueFlow::valueFlowFunctionReturn(tokenlist, errorLogger, settings) 3:0
3:ValueFlow::valueFlowFunctionReturn(tokenlist, errorLogger, settings) 3:100
3:ValueFlow::valueFlowLifetime(tokenlist, errorLogger, settings) 3:0
3:ValueFlow::valueFlowLifetime(tokenlist, errorLogger, settings) 3:100
3:ValueFlow::valueFlowFunctionDefaultParameter(tokenlist, symboldatabase, errorLogger, settings) 3:0
3:ValueFlow::valueFlowFunctionDefaultParameter(tokenlist, symboldatabase, errorLogger, settings) 3:100
3:ValueFlow::valueFlowUninit(tokenlist, errorLogger, settings) 3:0
3:ValueFlow::valueFlowUninit(tokenlist, errorLogger, settings) 3:100
3:ValueFlow::valueFlowAfterMove(tokenlist, symboldatabase, errorLogger, settings) 3:0
3:ValueFlow::valueFlowAfterMove(tokenlist, symboldatabase, errorLogger, settings) 3:100
3:ValueFlow::valueFlowSmartPointer(tokenlist, errorLogger, settings) 3:0
3:ValueFlow::valueFlowSmartPointer(tokenlist, errorLogger, settings) 3:100
3:ValueFlow::valueFlowIterators(tokenlist, settings) 3:0
3:ValueFlow::valueFlowIterators(tokenlist, settings) 3:100
3:ValueFlow::valueFlowCondition(IteratorConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 3:0
3:ValueFlow::valueFlowCondition(IteratorConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 3:100
3:ValueFlow::valueFlowIteratorInfer(tokenlist, settings) 3:0
3:ValueFlow::valueFlowIteratorInfer(tokenlist, settings) 3:100
3:ValueFlow::valueFlowContainerSize(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 3:0
3:ValueFlow::valueFlowContainerSize(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions) 3:100
3:ValueFlow::valueFlowSafeFunctions(tokenlist, symboldatabase, errorLogger, settings) 3:0
3:ValueFlow::valueFlowSafeFunctions(tokenlist, symboldatabase, errorLogger, settings) 3:100
3:ValueFlow:100
3:Run checkers:0
3:Run checkers:100
3:addon:premiumaddon.json:0
3:addon:premiumaddon.json:100
5:addon:premiumaddon.json (ctu):0
5:addon:premiumaddon.json (ctu):100
nofile:0:0: information: Active checkers: 79/980 (use --checkers-report=<filename> to see details) [checkersReport]

real    0m29,223s
user    0m29,191s
sys     0m0,032s

@sonarqubecloud
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments