tag 1099986 + help
thanks

Update:

I've been unable to reproduce the crash on platti (testing and sid).

In testing the autopkgtest fails since the upload of gcc-14 14.2.0-14:
https://ci.debian.net/packages/c/cppcheck/testing/ppc64el/
For sid there is less data, but a matching date range:
https://ci.debian.net/packages/c/cppcheck/unstable/ppc64el/

With the help of Antonio Terceiro I was able to extract a stacktrace from the
crash in the autopkgtest environment (full stacktrace attached):

#0 0x000000010d81e9e4 in std::__cxx11::_List_base<...>::_M_clear (this=0x7ffff20ba358) at /usr/include/c++/14/bits/list.tcc:74 #1 std::__cxx11::_List_base<...>::~_List_base (this=0x7ffff20ba358, __in_chrg=<optimized out>) at /usr/include/c++/14/bits/stl_list.h:576 #2 std::__cxx11::list<...>::~list (this=0x7ffff20ba358, __in_chrg=<optimized out>) at /usr/include/c++/14/bits/stl_list.h:904 #3 ValueFlow::Value::~Value (this=0x7ffff20ba310, __in_chrg=<optimized out>) at ./lib/vfvalue.h:43 #4 0x000000010ddd85ac in TestValueFlow::valueFlowCrash (this=this@entry=0x137c95460) at ./test/testvalueflow.cpp:7386 #5 0x000000010ddded70 in TestValueFlow::run (this=0x137c95460) at ./test/testvalueflow.cpp:148 #6 0x000000010d149718 in TestFixture::run (this=this@entry=0x137c95460, str="") at ./test/fixture.cpp:355
#7  0x000000010d149ef8 in TestFixture::runTests (args=...) at 
./test/fixture.cpp:395
#8 0x000000010d12d70c in main (argc=<optimized out>, argv=<optimized out>) at ./test/main.cpp:42

But I have no idea how to proceed from here.

For completeness: I've also run the test suite with valgrind. There is a
repeated report about "conditional jump or move depends on uninitialized
value(s)". The location is lib/vfvalue.h:163, but as far as I can see that
member is always initialized from lib/vfvalue.h:317. The reports occur before
and after the crash location, but I don't see any direct connection.

Note for debugging: the test case is build/bin/testrunner. The number of tests
can be reduced by replacing the GLOB for srcs at the top of
tests/CMakeLists.txt with

set(srcs "testvalueflow.cpp;fixture.cpp;helpers.cpp;main.cpp;options.cpp")

(Used for valgrind with higher --num-callers value, I did not verify whether
that still triggers the crash in the autopkgtest environment.)
#0  0x000000010d81e9e4 in std::__cxx11::_List_base<std::pair<Token const*, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
>, std::allocator<std::pair<Token const*, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > > > >::_M_clear 
(this=0x7ffff20ba358) at /usr/include/c++/14/bits/list.tcc:74
        __tmp = 0x0
        __val = <optimized out>
        __cur = 0x0
#1  std::__cxx11::_List_base<std::pair<Token const*, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
>, std::allocator<std::pair<Token const*, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > > > >::~_List_base 
(this=0x7ffff20ba358, __in_chrg=<optimized out>) at 
/usr/include/c++/14/bits/stl_list.h:576
No locals.
#2  std::__cxx11::list<std::pair<Token const*, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > >, 
std::allocator<std::pair<Token const*, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > > > >::~list 
(this=0x7ffff20ba358, __in_chrg=<optimized out>) at 
/usr/include/c++/14/bits/stl_list.h:904
No locals.
#3  ValueFlow::Value::~Value (this=0x7ffff20ba310, __in_chrg=<optimized out>) 
at ./lib/vfvalue.h:43
No locals.
#4  0x000000010ddd85ac in TestValueFlow::valueFlowCrash 
(this=this@entry=0x137c95460) at ./test/testvalueflow.cpp:7386
        code = 0x10e567ff0 "void f(int x) {\n    if (0 * (x > 2)) {}\n}\n"
#5  0x000000010ddded70 in TestValueFlow::run (this=0x137c95460) at 
./test/testvalueflow.cpp:148
        cfg = "<?xml version=\"1.0\"?>\n<def>\n  <function name=\"strcpy\"> 
