Commit Graph

12767 Commits

Author SHA1 Message Date
Daniel Marjamäki 986f658e39 Fixed (False negative; uninitialized member variable in base class without constructor) 2021-02-01 18:58:51 +01:00
Daniel Marjamäki bd9e6212b2 Refactoring, avoid 'magic' connection between vector items and variables 2021-02-01 17:13:58 +01:00
Ken-Patrick Lehrmann 96ea5a432f
Fix crash in checkclass.cpp () 2021-01-31 12:14:10 +01:00
Ken-Patrick Lehrmann 4e35f19659
10153: Check that string.find() is compared with 0 before recommending starts_with() () 2021-01-31 12:05:38 +01:00
Daniel Marjamäki 6a24b4f7c8 Fixed (compile database; incomplete handling of directory and file) 2021-01-31 10:14:22 +01:00
IOBYTE 5810171336
fix daca crashes in Type::findDependency() () 2021-01-31 10:07:03 +01:00
Daniel Marjamäki 95e2eebd8a Revert fix for , it caused an unexpected appveyor failure 2021-01-30 15:01:19 +01:00
Daniel Marjamäki 43e8430a80 Fixed (compile database; incomplete handling of directory and file) 2021-01-30 12:27:40 +01:00
IOBYTE 7700cff0e9
fix daca crash in openfst fst_test.cc () 2021-01-30 06:33:09 +01:00
Paul Fultz II a81427f97f
Fix issue 10022: Logical conjunction error between two completely unrelated members () 2021-01-29 10:26:57 +01:00
Paul Fultz II a9b7f0e27b
Improvements to debug output () 2021-01-28 22:19:37 +01:00
Oliver Stöneberg e8b8cfec78
some minor optimizations () 2021-01-28 22:18:17 +01:00
Daniel Marjamäki 1151c3dafd Fixed msvc compilation error by implementing Variable::operator= 2021-01-28 13:46:15 +01:00
IOBYTE 6914f375e1
fix ("debug: Executable scope 'what' with unknown function." with custom std::exception) () 2021-01-28 12:38:36 +01:00
Paul Fultz II e17d22eb87
Fix issue 10134: False positive: value is not known. Early return. () 2021-01-28 12:37:56 +01:00
Daniel Marjamäki dc230d18ef Try to fix Cppcheck self-check warnings 2021-01-28 12:36:31 +01:00
Daniel Marjamäki 203d6ebe5a Fixed (FP: shadowVariable clangimport) 2021-01-27 20:03:42 +01:00
IOBYTE 4e1ff86bb2
use nonneg int for varid and exprid () 2021-01-27 19:49:13 +01:00
Daniel Marjamäki 987c8a854e astyle formatting
[ci skip]
2021-01-25 22:51:50 +01:00
Paul Fultz II 0f8f207719
Remove valueFlowFwdAnalysis and update valueFlowAfterAssign to handle expressions () 2021-01-25 17:24:36 +01:00
Ken-Patrick Lehrmann 00707455be
10110: Fix FP knownConditionTrueFalse () 2021-01-25 17:23:47 +01:00
Daniel Marjamäki 3f2d9c03b2 CheckFunctions::checkIgnoredReturnValue: Fixed unwanted DacaWrongData messages 2021-01-23 18:19:51 +01:00
Daniel Marjamäki 772b44d11a Fixed compiler warnings 2021-01-23 18:04:28 +01:00
Simon Martin 9d10f4f572
Ticket : Properly simplify auto variables' initialization. () 2021-01-23 17:56:58 +01:00
IOBYTE a4953575f1
fix (debug: Executable scope 'x' with unknown function.) () 2021-01-23 17:55:25 +01:00
Paul Fultz II c860de8565
Fix issue 8143: valueFlowCondition: before and inside while () 2021-01-23 17:52:01 +01:00
Paul Fultz II d80f2fb46f
Reapply f1cc3ad and fix performance regression () 2021-01-23 08:47:39 +01:00
orbitcowboy bb451ca289 Running astlye [ci skip] 2021-01-22 21:47:24 +01:00
Paul Fultz II a6f4fbae54
Fix issue 2741: False negative: redundant assignment of x to itself (ref = x) () 2021-01-22 11:00:57 +01:00
Daniel Marjamäki 0fa89ff2ba Revert 14365ffc7 and f1cc3ada8, there was a performance regression 2021-01-22 10:51:46 +01:00
Daniel Marjamäki 14365ffc7c make a function static 2021-01-21 20:27:28 +01:00
Paul Fultz II f1cc3ada86
Refactor valueFlowTerminatingCondition to handle inner conditions and complex conditions () 2021-01-21 20:18:53 +01:00
Paul Fultz II d05acf3c41
Fix issue 10120: FP: containerOutOfBounds, regression () 2021-01-21 19:50:57 +01:00
Paul Fultz II 8b26ecbcdd
Extend ProgramMemory to handle expressions () 2021-01-21 19:49:37 +01:00
IOBYTE d39956414f
fix , and (debug: Executable scope 'x' with unknown function.) () 2021-01-21 19:47:51 +01:00
Oliver Stöneberg 491f4874c5
fixed/aligned some compiler warnings () 2021-01-21 18:13:32 +01:00
IOBYTE 952857195b
fix out of line member functions using global namespace () 2021-01-19 18:52:47 +01:00
IOBYTE fde5994cc3
fix (debug: Executable scope 'x' with unknown function.) () 2021-01-18 19:01:04 +01:00
Paul Fultz II 25ada657da
Fix issue 9030: ValueFlow: Possible value after conditional assignment in for loop () 2021-01-18 10:12:07 +01:00
IOBYTE 664289792c
fix simplifyTypedef removing needed type qualification () 2021-01-18 10:08:55 +01:00
abhijit-sawant b97387db66
Made missing comparison in loop check more generic () 2021-01-18 08:11:37 +01:00
IOBYTE dd866f2898
fix using type alias with derived class () 2021-01-17 16:10:53 +01:00
Oliver Stöneberg b2ed372f75
various optimizations () 2021-01-16 19:05:51 +01:00
Oliver Stöneberg 9f9a652ae1
refs issue : avoid usage of expensive std::stringstream () 2021-01-16 19:03:28 +01:00
Daniel Marjamäki 853c271f22 Fix gcc warning; variable vidx is assigned but not read 2021-01-16 18:13:06 +01:00
Oliver Stöneberg 7aa85aa408
Use std::unordered_* containers for faster lookups () 2021-01-16 13:52:09 +01:00
Daniel Marjamäki 76f759fcc4 Fixed (False positive: Opposite inner condition when modifying member variable used by inner condition) 2021-01-15 20:51:47 +01:00
Daniel Marjamäki 503662f625 Try to fix null pointer dereference 2021-01-15 08:27:58 +01:00
Daniel Marjamäki 55262f03ec Fixed (False positive: Searching before insertion is not necessary (stlFindInsert)) 2021-01-14 22:31:43 +01:00
Daniel Marjamäki a5babf25a7 Fixed (syntax error: operator) 2021-01-14 20:56:11 +01:00
Ken-Patrick Lehrmann 56124f0c5d
Skip calculateWarningHash if we are not in bugHunting () 2021-01-13 18:38:00 +01:00
Paul Fultz II b571e9fe0b
Fix issue 10106: FP: nullPointerRedundantCheck () 2021-01-13 12:36:26 +01:00
Paul Fultz II b469da1069
Fix issue 8253: False negative: Comparison is always true (early return) () 2021-01-13 12:35:43 +01:00
Daniel Marjamäki 1858465bca astyle formatting
[ci skip]
2021-01-12 21:28:56 +01:00
Daniel Marjamäki 5f21d9d97b Fixed (Syntax error for valid C code) 2021-01-12 21:28:07 +01:00
Armin Müller 0de0a954d2
Typos found by running "codespell" () 2021-01-12 20:48:25 +01:00
Paul Fultz II fc4238829f
Fix issue 10092: false positive: (warning) The address of local variable 'data' might be accessed at non-zero index. () 2021-01-12 10:24:28 +01:00
Paul Fultz II b1c56d33ac
Fix issue 9133: Invalid iterator; vector::push_back, functions () 2021-01-11 18:47:38 +01:00
Paul Fultz II 678ee00fe9
Infer variables from conditions in valueFlowSubfunction () 2021-01-11 08:00:13 +01:00
Paul Fultz II a3617fe573
Fix issue 10102: False positive: knownConditionTrueFalse in for loop () 2021-01-11 07:56:16 +01:00
Rikard Falkeborn f018163551
Improve handling of realloc in memory leak checker ()
Mark realloced variables as realloced instead of freed. This allows
improved checking for code with error realloc handling.

