cppcheck/test
Paul Fultz II ba037837c9 Track lifetime across multiple returns
This will now warn when doing something like this:

```cpp
template <class T, class K, class V>
const V& get_default(const T& t, const K& k, const V& v) {
    auto it = t.find(k);
    if (it == t.end()) return v;
    return it->second;
}
const int& bar(const std::unordered_map<int, int>& m, int k) {
    auto x = 0;
    return get_default(m, k, x);
}
```

The lifetime warning is considered inconclusive in this case.

I also updated valueflow to no tinject inconclusive values unless `--inconclusive` flag is passed. This creates some false negatives because library functions are not configured to not modify their input parameters, and there are some checks that do not check if the value is inconclusive or not.
2019-09-11 19:25:09 +02:00
..
cfg Track lifetime across multiple returns 2019-09-11 19:25:09 +02:00
cli Fixed test/cli 2019-08-18 12:51:32 +02:00
synthetic Improve Python code 2017-06-05 13:23:00 +02:00
testsuites Typos found by running "codespell" (#1804) 2019-04-23 13:26:48 +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 Updated copyright year 2018-01-14 15:37:52 +01:00
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 Track lifetime across multiple returns 2019-09-11 19:25:09 +02:00
testbool.cpp astyle formatting 2019-09-02 06:59:07 +02:00
testboost.cpp CheckBoost: Use 'normal' checking 2019-03-09 20:00:31 +01:00
testbufferoverrun.cpp insecureCmdLineArgs: Added more test cases to ensure 'const'-qualifiers are handled correctly. 2019-08-15 08:45:31 +02:00
testcharvar.cpp Remove test case, ValueFlow will truncate and sign-extend values 2019-05-01 19:33:47 +02:00
testclass.cpp astyle formatting 2019-09-02 06:59:07 +02:00
testcmdlineparser.cpp Convert SHOWTIME_MODES to enum class 2019-07-31 22:35:51 +02:00
testcondition.cpp Fix issue 9311: False positive duplicateCondition "same if condition" with pointer inside array of struct (#2166) 2019-09-10 19:41:35 +02:00
testconstructors.cpp Run more tests on full token list (#2020) 2019-07-22 10:26:55 +02:00
testcppcheck.cpp Refactoring: Rename variables. Do not use leading _. Renamed 'col' to 'column' 2019-08-18 12:19:05 +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
testfilelister.cpp Update copyright year 2019-02-09 07:24:06 +01:00
testfunctions.cpp Fix false positive with ignoredReturnValue with std::move (#1809) 2019-04-26 12:22:31 +02:00
testgarbage.cpp template simplifier: fix syntax error false positive (an expression can't be a template) (#2115) 2019-08-27 06:37:58 +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 CheckInternal: Extend redundant null pointer check before Token::Match() (#1789) 2019-04-06 07:44:44 +02:00
testio.cpp Track lifetime across multiple returns 2019-09-11 19:25:09 +02:00
testleakautovar.cpp astyle formatting 2019-08-07 08:05:46 +02:00
testlibrary.cpp Refactoring: Convert enum Direction to enum class 2019-08-01 20:56:02 +02:00
testmathlib.cpp MathLib: Added robustness tests for 'MathLib::divide()'. 2019-05-25 23:06:50 +02:00
testmemleak.cpp leakNoReturnVar: Don't break early (#2095) 2019-08-23 06:33:00 +02:00
testnullpointer.cpp Add regression test for issue 9264: FP nullPointerRedundantCheck - pointer alias (#2133) 2019-09-01 09:58:53 +02:00
testoptions.cpp Allow multiple test case arguments to testrunner (#1755) 2019-03-26 20:28:40 +01:00
testother.cpp Fix issue 9320: False positive knownConditionTrueFalse related to truncation (#2144) 2019-09-05 15:15:58 +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 Removed casts 2019-07-16 09:14:44 +02:00
testrunner.cpp Update Copyright 2019-06-29 07:49:14 +02:00
testrunner.vcxproj Increase Windows stack size to 8M (#1998) 2019-07-15 12:39:58 +02:00
testrunner.vcxproj.filters Updated to Visual Studio 2019 2019-07-06 12:11:19 +02:00
testsamples.cpp Update copyright year 2019-02-09 07:24:06 +01:00
testsimplifytemplate.cpp Fix #9338 (Regression: Syntax error on valid C++) (#2156) 2019-09-09 21:46:21 +02:00
testsimplifytokens.cpp Fix ternary operator simplification to accept template parameters. (#2048) 2019-07-28 21:52:52 +02:00
testsimplifytypedef.cpp Fix issue 9305: False positive uninitvar - struct initialized via function (#2123) 2019-08-30 18:32:45 +02:00
testsimplifyusing.cpp Partial fix for #9191 (simplifyTypedef: Problem when namespace is used) (#1952) 2019-07-06 20:22:13 +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 Re-enable valueFlowSubFunction (#2063) 2019-08-05 16:26:32 +02:00
testsuite.cpp Fixed Cppcheck shadowVar warnings 2019-04-30 21:01:18 +02:00
testsuite.h Add help to testrunner (#1704) 2019-03-02 08:06:23 +01:00
testsuppressions.cpp Fixed a typo in lib/checkother.cpp. Corrected spelling errors found by codespell. (#2170) 2019-09-11 19:21:38 +02:00
testsymboldatabase.cpp astyle formatting 2019-09-02 06:59:07 +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 Try to fix Cppcheck warning to make Cppcheck happy 2019-08-02 07:57:34 +02:00
testtokenize.cpp Fix issue 9340: AST broken: endless recursion from '{' (#2161) 2019-09-09 21:35:49 +02:00
testtokenlist.cpp Update copyright year 2019-02-09 07:24:06 +01:00
testtype.cpp Fix issue 9306: Adjust shiftTooManyBitsSigned for C++14 (#2127) 2019-08-31 07:40:57 +02:00
testuninitvar.cpp Fix issue 9348: FP uninitvar for pointer passed to memcpy (#2167) 2019-09-10 19:40:08 +02:00
testunusedfunctions.cpp fixed tests, unused templates are removed by default 2019-05-05 19:40:58 +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 Refactoring: Rename variables. Do not use leading _. Renamed 'col' to 'column' 2019-08-18 12:19:05 +02:00
testvaarg.cpp Disable all simplified checks 2019-03-16 09:17:50 +01:00
testvalueflow.cpp Add deeper analysis of when a function changes a containers size (#2149) 2019-09-06 21:18:45 +02:00
testvarid.cpp make ellipsis ... a single token (#2143) 2019-09-04 08:07:30 +02:00