<arg nr=\"1\"><not-null/></arg> </function>\n  <function name=\"abort\"> 
<noreturn>true</noreturn> </function>\n</def>"
#6  0x000000010d149718 in TestFixture::run (this=this@entry=0x137c95460, 
str="") at ./test/fixture.cpp:355
No locals.
#7  0x000000010d149ef8 in TestFixture::runTests (args=...) at 
./test/fixture.cpp:395
        fixture = 0x137c95460
        test = <optimized out>
        __for_range = std::set with 80 elements = {[0] = 0x10e8725f0 
<(anonymous namespace)::instance_Test64BitPortability>, [1] = 0x10e872640 
<(anonymous namespace)::instance_TestAnalyzerInformation>, [2] = 0x10e872690 
<(anonymous namespace)::instance_TestAssert>, [3] = 0x10e8726e0 <(anonymous 
namespace)::instance_TestAstUtils>, [4] = 0x10e872730 <(anonymous 
namespace)::instance_TestAutoVariables>, [5] = 0x10e872780 <(anonymous 
namespace)::instance_TestBool>, [6] = 0x10e8727d0 <(anonymous 
namespace)::instance_TestBufferOverrun>, [7] = 0x10e872820 <(anonymous 
namespace)::instance_TestCharVar>, [8] = 0x10e872870 <(anonymous 
namespace)::instance_TestCheck>, [9] = 0x10e8728c0 <(anonymous 
namespace)::instance_TestClangImport>, [10] = 0x10e872938 <(anonymous 
namespace)::instance_TestClass>, [11] = 0x10e872988 <(anonymous 
namespace)::instance_TestCmdlineParser>, [12] = 0x10e8729d8 <(anonymous 
namespace)::instance_TestColor>, [13] = 0x10e872a28 <(anonymous 
namespace)::instance_TestCondition>, [14] = 0x10e872a78 <(anonymous 
namespace)::instance_TestConstructors>, [15] = 0x10e872ac8 <(anonymous 
namespace)::instance_TestCppcheck>, [16] = 0x10e872b18 <(anonymous 
namespace)::instance_TestErrorLogger>, [17] = 0x10e872b68 <(anonymous 
namespace)::instance_TestExceptionSafety>, [18] = 0x10e872bb8 <(anonymous 
namespace)::instance_TestFileLister>, [19] = 0x10e872c08 <(anonymous 
namespace)::instance_TestFileSettings>, [20] = 0x10e872c58 <(anonymous 
namespace)::instance_TestFunctions>, [21] = 0x10e872ca8 <(anonymous 
namespace)::instance_TestGarbage>, [22] = 0x10e872db8 <(anonymous 
namespace)::instance_TestIO>, [23] = 0x10e872cf8 <(anonymous 
namespace)::instance_TestImportProject>, [24] = 0x10e872d48 <(anonymous 
namespace)::instance_TestIncompleteStatement>, [25] = 0x10e872e08 <(anonymous 
namespace)::instance_TestLeakAutoVar>, [26] = 0x10e872ec8 <(anonymous 
namespace)::instance_TestLeakAutoVarPosix>, [27] = 0x10e872e38 <(anonymous 
namespace)::instance_TestLeakAutoVarRecursiveCountLimit>, [28] = 0x10e872e68 
<(anonymous namespace)::instance_TestLeakAutoVarStrcpy>, [29] = 0x10e872e98 
<(anonymous namespace)::instance_TestLeakAutoVarWindows>, [30] = 0x10e872f18 
<(anonymous namespace)::instance_TestLibrary>, [31] = 0x10e872f68 <(anonymous 
namespace)::instance_TestMathLib>, [32] = 0x10e872fb8 <(anonymous 
namespace)::instance_TestMemleak>, [33] = 0x10e873018 <(anonymous 
namespace)::instance_TestMemleakInClass>, [34] = 0x10e872fe8 <(anonymous 
namespace)::instance_TestMemleakInFunction>, [35] = 0x10e873078 <(anonymous 
namespace)::instance_TestMemleakNoVar>, [36] = 0x10e873048 <(anonymous 
namespace)::instance_TestMemleakStructMember>, [37] = 0x10e8730c8 <(anonymous 
namespace)::instance_TestNullPointer>, [38] = 0x10e873118 <(anonymous 
namespace)::instance_TestOptions>, [39] = 0x10e873168 <(anonymous 
namespace)::instance_TestOther>, [40] = 0x10e8731b8 <(anonymous 
namespace)::instance_TestPath>, [41] = 0x10e873208 <(anonymous 
namespace)::instance_TestPathMatch>, [42] = 0x10e873258 <(anonymous 
namespace)::instance_TestPlatform>, [43] = 0x10e8732a8 <(anonymous 
namespace)::instance_TestPostfixOperator>, [44] = 0x10e8732f8 <(anonymous 
namespace)::instance_TestPreprocessor>, [45] = 0x10e873378 <(anonymous 
namespace)::instance_TestProcessExecutorFS>, [46] = 0x10e873348 <(anonymous 
namespace)::instance_TestProcessExecutorFiles>, [47] = 0x10e8733c8 <(anonymous 
namespace)::instance_TestProgramMemory>, [48] = 0x10e873418 <(anonymous 
namespace)::instance_TestSettings>, [49] = 0x10e873468 <(anonymous 
namespace)::instance_TestSimplifyTemplate>, [50] = 0x10e8734b8 <(anonymous 
namespace)::instance_TestSimplifyTokens>, [51] = 0x10e873508 <(anonymous 
namespace)::instance_TestSimplifyTypedef>, [52] = 0x10e873558 <(anonymous 
namespace)::instance_TestSimplifyUsing>, [53] = 0x10e8735d8 <(anonymous 
namespace)::instance_TestSingleExecutorFS>, [54] = 0x10e8735a8 <(anonymous 
namespace)::instance_TestSingleExecutorFiles>, [55] = 0x10e873628 <(anonymous 
namespace)::instance_TestSizeof>, [56] = 0x10e873678 <(anonymous 
namespace)::instance_TestStandards>, [57] = 0x10e8736c8 <(anonymous 
namespace)::instance_TestStl>, [58] = 0x10e873718 <(anonymous 
namespace)::instance_TestString>, [59] = 0x10e873768 <(anonymous 
namespace)::instance_TestSummaries>, [60] = 0x10e8737b8 <(anonymous 
namespace)::instance_TestSuppressions>, [61] = 0x10e873808 <(anonymous 
namespace)::instance_TestSymbolDatabase>, [62] = 0x10e8739a0 <(anonymous 
namespace)::instance_TestThreadExecutorFS>, [63] = 0x10e873970 <(anonymous 
namespace)::instance_TestThreadExecutorFiles>, [64] = 0x10e8739f0 <(anonymous 
namespace)::instance_TestTimer>, [65] = 0x10e873ae8 <(anonymous 
namespace)::instance_TestToken>, [66] = 0x10e873bb8 <(anonymous 
namespace)::instance_TestTokenList>, [67] = 0x10e873c08 <(anonymous 
namespace)::instance_TestTokenRange>, [68] = 0x10e873b38 <(anonymous 
namespace)::instance_TestTokenizer>, [69] = 0x10e873b68 <(anonymous 
namespace)::instance_TestTokenizerCompileLimits>, [70] = 0x10e873c58 
<(anonymous namespace)::instance_TestType>, [71] = 0x10e873ca8 <(anonymous 
namespace)::instance_TestUninitVar>, [72] = 0x10e873cf8 <(anonymous 
namespace)::instance_TestUnusedFunctions>, [73] = 0x10e873d48 <(anonymous 
namespace)::instance_TestUnusedPrivateFunction>, [74] = 0x10e873d98 <(anonymous 
namespace)::instance_TestUnusedVar>, [75] = 0x10e873e90 <(anonymous 
namespace)::instance_TestUtils>, [76] = 0x10e873ee0 <(anonymous 
namespace)::instance_TestVaarg>, [77] = 0x10e873f30 <(anonymous 
namespace)::instance_TestValueFlow>, [78] = 0x10e873fd0 <(anonymous 
namespace)::instance_TestValueFlowValue>, [79] = 0x10e873f80 <(anonymous 
namespace)::instance_TestVarID>}
        __for_begin = <optimized out>
        __for_end = <optimized out>
        testname = ""
        classname = ""
        __for_range = std::set with 1 element = {[0] = ""}
        __for_begin = <optimized out>
        __for_end = <optimized out>