If cppcheck finds an if-statement which checks the validity of the
allocated memory or resource, check if the memory/resource is
reallocated from another variable. If so, we can add checking of that
variable in the if-statement instead. This allows to check that variable
for memleaks and double frees.

This fixes  and  which both concern FPs with double frees
after correct error handling.
2021-01-11 07:55:05 +01:00
Daniel Marjamäki 707f1f2fbe ValueFlow: Fixed isEqual 2021-01-10 16:52:11 +01:00
Daniel Marjamäki 98c7c0af96 Fixed GCC compiler warnings 2021-01-10 15:27:42 +01:00
Daniel Marjamäki 4e07a13feb ClangImport: If typeIndex is negative we want to have Cppcheck warnings about that 2021-01-10 14:51:28 +01:00
Daniel Marjamäki f493ce16b3 astyle formatting
[ci skip]
2021-01-10 14:46:19 +01:00
Paul Fultz II bc3f5554a4
Fix issue 8871: improve check: mismatching container size conditions () 2021-01-10 13:30:00 +01:00
Oliver Stöneberg ac7647fcd8
some self-check suppression cleanups () 2021-01-09 20:32:38 +01:00
IOBYTE 2482873029
fix location of forward declaration of specialized template () 2021-01-09 20:00:35 +01:00
Daniel Marjamäki f6c98a0999 Fix Cppcheck self check warning 2021-01-09 11:14:41 +01:00
Paul Fultz II c267d85640
Add generic valueflowBeforeCondition () 2021-01-08 22:55:04 +01:00
Daniel Marjamäki 4b5aedbbab Fixed (FP: duplicateExpression clangimport) 2021-01-08 22:30:06 +01:00
Paul Fultz II 3b5c558414
Fix issue 10076: ValueFlow: False positive after address of var is taken 'T t = {{&var}};' () 2021-01-08 10:29:32 +01:00
Rikard Falkeborn bedf3118ef
library: Refactor to use enum class () 2021-01-08 10:29:01 +01:00
IOBYTE 503a5dd441
fix (Hang: TemplateSimplifier::useDefaultArgumentValues) () 2021-01-06 23:06:50 +01:00
IOBYTE cb02628c7c
fix (namespace alias changes variable name) () 2021-01-06 17:30:11 +01:00
IOBYTE c085151eb0
fix exprengine.cpp:2833:18: debug: Executable scope 'executeAllFunctions' with unknown function. () 2021-01-06 17:29:23 +01:00
Rikard Falkeborn 50cdb6cbfc
Astyle: sync windows and linux folders () 2021-01-06 17:13:44 +01:00
Daniel Marjamäki 9e4e06a524 Clang import; Testing that token index is set properly 2021-01-06 11:19:14 +01:00
Daniel Marjamäki 0bd401c17b ClangImport; Assign token indexes 2021-01-06 11:07:21 +01:00
Daniel Marjamäki 168db9351d ClangImport; set exprid 2021-01-06 11:03:43 +01:00
Daniel Marjamäki 3a86262244 SymbolDatabase: Do not set definedType for global scope etc 2021-01-06 08:53:45 +01:00
IOBYTE 22b10f8987
fix token.cpp:745:19: debug: Executable scope 'getStrSize' with unknown function. () 2021-01-05 22:07:53 +01:00
Oliver Stöneberg 96704c9971
fixed and enabled some more clang-tidy warnings () 2021-01-05 17:51:32 +01:00
Paul Fultz II e004731f1c
Fix issue 8650: ValueFlow: Track if pointer is created by '&' operator () 2021-01-05 16:56:38 +01:00
IOBYTE 8897ad3408
fix (typedef not replaced when namespace is involved) () 2021-01-05 16:53:56 +01:00
Paul Fultz II f0b5668436
Fix issue 9890: ValueFlow: known value not found (variable is changed in path that returns) () 2021-01-05 16:49:08 +01:00
Paul Fultz II a95c931da0
Fix issue 8501: false negative: (style) Opposite expression on both sides of () 2021-01-05 12:07:27 +01:00
Daniel Marjamäki b3b7ecc7ea Removed integerOverflowOptimization checking and merged functionality into invalidTestForOverflow 2021-01-05 11:38:19 +01:00
Daniel Marjamäki abd6c00c82 Integer overflow; generalized checking for nonportable code 2021-01-04 19:43:05 +01:00
orbitcowboy 02b714f6dc Code formatting [ci skip] 2021-01-04 13:09:05 +01:00
Daniel Marjamäki c546b244a9 ClangImport; throw exception if CXXForRangeStmt can't be imported 2021-01-04 10:15:09 +01:00
abhijit-sawant a4a225203c
Fix (false positive: StlMissingComparison) () 2021-01-04 10:07:07 +01:00
Daniel Marjamäki da198e0726 Fix Cppcheck self check warning; use reference to avoid data copying 2021-01-04 01:47:04 +01:00
Daniel Marjamäki 38aa0fa2f0 Signed integer optimisation; ensure expr is variable 2021-01-03 23:30:34 +01:00
Daniel Marjamäki 52491f1c53 Signed integer optimisations; Also warn about 'x+y<x' 2021-01-03 22:12:19 +01:00
Daniel Marjamäki 6375fb4f08 New check: Warn about nonportable code that can be optimised (signed integer overflow) 2021-01-03 21:03:07 +01:00
Daniel Marjamäki 208014bae9 checkIntegerOverflow: Remove bailout for shifts 2021-01-03 17:44:46 +01:00
IOBYTE 23da5c9815
fix (SymbolDatabase: function lookup fails calling variadic method) ()
Co-authored-by: Robert Reif <reif@FX6840>
2021-01-03 11:17:32 +01:00
Oliver Stöneberg d59abfd977
fixed clang-tidy warnings ()
* clang_tidy.cmake: added clang-tidy-11 to list of executables to look for

