cppcheck/test
Ken-Patrick Lehrmann 24211cf8b9 Fix crashes in valueflow (#2236)
* Fix crashes in valueflow

http://cppcheck1.osuosl.org:8000/crash.html

For instance in http://cppcheck1.osuosl.org:8000/styx
```
==19651==ERROR: AddressSanitizer: SEGV on unknown address 0x00000000001c (pc 0x556f21abc3df bp 0x7ffc140d2720 sp 0x7ffc140d2710 T0)
==19651==The signal is caused by a READ memory access.
==19651==Hint: address points to the zero page.
    #0 0x556f21abc3de in Variable::isGlobal() const ../lib/symboldatabase.h:342
    #1 0x556f221f801a in valueFlowForwardVariable ../lib/valueflow.cpp:2471
    #2 0x556f22208130 in valueFlowForward ../lib/valueflow.cpp:3204
    #3 0x556f221e9e14 in valueFlowReverse ../lib/valueflow.cpp:1892
    #4 0x556f221f1a43 in valueFlowBeforeCondition ../lib/valueflow.cpp:2200
    #5 0x556f2223dbb5 in ValueFlow::setValues(TokenList*, SymbolDatabase*, ErrorLogger*, Settings const*) ../lib/valueflow.cpp:6521
    #6 0x556f220e5991 in Tokenizer::simplifyTokens1(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ../lib/tokenize.cpp:2342
    #7 0x556f21d8d066 in CppCheck::checkFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::istream&) ../lib/cppcheck.cpp:508
    #8 0x556f21d84cd3 in CppCheck::check(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ../lib/cppcheck.cpp:192
    #9 0x556f21a28796 in CppCheckExecutor::check_internal(CppCheck&, int, char const* const*) ../cli/cppcheckexecutor.cpp:884
    #10 0x556f21a24be8 in CppCheckExecutor::check(int, char const* const*) ../cli/cppcheckexecutor.cpp:198
    #11 0x556f22313063 in main ../cli/main.cpp:95
```

* Add test case for crash in valueflow
2019-10-16 20:54:07 +02:00
..
cfg windows.cfg: Add support for `__alignof()` (#2271) 2019-10-15 16:02:28 +02:00
cli Import project: Ignoring paths better 2019-09-12 09:32:24 +02:00
synthetic
testsuites Typos found by running "codespell" (#1804) 2019-04-23 13:26:48 +02:00
verify ExprEngine: Handle << and >> 2019-10-08 21:38:10 +02:00
CMakeLists.txt Track lifetime across multiple returns 2019-09-11 19:25:09 +02:00
options.cpp Update Copyright 2019-06-29 07:49:14 +02:00
options.h Update Copyright 2019-06-29 07:49:14 +02:00
redirect.h
test.cxx
test64bit.cpp Update copyright year 2019-02-09 07:24:06 +01:00
testassert.cpp Moved CheckAssert::assertWithSideEffects to normal checking 2019-03-09 16:50:50 +01:00
testastutils.cpp Fix issue 9305: False positive uninitvar - struct initialized via function (#2123) 2019-08-30 18:32:45 +02:00
testautovariables.cpp astyle formatting 2019-10-14 19:41:51 +02:00
testbool.cpp Fix false negatives in checkBitwiseOnBoolean (#2220) 2019-10-06 09:57:31 +02:00
testboost.cpp CheckBoost: Use 'normal' checking 2019-03-09 20:00:31 +01:00
testbufferoverrun.cpp TestBufferOverrun: Enable passing tests (#2246) 2019-10-07 09:17:12 +02:00
testcharvar.cpp Remove test case, ValueFlow will truncate and sign-extend values 2019-05-01 19:33:47 +02:00
testclass.cpp Virtual Destructors: Base class must have virtual destructor no matter if derived class has a destructor or not. There is UB according to paragraph 3 in [expr.delete]. 2019-09-27 09:55:56 +02:00
testcmdlineparser.cpp Convert SHOWTIME_MODES to enum class 2019-07-31 22:35:51 +02:00
testcondition.cpp Fix issue 9367: FP knownConditionTrueFalse (#2209) 2019-09-24 08:15:03 +02:00
testconstructors.cpp Revert "#9391 Detecting uninited member variables with default ctor (#2249)" 2019-10-09 08:17:47 +02:00
testcppcheck.cpp added missing OVERRIDE usage and removed redundant virtual (#2190) 2019-09-20 21:57:16 +02:00
testerrorlogger.cpp Fixed #9260 (--template=gcc does not work correctly with -j) 2019-08-18 16:33:32 +02:00
testexceptionsafety.cpp Use 'normal' checking instead of 'simplified' 2019-03-16 07:19:48 +01:00
testexprengine.cpp ExprEngine: Improved handling of struct member assignments in loop 2019-10-14 19:41:32 +02:00
testfilelister.cpp Update copyright year 2019-02-09 07:24:06 +01:00
testfunctions.cpp Various clang-tidy fixes (#2192) 2019-09-25 15:25:19 +02:00
testgarbage.cpp testgarbage.cpp: Spelling in comment (#2172) 2019-09-12 20:52:39 +02:00
testimportproject.cpp testrunner: Fix assertion error 2019-08-17 15:12:49 +02:00
testincompletestatement.cpp astyle formatting 2019-05-21 10:43:33 +02:00
testinternal.cpp fix #8965 ("(debug) Executable scope 'x' with unknown function." with rvalue parameter in method) (#2237) 2019-10-04 12:30:11 +02:00
testio.cpp Track lifetime across multiple returns 2019-09-11 19:25:09 +02:00
testleakautovar.cpp Fix #7031 (improve error message for memory related warnings) (#2204) 2019-09-22 21:50:02 +02:00
testlibrary.cpp Refactoring: Convert enum Direction to enum class 2019-08-01 20:56:02 +02:00
testmathlib.cpp Keep prefix in string and char literals (#2272) 2019-10-16 11:41:33 +02:00
testmemleak.cpp Various clang-tidy fixes (#2192) 2019-09-25 15:25:19 +02:00
testnullpointer.cpp Formatted the code, there are no functional changes [ci skip]. 2019-10-01 08:39:08 +02:00
testoptions.cpp Allow multiple test case arguments to testrunner (#1755) 2019-03-26 20:28:40 +01:00
testother.cpp Parse `extern "C"`, and use it to avoid FP reference warnings (#2234) 2019-10-08 17:48:09 +02:00
testpath.cpp Update copyright year 2019-02-09 07:24:06 +01:00
testpathmatch.cpp Update copyright year 2019-02-09 07:24:06 +01:00
testplatform.cpp Update copyright year 2019-02-09 07:24:06 +01:00
testpostfixoperator.cpp Fixed #9042 (Another `using BOOL` type breach) (#1765) 2019-03-27 21:42:50 +01:00
testpreprocessor.cpp use range loops / constness (#2181) 2019-09-19 20:29:33 +02:00
testrunner.cpp Update Copyright 2019-06-29 07:49:14 +02:00
testrunner.vcxproj Windows testrunner: Add testexprengine.cpp (#2184) 2019-09-19 19:40:00 +02:00
testrunner.vcxproj.filters Windows testrunner: Add testexprengine.cpp (#2184) 2019-09-19 19:40:00 +02:00
testsamples.cpp Update copyright year 2019-02-09 07:24:06 +01:00
testsimplifytemplate.cpp fix #8965 ("(debug) Executable scope 'x' with unknown function." with rvalue parameter in method) (#2237) 2019-10-04 12:30:11 +02:00
testsimplifytokens.cpp Keep prefix in string and char literals (#2272) 2019-10-16 11:41:33 +02:00
testsimplifytypedef.cpp astyle formatting 2019-10-14 19:41:51 +02:00
testsimplifyusing.cpp fix using type aliases in out of class destructors (#2250) 2019-10-08 19:30:41 +02:00
testsizeof.cpp sizeof: write inconclusive warning if calculation in sizeof is done indirectly by macro 2019-02-26 21:06:44 +01:00
teststl.cpp Track lifetime across multiple returns 2019-09-11 19:25:09 +02:00
teststring.cpp Keep prefix in string and char literals (#2272) 2019-10-16 11:41:33 +02:00
testsuite.cpp use range loops / constness (#2181) 2019-09-19 20:29:33 +02:00
testsuite.h Warn about unknown macro causing template syntax error (#2222) 2019-09-26 16:01:01 +02:00
testsuppressions.cpp Various clang-tidy fixes (#2192) 2019-09-25 15:25:19 +02:00
testsymboldatabase.cpp SymbolDatabase: Better handling of function call using smart pointer 2019-10-15 19:33:25 +02:00
testthreadexecutor.cpp Update copyright year 2019-02-09 07:24:06 +01:00
testtimer.cpp Update copyright year 2019-02-09 07:24:06 +01:00
testtoken.cpp Keep prefix in string and char literals (#2272) 2019-10-16 11:41:33 +02:00
testtokenize.cpp Keep prefix in string and char literals (#2272) 2019-10-16 11:41:33 +02:00
testtokenlist.cpp Update copyright year 2019-02-09 07:24:06 +01:00
testtype.cpp Fix severity of c++14 shifts with too many bits (#2213) 2019-09-25 20:16:04 +02:00
testuninitvar.cpp Fixed #9349 (FP ctuuninitvar for pointer dereferenced inside sizeof) 2019-09-12 13:29:52 +02:00
testunusedfunctions.cpp TestSuite: The ASSERT and ASSERT_EQUALS will now stop executing the test case upon failure. This can be used to avoid extra guard logic in tests. 2019-09-16 06:34:45 +02:00
testunusedprivfunc.cpp Run more tests on full token list (#2020) 2019-07-22 10:26:55 +02:00
testunusedvar.cpp Fixed #9234 (FP unreadVariable - assignment via iterator) 2019-08-04 10:21:16 +02:00
testutils.h added missing OVERRIDE usage and removed redundant virtual (#2190) 2019-09-20 21:57:16 +02:00
testvaarg.cpp Disable all simplified checks 2019-03-16 09:17:50 +01:00
testvalueflow.cpp Fix crashes in valueflow (#2236) 2019-10-16 20:54:07 +02:00
testvarid.cpp Fix #9383 ("debug: Function::addArguments found argument 'x' with varid 0." with variadic templates) (#2238) 2019-10-06 12:45:42 +02:00