#8  0x000000010d12d70c in main (argc=<optimized out>, argv=<optimized out>) at 
./test/main.cpp:42
        args = {mWhichTests = std::set with 1 element = {[0] = ""}, mQuiet = 
false, mHelp = false, mSummary = true, mDryRun = false, mExe = 
"build/bin/testrunner"}
        failedTestsCount = <optimized out>
==1822363== Memcheck, a memory error detector
==1822363== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al.
==1822363== Using Valgrind-3.24.0 and LibVEX; rerun with -h for copyright info
==1822363== Command: build/bin/testrunner
==1822363== 
TestValueFlow::valueFlowCrashIncompleteCode
==1822363== Conditional jump or move depends on uninitialised value(s)
==1822363==    at 0x27E104: operator==<ValueFlow::Value, 
std::allocator<ValueFlow::Value> > (stl_list.h:2135)
==1822363==    by 0x27E104: operator!=<ValueFlow::Value, 
std::allocator<ValueFlow::Value> > (stl_list.h:2188)
==1822363==    by 0x27E104: ConditionHandler::beforeCondition(TokenList&, 
SymbolDatabase const&, ErrorLogger&, Settings const&, std::set<Scope const*, 
std::less<Scope const*>, std::allocator<Scope const*> > const&) 
const::{lambda(ConditionHandler::Condition const&, Token*, Scope 
const*)#1}::operator()(ConditionHandler::Condition const&, Token*, Scope 
const*) const [clone .isra.0] (valueflow.cpp:4432)
==1822363==    by 0x271F9F: operator() (std_function.h:591)
==1822363==    by 0x271F9F: ConditionHandler::traverseCondition(SymbolDatabase 
const&, Settings const&, std::set<Scope const*, std::less<Scope const*>, 
std::allocator<Scope const*> > const&, std::function<void 
(ConditionHandler::Condition const&, Token*, Scope const*)> const&) const 
(valueflow.cpp:4383)
==1822363==    by 0x22B493: beforeCondition (valueflow.cpp:4394)
==1822363==    by 0x22B493: valueFlowCondition(ValuePtr<ConditionHandler> 
const&, TokenList&, SymbolDatabase&, ErrorLogger&, Settings const&, 
std::set<Scope const*, std::less<Scope const*>, std::allocator<Scope const*> > 
const&) (valueflow.cpp:4876)
==1822363==    by 0x22B953: operator() (valueflow.cpp:7280)
==1822363==    by 0x22B953: 
ValueFlowPassAdaptor<ValueFlow::setValues(TokenList&, SymbolDatabase&, 
ErrorLogger&, Settings const&, TimerResultsIntf*)::{lambda(TokenList&, 
SymbolDatabase&, ErrorLogger&, Settings const&, std::set<Scope const*, 
std::less<Scope const*>, std::allocator<Scope const*> > 
const&)#25}>::run(ValueFlowState const&) const (valueflow.cpp:7197)
==1822363==    by 0x24D973: run (valueflow.cpp:7125)
==1822363==    by 0x24D973: operator() (valueflow.cpp:7092)
==1822363==    by 0x24D973: operator()<const ValuePtr<ValueFlowPass>*> 
(predefined_ops.h:318)
==1822363==    by 0x24D973: __find_if<const ValuePtr<ValueFlowPass>*, 
__gnu_cxx::__ops::_Iter_pred<ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass>
 >) const::<lambda(const ValuePtr<ValueFlowPass>&)> > > (stl_algobase.h:2115)
==1822363==    by 0x24D973: __find_if<const ValuePtr<ValueFlowPass>*, 
__gnu_cxx::__ops::_Iter_pred<ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass>
 >) const::<lambda(const ValuePtr<ValueFlowPass>&)> > > (stl_algobase.h:2152)