* .clang-tidy: disabled warnings we are (currently) not interested in

* fixed clang-tidy warnings
2021-01-02 23:10:27 +01:00
Oliver Stöneberg fbf5858f76
fixed and enabled several clang-tidy warnings () 2021-01-02 19:10:25 +01:00
Rikard Falkeborn d19454b935
Refactoring: Convert ValueType to enum class () 2021-01-02 09:30:00 +01:00
Daniel Marjamäki 3445a958d5 ValueFlow: Improved debug output. 2021-01-01 18:08:03 +01:00
Daniel Marjamäki 4e4db50311 Clang import: Use getChild 2021-01-01 17:59:43 +01:00
Daniel Marjamäki 214f90c10a Bug hunting; Fix false positive, unsigned array index can't be negative 2021-01-01 08:57:35 +01:00
Daniel Marjamäki 1d6c0976e5 astyle formatting
[ci skip]
2021-01-01 08:56:17 +01:00
miltolstoy ee8d5b972a
checkunusedvar: handle array element change using pointer arithmetic () 2021-01-01 08:06:20 +01:00
Daniel Marjamäki e469436fe1 astyle formatting
[ci skip]
2020-12-31 19:24:29 +01:00
Oliver Stöneberg 20e462a8ed
split "varid0" from more generic "debug" messages () 2020-12-31 19:24:16 +01:00
Daniel Marjamäki b16944b310 Revert "Clang import: Throw InternalError when nodeType is unknown"
This reverts commit 589174b92d.
2020-12-31 18:08:55 +01:00
Daniel Marjamäki 589174b92d Clang import: Throw InternalError when nodeType is unknown 2020-12-31 17:48:39 +01:00
Daniel Marjamäki f37274a5c0 ClangImport: Improved error handling 2020-12-31 17:37:14 +01:00
IOBYTE e7bdf5f71c
remove cleanupAfterSimplify from the template simplifier ()
The template simplifier works well enough now so cleanupAfterSimplify is
no longer necessary.  In fact cleanupAfterSimplify was introducing a bug
which improperly simplified C++ style casts.