==1822363==    by 0x24D973: find_if<const ValuePtr<ValueFlowPass>*, 
ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass> >) 
const::<lambda(const ValuePtr<ValueFlowPass>&)> > (stl_algo.h:3876)
==1822363==    by 0x24D973: none_of<const ValuePtr<ValueFlowPass>*, 
ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass> >) 
const::<lambda(const ValuePtr<ValueFlowPass>&)> > (stl_algo.h:429)
==1822363==    by 0x24D973: any_of<const ValuePtr<ValueFlowPass>*, 
ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass> >) 
const::<lambda(const ValuePtr<ValueFlowPass>&)> > (stl_algo.h:448)
==1822363==    by 0x24D973: run (valueflow.cpp:7091)
==1822363==    by 0x24D973: ValueFlow::setValues(TokenList&, SymbolDatabase&, 
ErrorLogger&, Settings const&, TimerResultsIntf*) (valueflow.cpp:7268)
==1822363==    by 0x2888EB: operator() (tokenize.cpp:3414)
==1822363==    by 0x2888EB: __invoke_impl<void, 
Tokenizer::simplifyTokens1(const std::string&)::<lambda()>&> (invoke.h:61)
==1822363==    by 0x2888EB: __invoke_r<void, Tokenizer::simplifyTokens1(const 
std::string&)::<lambda()>&> (invoke.h:150)
==1822363==    by 0x2888EB: std::_Function_handler<void (), 
Tokenizer::simplifyTokens1(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > 
const&)::{lambda()#4}>::_M_invoke(std::_Any_data const&) (std_function.h:290)
==1822363==    by 0x2F39AF: operator() (std_function.h:591)
==1822363==    by 0x2F39AF: run (timer.h:86)
==1822363==    by 0x2F39AF: 
Tokenizer::simplifyTokens1(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&) (tokenize.cpp:3413)
==1822363==    by 0x1C46DF: 
SimpleTokenizer::tokenize(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, bool, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) (helpers.h:100)
==1822363==    by 0x1CFF77: TestValueFlow::tokenValues_[abi:cxx11](char const*, 
int, char const*, char const*, Settings const*, bool) (testvalueflow.cpp:499)
==1822363==    by 0x1D1F23: valueOfTok_ (testvalueflow.cpp:533)
==1822363==    by 0x1D1F23: TestValueFlow::valueFlowCrashIncompleteCode() 
(testvalueflow.cpp:7346)
==1822363==    by 0x1D4727: TestValueFlow::run() (testvalueflow.cpp:148)
==1822363==    by 0x1D6CB7: TestFixture::run(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&) (fixture.cpp:355)
==1822363==    by 0x1D7497: TestFixture::runTests(options const&) 
(fixture.cpp:395)
==1822363==    by 0x1AC28B: main (main.cpp:42)
==1822363== 
TestValueFlow::valueFlowCrash
==1822363== Conditional jump or move depends on uninitialised value(s)
==1822363==    at 0x27E104: operator==<ValueFlow::Value, 
std::allocator<ValueFlow::Value> > (stl_list.h:2135)
==1822363==    by 0x27E104: operator!=<ValueFlow::Value, 
std::allocator<ValueFlow::Value> > (stl_list.h:2188)
==1822363==    by 0x27E104: ConditionHandler::beforeCondition(TokenList&, 
SymbolDatabase const&, ErrorLogger&, Settings const&, std::set<Scope const*, 
std::less<Scope const*>, std::allocator<Scope const*> > const&) 
const::{lambda(ConditionHandler::Condition const&, Token*, Scope 
const*)#1}::operator()(ConditionHandler::Condition const&, Token*, Scope 
const*) const [clone .isra.0] (valueflow.cpp:4432)
==1822363==    by 0x271F9F: operator() (std_function.h:591)
==1822363==    by 0x271F9F: ConditionHandler::traverseCondition(SymbolDatabase 
const&, Settings const&, std::set<Scope const*, std::less<Scope const*>, 
std::allocator<Scope const*> > const&, std::function<void 
(ConditionHandler::Condition const&, Token*, Scope const*)> const&) const 
(valueflow.cpp:4383)
==1822363==    by 0x22B493: beforeCondition (valueflow.cpp:4394)
==1822363==    by 0x22B493: valueFlowCondition(ValuePtr<ConditionHandler> 
const&, TokenList&, SymbolDatabase&, ErrorLogger&, Settings const&, 
std::set<Scope const*, std::less<Scope const*>, std::allocator<Scope const*> > 
const&) (valueflow.cpp:4876)
==1822363==    by 0x22BBC3: operator() (valueflow.cpp:7276)
==1822363==    by 0x22BBC3: 
ValueFlowPassAdaptor<ValueFlow::setValues(TokenList&, SymbolDatabase&, 
ErrorLogger&, Settings const&, TimerResultsIntf*)::{lambda(TokenList&, 
SymbolDatabase&, ErrorLogger&, Settings const&, std::set<Scope const*, 
std::less<Scope const*>, std::allocator<Scope const*> > 
const&)#22}>::run(ValueFlowState const&) const (valueflow.cpp:7197)
==1822363==    by 0x24D993: run (valueflow.cpp:7125)
==1822363==    by 0x24D993: operator() (valueflow.cpp:7092)
==1822363==    by 0x24D993: operator()<const ValuePtr<ValueFlowPass>*> 
(predefined_ops.h:318)
==1822363==    by 0x24D993: __find_if<const ValuePtr<ValueFlowPass>*, 
__gnu_cxx::__ops::_Iter_pred<ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass>
 >) const::<lambda(const ValuePtr<ValueFlowPass>&)> > > (stl_algobase.h:2119)
==1822363==    by 0x24D993: __find_if<const ValuePtr<ValueFlowPass>*, 
__gnu_cxx::__ops::_Iter_pred<ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass>
 >) const::<lambda(const ValuePtr<ValueFlowPass>&)> > > (stl_algobase.h:2152)
==1822363==    by 0x24D993: find_if<const ValuePtr<ValueFlowPass>*, 
ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass> >) 
const::<lambda(const ValuePtr<ValueFlowPass>&)> > (stl_algo.h:3876)
==1822363==    by 0x24D993: none_of<const ValuePtr<ValueFlowPass>*, 
ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass> >) 
const::<lambda(const ValuePtr<ValueFlowPass>&)> > (stl_algo.h:429)
==1822363==    by 0x24D993: any_of<const ValuePtr<ValueFlowPass>*, 
ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass> >) 
const::<lambda(const ValuePtr<ValueFlowPass>&)> > (stl_algo.h:448)
==1822363==    by 0x24D993: run (valueflow.cpp:7091)
==1822363==    by 0x24D993: ValueFlow::setValues(TokenList&, SymbolDatabase&, 
ErrorLogger&, Settings const&, TimerResultsIntf*) (valueflow.cpp:7268)
==1822363==    by 0x2888EB: operator() (tokenize.cpp:3414)
==1822363==    by 0x2888EB: __invoke_impl<void, 
Tokenizer::simplifyTokens1(const std::string&)::<lambda()>&> (invoke.h:61)
==1822363==    by 0x2888EB: __invoke_r<void, Tokenizer::simplifyTokens1(const 
std::string&)::<lambda()>&> (invoke.h:150)
==1822363==    by 0x2888EB: std::_Function_handler<void (), 
Tokenizer::simplifyTokens1(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > 
const&)::{lambda()#4}>::_M_invoke(std::_Any_data const&) (std_function.h:290)
==1822363==    by 0x2F39AF: operator() (std_function.h:591)
==1822363==    by 0x2F39AF: run (timer.h:86)
==1822363==    by 0x2F39AF: 
Tokenizer::simplifyTokens1(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&) (tokenize.cpp:3413)
==1822363==    by 0x1C46DF: 
SimpleTokenizer::tokenize(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, bool, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) (helpers.h:100)
==1822363==    by 0x1CFF77: TestValueFlow::tokenValues_[abi:cxx11](char const*, 
int, char const*, char const*, Settings const*, bool) (testvalueflow.cpp:499)
==1822363==    by 0x1D023B: TestValueFlow::valueOfTok_(char const*, int, char 
const*, char const*, Settings const*, bool) (testvalueflow.cpp:533)
==1822363==    by 0x1D0667: TestValueFlow::valueFlowCrash() 
(testvalueflow.cpp:7453)
==1822363==    by 0x1D4763: TestValueFlow::run() (testvalueflow.cpp:150)
==1822363==    by 0x1D6CB7: TestFixture::run(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&) (fixture.cpp:355)
==1822363==    by 0x1D7497: TestFixture::runTests(options const&) 
(fixture.cpp:395)
==1822363==    by 0x1AC28B: main (main.cpp:42)
==1822363== 
==1822363== Conditional jump or move depends on uninitialised value(s)
==1822363==    at 0x2712EC: operator== (vfvalue.h:163)
==1822363==    by 0x2712EC: 
operator()<std::_List_const_iterator<ValueFlow::Value> > (predefined_ops.h:270)
==1822363==    by 0x2712EC: 
__find_if<std::_List_const_iterator<ValueFlow::Value>, 
__gnu_cxx::__ops::_Iter_equals_val<const ValueFlow::Value> > 
(stl_algobase.h:2090)
==1822363==    by 0x2712EC: 
__find_if<std::_List_const_iterator<ValueFlow::Value>, 
__gnu_cxx::__ops::_Iter_equals_val<const ValueFlow::Value> > 
(stl_algobase.h:2152)
==1822363==    by 0x2712EC: std::_List_const_iterator<ValueFlow::Value> 
std::find<std::_List_const_iterator<ValueFlow::Value>, 
ValueFlow::Value>(std::_List_const_iterator<ValueFlow::Value>, 
std::_List_const_iterator<ValueFlow::Value>, ValueFlow::Value const&) 
(stl_algo.h:3850)
==1822363==    by 0x68BBA7: ValueFlow::setTokenValue(Token*, ValueFlow::Value, 
Settings const&, SourceLocation) (vf_settokenvalue.cpp:402)
==1822363==    by 0x68834F: ValueFlow::setTokenValue(Token*, ValueFlow::Value, 
Settings const&, SourceLocation) (vf_settokenvalue.cpp:387)
==1822363==    by 0x688837: ValueFlow::setTokenValue(Token*, ValueFlow::Value, 
Settings const&, SourceLocation) (vf_settokenvalue.cpp:438)
==1822363==    by 0x68AC8F: ValueFlow::setTokenValue(Token*, ValueFlow::Value, 
Settings const&, SourceLocation) (vf_settokenvalue.cpp:551)
==1822363==    by 0x6794E7: ValueFlowAnalyzer::update(Token*, Analyzer::Action, 
Analyzer::Direction) (vf_analyzers.cpp:767)
==1822363==    by 0x549D5B: update (forwardanalyzer.cpp:238)
==1822363==    by 0x549D5B: operator() (forwardanalyzer.cpp:258)
==1822363==    by 0x549D5B: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:171)
==1822363==    by 0x54A5D7: traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:193)
==1822363==    by 0x54A5D7: traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:191)
==1822363==    by 0x54A5D7: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:191)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363== 
==1822363== Conditional jump or move depends on uninitialised value(s)
==1822363==    at 0x2712EC: operator== (vfvalue.h:163)
==1822363==    by 0x2712EC: 
operator()<std::_List_const_iterator<ValueFlow::Value> > (predefined_ops.h:270)
==1822363==    by 0x2712EC: 
__find_if<std::_List_const_iterator<ValueFlow::Value>, 
__gnu_cxx::__ops::_Iter_equals_val<const ValueFlow::Value> > 
(stl_algobase.h:2090)
==1822363==    by 0x2712EC: 
__find_if<std::_List_const_iterator<ValueFlow::Value>, 
__gnu_cxx::__ops::_Iter_equals_val<const ValueFlow::Value> > 
(stl_algobase.h:2152)
==1822363==    by 0x2712EC: std::_List_const_iterator<ValueFlow::Value> 
std::find<std::_List_const_iterator<ValueFlow::Value>, 
ValueFlow::Value>(std::_List_const_iterator<ValueFlow::Value>, 
std::_List_const_iterator<ValueFlow::Value>, ValueFlow::Value const&) 
(stl_algo.h:3850)
==1822363==    by 0x68BBA7: ValueFlow::setTokenValue(Token*, ValueFlow::Value, 
Settings const&, SourceLocation) (vf_settokenvalue.cpp:402)
==1822363==    by 0x68834F: ValueFlow::setTokenValue(Token*, ValueFlow::Value, 
Settings const&, SourceLocation) (vf_settokenvalue.cpp:387)
==1822363==    by 0x68BBFB: ValueFlow::setTokenValue(Token*, ValueFlow::Value, 
Settings const&, SourceLocation) (vf_settokenvalue.cpp:403)
==1822363==    by 0x68834F: ValueFlow::setTokenValue(Token*, ValueFlow::Value, 
Settings const&, SourceLocation) (vf_settokenvalue.cpp:387)
==1822363==    by 0x688837: ValueFlow::setTokenValue(Token*, ValueFlow::Value, 
Settings const&, SourceLocation) (vf_settokenvalue.cpp:438)
==1822363==    by 0x68AC8F: ValueFlow::setTokenValue(Token*, ValueFlow::Value, 
Settings const&, SourceLocation) (vf_settokenvalue.cpp:551)
==1822363==    by 0x6794E7: ValueFlowAnalyzer::update(Token*, Analyzer::Action, 
Analyzer::Direction) (vf_analyzers.cpp:767)
==1822363==    by 0x549D5B: update (forwardanalyzer.cpp:238)
==1822363==    by 0x549D5B: operator() (forwardanalyzer.cpp:258)
==1822363==    by 0x549D5B: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:171)
==1822363==    by 0x54A5D7: traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:193)
==1822363==    by 0x54A5D7: traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:191)
==1822363==    by 0x54A5D7: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:191)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363==    by 0x54A02F: traverseConditional<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::<lambda(Token*)> > 
(forwardanalyzer.cpp:220)
==1822363==    by 0x54A02F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseTok<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, Token**) [clone .constprop.0] (forwardanalyzer.cpp:155)
==1822363==    by 0x54A20F: (anonymous namespace)::ForwardTraversal::Progress 
(anonymous namespace)::ForwardTraversal::traverseRecursive<Token, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1}, 
void>(Token*, (anonymous 
namespace)::ForwardTraversal::updateRecursive(Token*)::{lambda(Token*)#1} 
const&, bool, unsigned int) [clone .constprop.0] (forwardanalyzer.cpp:193)
==1822363== 
TestValueFlow::valueFlowHang
==1822363== Conditional jump or move depends on uninitialised value(s)
==1822363==    at 0x2712EC: operator== (vfvalue.h:163)
==1822363==    by 0x2712EC: 
operator()<std::_List_const_iterator<ValueFlow::Value> > (predefined_ops.h:270)
==1822363==    by 0x2712EC: 
__find_if<std::_List_const_iterator<ValueFlow::Value>, 
__gnu_cxx::__ops::_Iter_equals_val<const ValueFlow::Value> > 
(stl_algobase.h:2090)
==1822363==    by 0x2712EC: 
__find_if<std::_List_const_iterator<ValueFlow::Value>, 
__gnu_cxx::__ops::_Iter_equals_val<const ValueFlow::Value> > 
(stl_algobase.h:2152)
==1822363==    by 0x2712EC: std::_List_const_iterator<ValueFlow::Value> 
std::find<std::_List_const_iterator<ValueFlow::Value>, 
ValueFlow::Value>(std::_List_const_iterator<ValueFlow::Value>, 
std::_List_const_iterator<ValueFlow::Value>, ValueFlow::Value const&) 
(stl_algo.h:3850)
==1822363==    by 0x283A43: bool LifetimeStore::byRef<std::function<bool (Token 
const*)> >(Token*, TokenList const&, ErrorLogger&, Settings const&, 
std::function<bool (Token const*)> const&, SourceLocation) (valueflow.cpp:2096)
==1822363==    by 0x25C523: valueFlowLifetime(TokenList&, ErrorLogger&, 
Settings const&)::{lambda(Token const*, LifetimeCapture, std::function<bool 
(Token const*)> const&)#1}::operator()(Token const*, LifetimeCapture, 
std::function<bool (Token const*)> const&) const (valueflow.cpp:2868)
==1822363==    by 0x265BB3: valueFlowLifetime(TokenList&, ErrorLogger&, 
Settings const&) (valueflow.cpp:2935)
==1822363==    by 0x24D933: run (valueflow.cpp:7125)
==1822363==    by 0x24D933: operator() (valueflow.cpp:7092)
==1822363==    by 0x24D933: operator()<const ValuePtr<ValueFlowPass>*> 
(predefined_ops.h:318)
==1822363==    by 0x24D933: __find_if<const ValuePtr<ValueFlowPass>*, 
__gnu_cxx::__ops::_Iter_pred<ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass>
 >) const::<lambda(const ValuePtr<ValueFlowPass>&)> > > (stl_algobase.h:2107)