Bugs should be exposed and fixed properly rather than just hiding them.

Co-authored-by: Robert Reif <reif@FX6840>
2020-12-31 09:33:23 +01:00
Daniel Marjamäki a1756f3afc Clang import; Function declaration 2020-12-30 17:00:05 +01:00
Daniel Marjamäki f986b37a50 Clang import: Improved function pointer 2020-12-30 16:24:10 +01:00
IOBYTE 277da763aa
fix (debug: Executable scope 'x' with unknown function.) () 2020-12-30 08:09:34 +01:00
Daniel Marjamäki cb9efcb100 Clang import; Add a validation step 2020-12-29 21:36:50 +01:00
Daniel Marjamäki 0adf09c507 ClangImport; Fixed output for anonymous enum 2020-12-29 21:10:34 +01:00
Daniel Marjamäki 79a8f21183 ClangImport; Set Token::scope properly for empty enum body 2020-12-29 16:34:06 +01:00
Daniel Marjamäki 4bd5933691 Clang import: Do not write unreferenced enum declaration 2020-12-29 15:39:33 +01:00
Daniel Marjamäki 1e9f67936e Cppcheck: Fix; Do not run clang twice 2020-12-29 12:43:21 +01:00
Daniel Marjamäki 7719b27e44 Cppcheck: Print clang command when --verbose is used and build dir is empty 2020-12-29 10:20:46 +01:00
Daniel Marjamäki 2898a2925d Cppcheck: Using both --clang and --project 2020-12-29 10:15:38 +01:00
Daniel Marjamäki b94a6d595a Fixed (ValueFlow: Does not handle noreturn function) 2020-12-28 20:00:35 +01:00
shaneasd 53734a3da1
Test for return address of reference () 2020-12-28 10:50:42 +01:00
Daniel Marjamäki e7c462b827 Refactoring; Avoid 'unsigned' 2020-12-27 21:05:31 +01:00
orbitcowboy f1688667a5 Running astyle [ci skip] 2020-12-27 12:38:21 +01:00
Ken-Patrick Lehrmann f1169bf2b4
10062: Fix FP due to assignment in reverseanalyzer ()
reverseanalyzer has a special process for assignments, and would not see
a stop condition on a rhs of an assignment.
2020-12-27 10:14:46 +01:00
Oliver Stöneberg 0a1012a273
fixed and enabled -Wdocumentation and -Wdocumentation-pedantic clang warnings () 2020-12-27 09:15:59 +01:00
Georgy Komarov 1c12b4fd78
ExprEngine: Handling cases when for condition is always false () 2020-12-26 21:29:50 +01:00
Paul Fultz II bd22070df5
Fix issue 10027: Segmentation fault in ValueFlowAnalyzer::analyze () 2020-12-26 21:26:39 +01:00
Daniel Marjamäki 9d54303cfa Clang import; Fixed segmentation fault 2020-12-26 19:59:57 +01:00
Daniel Marjamäki d024eb3ee0 Fixed (AST: Wrong ast for function call with initializer list) 2020-12-26 18:33:54 +01:00
orbitcowboy 38fc6f209d Running astye [ci skip] 2020-12-26 14:02:03 +01:00
Oliver Stöneberg 00071d09f6
split "valueFlowBailoutIncompleteVar" from more generic "valueFlowBailout" () 2020-12-26 13:48:22 +01:00
Oliver Stöneberg fa8a836925
fixed some clang warnings () 2020-12-26 13:46:28 +01:00
IOBYTE 765c1ace87
fix (false negative: knownEmptyContainer with alias in namespace and "using namespace") () 2020-12-26 13:45:17 +01:00
Daniel Marjamäki f700d81e59 ImportProject: Fixed compile_commands.json problems 2020-12-25 14:47:01 +01:00
orbitcowboy 53a4f68cb2 wxwidgets.cfg: Added support for more interface, found by daca@home 2020-12-25 12:16:06 +01:00
Daniel Marjamäki cf57233f5d ImportProject: Try to handle -D and -I in the same way 2020-12-25 11:51:24 +01:00
Daniel Marjamäki bcf6039558 Fixed (False positive: redundant assignment, there is break) 2020-12-25 09:08:15 +01:00
Daniel Marjamäki 8fcef7ad0d astyle formatting
ci skip
2020-12-25 08:58:12 +01:00
Daniel Marjamäki b8f45a5c65 Replace and fix findBreakScope with findNextTokenFromBreak 2020-12-25 08:43:14 +01:00
Daniel Marjamäki 8bd783f820 Refactoring; Added findBreakScope and Scope::isLoopScope() 2020-12-24 22:58:31 +01:00
Paul Fultz II 7861aa00cf
Refactor afterCondition handlers into to seperate classes () 2020-12-24 20:07:46 +01:00
Ken-Patrick Lehrmann aad723bf3a
Fix false positive AssignmentIntegerToAddress () 2020-12-24 19:57:02 +01:00
Paul Fultz II e12a733ee9
Fix issue 10053: False positive: Same value on both branches of ternary operator () 2020-12-23 13:37:28 +01:00
Daniel Marjamäki d1139db960 astyle formatting
[ci skip]
2020-12-22 21:30:15 +01:00
Daniel Marjamäki e4766c73dc ExprEngine; Use 60s as default maxtime processing a function, the analysis time will be somewhat reasonable 2020-12-22 21:09:24 +01:00
Georgy Komarov 259f562e73
ExprEngine: Add condition branches for the while loops () 2020-12-22 20:21:57 +01:00
Daniel Marjamäki a9e7974963 ExprEngine: use 'real' instead of 'fpa' values in latest Z3 for floats 2020-12-22 18:05:21 +01:00