==1822363==    by 0x24D933: __find_if<const ValuePtr<ValueFlowPass>*, 
__gnu_cxx::__ops::_Iter_pred<ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass>
 >) const::<lambda(const ValuePtr<ValueFlowPass>&)> > > (stl_algobase.h:2152)
==1822363==    by 0x24D933: find_if<const ValuePtr<ValueFlowPass>*, 
ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass> >) 
const::<lambda(const ValuePtr<ValueFlowPass>&)> > (stl_algo.h:3876)
==1822363==    by 0x24D933: none_of<const ValuePtr<ValueFlowPass>*, 
ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass> >) 
const::<lambda(const ValuePtr<ValueFlowPass>&)> > (stl_algo.h:429)
==1822363==    by 0x24D933: any_of<const ValuePtr<ValueFlowPass>*, 
ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass> >) 
const::<lambda(const ValuePtr<ValueFlowPass>&)> > (stl_algo.h:448)
==1822363==    by 0x24D933: run (valueflow.cpp:7091)
==1822363==    by 0x24D933: ValueFlow::setValues(TokenList&, SymbolDatabase&, 
ErrorLogger&, Settings const&, TimerResultsIntf*) (valueflow.cpp:7268)
==1822363==    by 0x2888EB: operator() (tokenize.cpp:3414)
==1822363==    by 0x2888EB: __invoke_impl<void, 
Tokenizer::simplifyTokens1(const std::string&)::<lambda()>&> (invoke.h:61)
==1822363==    by 0x2888EB: __invoke_r<void, Tokenizer::simplifyTokens1(const 
std::string&)::<lambda()>&> (invoke.h:150)
==1822363==    by 0x2888EB: std::_Function_handler<void (), 
Tokenizer::simplifyTokens1(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > 
const&)::{lambda()#4}>::_M_invoke(std::_Any_data const&) (std_function.h:290)
==1822363==    by 0x2F39AF: operator() (std_function.h:591)
==1822363==    by 0x2F39AF: run (timer.h:86)
==1822363==    by 0x2F39AF: 
Tokenizer::simplifyTokens1(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&) (tokenize.cpp:3413)
==1822363==    by 0x1C46DF: 
SimpleTokenizer::tokenize(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, bool, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) (helpers.h:100)
==1822363==    by 0x1CFF77: TestValueFlow::tokenValues_[abi:cxx11](char const*, 
int, char const*, char const*, Settings const*, bool) (testvalueflow.cpp:499)
==1822363==    by 0x1D023B: TestValueFlow::valueOfTok_(char const*, int, char 
const*, char const*, Settings const*, bool) (testvalueflow.cpp:533)
==1822363==    by 0x1D1943: TestValueFlow::valueFlowHang() 
(testvalueflow.cpp:7892)
==1822363==    by 0x1D479F: TestValueFlow::run() (testvalueflow.cpp:151)
==1822363==    by 0x1D6CB7: TestFixture::run(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&) (fixture.cpp:355)
==1822363==    by 0x1D7497: TestFixture::runTests(options const&) 
(fixture.cpp:395)
==1822363==    by 0x1AC28B: main (main.cpp:42)
==1822363== 
==1822363== Conditional jump or move depends on uninitialised value(s)
==1822363==    at 0x27E104: operator==<ValueFlow::Value, 
std::allocator<ValueFlow::Value> > (stl_list.h:2135)
==1822363==    by 0x27E104: operator!=<ValueFlow::Value, 
std::allocator<ValueFlow::Value> > (stl_list.h:2188)
==1822363==    by 0x27E104: ConditionHandler::beforeCondition(TokenList&, 
SymbolDatabase const&, ErrorLogger&, Settings const&, std::set<Scope const*, 
std::less<Scope const*>, std::allocator<Scope const*> > const&) 
const::{lambda(ConditionHandler::Condition const&, Token*, Scope 
const*)#1}::operator()(ConditionHandler::Condition const&, Token*, Scope 
const*) const [clone .isra.0] (valueflow.cpp:4432)
==1822363==    by 0x271F9F: operator() (std_function.h:591)
==1822363==    by 0x271F9F: ConditionHandler::traverseCondition(SymbolDatabase 
const&, Settings const&, std::set<Scope const*, std::less<Scope const*>, 
std::allocator<Scope const*> > const&, std::function<void 
(ConditionHandler::Condition const&, Token*, Scope const*)> const&) const 
(valueflow.cpp:4383)
==1822363==    by 0x22B493: beforeCondition (valueflow.cpp:4394)
==1822363==    by 0x22B493: valueFlowCondition(ValuePtr<ConditionHandler> 
const&, TokenList&, SymbolDatabase&, ErrorLogger&, Settings const&, 
std::set<Scope const*, std::less<Scope const*>, std::allocator<Scope const*> > 
const&) (valueflow.cpp:4876)
==1822363==    by 0x22BE33: operator() (valueflow.cpp:7271)
==1822363==    by 0x22BE33: 
ValueFlowPassAdaptor<ValueFlow::setValues(TokenList&, SymbolDatabase&, 
ErrorLogger&, Settings const&, TimerResultsIntf*)::{lambda(TokenList&, 
SymbolDatabase&, ErrorLogger&, Settings const&, std::set<Scope const*, 
std::less<Scope const*>, std::allocator<Scope const*> > 
const&)#17}>::run(ValueFlowState const&) const (valueflow.cpp:7197)
==1822363==    by 0x24D973: run (valueflow.cpp:7125)
==1822363==    by 0x24D973: operator() (valueflow.cpp:7092)
==1822363==    by 0x24D973: operator()<const ValuePtr<ValueFlowPass>*> 
(predefined_ops.h:318)
==1822363==    by 0x24D973: __find_if<const ValuePtr<ValueFlowPass>*, 
__gnu_cxx::__ops::_Iter_pred<ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass>
 >) const::<lambda(const ValuePtr<ValueFlowPass>&)> > > (stl_algobase.h:2115)
==1822363==    by 0x24D973: __find_if<const ValuePtr<ValueFlowPass>*, 
__gnu_cxx::__ops::_Iter_pred<ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass>
 >) const::<lambda(const ValuePtr<ValueFlowPass>&)> > > (stl_algobase.h:2152)
==1822363==    by 0x24D973: find_if<const ValuePtr<ValueFlowPass>*, 
ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass> >) 
const::<lambda(const ValuePtr<ValueFlowPass>&)> > (stl_algo.h:3876)
==1822363==    by 0x24D973: none_of<const ValuePtr<ValueFlowPass>*, 
ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass> >) 
const::<lambda(const ValuePtr<ValueFlowPass>&)> > (stl_algo.h:429)
==1822363==    by 0x24D973: any_of<const ValuePtr<ValueFlowPass>*, 
ValueFlowPassRunner::run(std::initializer_list<ValuePtr<ValueFlowPass> >) 
const::<lambda(const ValuePtr<ValueFlowPass>&)> > (stl_algo.h:448)
==1822363==    by 0x24D973: run (valueflow.cpp:7091)
==1822363==    by 0x24D973: ValueFlow::setValues(TokenList&, SymbolDatabase&, 
ErrorLogger&, Settings const&, TimerResultsIntf*) (valueflow.cpp:7268)
==1822363==    by 0x2888EB: operator() (tokenize.cpp:3414)
==1822363==    by 0x2888EB: __invoke_impl<void, 
Tokenizer::simplifyTokens1(const std::string&)::<lambda()>&> (invoke.h:61)
==1822363==    by 0x2888EB: __invoke_r<void, Tokenizer::simplifyTokens1(const 
std::string&)::<lambda()>&> (invoke.h:150)
==1822363==    by 0x2888EB: std::_Function_handler<void (), 
Tokenizer::simplifyTokens1(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > 
const&)::{lambda()#4}>::_M_invoke(std::_Any_data const&) (std_function.h:290)
==1822363==    by 0x2F39AF: operator() (std_function.h:591)
==1822363==    by 0x2F39AF: run (timer.h:86)
==1822363==    by 0x2F39AF: 
Tokenizer::simplifyTokens1(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&) (tokenize.cpp:3413)
==1822363==    by 0x1C46DF: 
SimpleTokenizer::tokenize(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, bool, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) (helpers.h:100)
==1822363==    by 0x1CFF77: TestValueFlow::tokenValues_[abi:cxx11](char const*, 
int, char const*, char const*, Settings const*, bool) (testvalueflow.cpp:499)
==1822363==    by 0x1D023B: TestValueFlow::valueOfTok_(char const*, int, char 
const*, char const*, Settings const*, bool) (testvalueflow.cpp:533)
==1822363==    by 0x1D1A6B: TestValueFlow::valueFlowHang() 
(testvalueflow.cpp:7937)
==1822363==    by 0x1D479F: TestValueFlow::run() (testvalueflow.cpp:151)
==1822363==    by 0x1D6CB7: TestFixture::run(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&) (fixture.cpp:355)
==1822363==    by 0x1D7497: TestFixture::runTests(options const&) 
(fixture.cpp:395)
==1822363==    by 0x1AC28B: main (main.cpp:42)
==1822363== 
TestValueFlow::valueFlowCrashConstructorInitialization
TestValueFlow::valueFlowUnknownMixedOperators
TestValueFlow::valueFlowSolveExpr
TestValueFlow::valueFlowIdempotent
TestValueFlow::valueFlowUnsigned
TestValueFlow::valueFlowMod
TestValueFlow::valueFlowIncDec
TestValueFlow::valueFlowNotNull
TestValueFlow::valueFlowSymbolic
TestValueFlow::valueFlowSymbolicIdentity
TestValueFlow::valueFlowSymbolicStrlen
TestValueFlow::valueFlowSmartPointer
TestValueFlow::valueFlowImpossibleMinMax
TestValueFlow::valueFlowImpossibleIncDec
TestValueFlow::valueFlowImpossibleUnknownConstant
TestValueFlow::valueFlowContainerEqual
TestValueFlow::valueFlowBailoutIncompleteVar
TestValueFlow::performanceIfCount


Testing Complete
Number of tests: 21
Number of todos: 3
Tests failed: 0

==1822363== 
==1822363== HEAP SUMMARY:
==1822363==     in use at exit: 0 bytes in 0 blocks
==1822363==   total heap usage: 1,315,669 allocs, 1,315,669 frees, 102,298,085 
bytes allocated
==1822363== 
==1822363== All heap blocks were freed -- no leaks are possible
==1822363== 
==1822363== Use --track-origins=yes to see where uninitialised values come from
==1822363== For lists of detected and suppressed errors, rerun with: -s
==1822363== ERROR SUMMARY: 715 errors from 6 contexts (suppressed: 0 from 0)

Reply via email to