Commit Graph

12570 Commits

Author SHA1 Message Date
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 (#2970) 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
Daniel Marjamäki 315892d991 ExprEngine; add a 'stupid' handling of floating point promotions for integers 2020-12-22 17:15:11 +01:00
Daniel Marjamäki 1812951640 ExprEngine; Fix problem when float suffix is used 2020-12-22 15:17:36 +01:00
Daniel Marjamäki 347fccb207 ExprEngine; Avoid overspecified constraints 2020-12-22 11:10:01 +01:00
amai2012 f0da9098b9
Set language compatibility to C++14 in Visual Studio (#2967)
There is no C++11 flag
2020-12-22 10:24:25 +01:00
Georgy Komarov 0731df7d2d
ExprEngine: Add FP and String literals in determining that condition can (#2969) 2020-12-22 09:25:54 +01:00
Daniel Marjamäki fcb496fb40 Fixed compiler error 2020-12-22 08:17:14 +01:00
Daniel Marjamäki f6447cc546 ExprEngine; Wrap z3 interface that is not the same in different z3 versions 2020-12-22 08:13:40 +01:00
Daniel Marjamäki 13ed2effa1 astyle formatting
[ci skip]
2020-12-22 08:09:51 +01:00
IOBYTE 2ecab32fbe
fix debug printing of valuetype name with namespaces (#2968) 2020-12-21 19:47:54 +01:00
Daniel Marjamäki c3e798968c ExprEngine; Fix floating point comparison 2020-12-21 13:28:10 +01:00
Georgy Komarov 86f1ee5267
ExprEngine: Add workarounds for z3 bugs with FP comparisson (#2965) 2020-12-21 12:32:26 +01:00
abhijit-sawant 7d6fc23022
Checking in fix for issue 9957 - - False negative: duplInheritedMember (#2964) 2020-12-21 07:14:52 +01:00
Daniel Marjamäki 47bb487c95 Visual Studio; Try to fix compilation 2020-12-20 21:01:45 +01:00
Daniel Marjamäki 37a5ec8cd5 Summaries: Moved to its own files 2020-12-20 19:53:58 +01:00
Daniel Marjamäki 5701f6d368 ExprEngine: Added ifIntRangeAlwaysFalse and ifIntRangeAlwaysTrue tests 2020-12-20 19:04:46 +01:00
Daniel Marjamäki 229e39e7de Revert "ExprEngine: Fixed float value"
This reverts commit 1f9edc6a66.
2020-12-20 16:36:22 +01:00
Daniel Marjamäki 40e24cf417 Revert "ExprEngine; Try to fix assertion failure for floats"
This reverts commit aaabc74b9f.
2020-12-20 16:36:11 +01:00
Daniel Marjamäki aaabc74b9f ExprEngine; Try to fix assertion failure for floats 2020-12-20 16:31:53 +01:00
Daniel Marjamäki 1f9edc6a66 ExprEngine: Fixed float value 2020-12-20 15:22:11 +01:00
Daniel Marjamäki 1ce5beb45f ExprEngine; refactoring if() 2020-12-20 14:51:03 +01:00
Daniel Marjamäki 1bf6a2f62b Summaries: Enhanced merge of noreturn info 2020-12-20 14:49:43 +01:00
Heiko Bauke 077fcad4ee
fix compile-time rounding error and fix overflow check (#2937)
fixes implicit conversion from 'unsigned long long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Werror,-Wimplicit-int-float-conversion]
2020-12-20 08:09:39 +01:00
Daniel Marjamäki 7a7d51a548 Fixed Cppcheck warning. Using emplace is not allowed for now for compatibility reasons. 2020-12-20 07:52:09 +01:00
Daniel Marjamäki 28e33ef0b9 Fix Cppcheck performance warning stlFindInsert properly 2020-12-19 22:23:39 +01:00
Wolfgang Stöggl 079255d913
Fix gcc11 build errors (#2963) 2020-12-19 21:54:19 +01:00
Daniel Marjamäki d3d36dad2a Suppress false positive stlFindInsert 2020-12-19 21:53:23 +01:00
Daniel Marjamäki a493e17a6a Tweaks to use summaries in GUI 2020-12-19 20:46:00 +01:00
Daniel Marjamäki 96caaedbd5 Generate basic function summaries 2020-12-19 19:02:42 +01:00
Paul Fultz II a770342593
Fix crash in getInitListSize (#2960) 2020-12-19 12:23:19 +01:00
Daniel Marjamäki 1744cbaf66 astyle formatting
[ci skip]
2020-12-19 08:56:46 +01:00
miltolstoy 6366a577f9
feat(unused_var): analyze global variables inside function body (#2944) 2020-12-19 08:55:19 +01:00
Paul Fultz II 626dcd0eba
Fix issue 10037: False positive when passing variables to functions by address (#2957) 2020-12-19 08:29:37 +01:00
Paul Fultz II 2541b6034f
Fix issue 10049: False positive: generic reverse valueflow analysis (#2959) 2020-12-19 08:28:58 +01:00
Daniel Marjamäki 164c6b3441 Bug hunting; Detect array index out of bounds for multi dimensional arrays also 2020-12-18 21:32:23 +01:00
Daniel Marjamäki 33cde46068 astyle formatting
[ci skip]
2020-12-18 21:31:44 +01:00
Daniel Marjamäki 62a11f6490 Bug hunting; Fixed timeout 2020-12-18 20:41:10 +01:00
Daniel Marjamäki 1b0ca0811f Bug hunting; option to set function analysis max time 2020-12-18 19:59:10 +01:00
IOBYTE f2cf11682a
fix #10040 (symbolDatabaseWarning: debug: Executable scope 'x' with unknown function.) (#2955) 2020-12-18 07:46:01 +01:00
Paul Fultz II b044f9ba96
Fix issue 9996: false negative: containerOutOfBounds with std::vector::front() and c++11 braced initializer (#2958) 2020-12-18 07:14:11 +01:00
Daniel Marjamäki 0b98053790 Fixed Cppcheck warning; Redundant assignment 2020-12-17 15:29:15 +01:00
Daniel Marjamäki 75f2ab20e8 Bug hunting; void* => might point at uninitialized data 2020-12-17 07:32:53 +01:00
Daniel Marjamäki 8619bfe957 Bug hunting; Remove old value from array when it is overwritten 2020-12-16 19:06:20 +01:00
Paul Fultz II c9d2e55ea9
Fix issue 10035: FP: knownConditionTrueFalse when bool updated in for loop (#2953) 2020-12-16 17:25:21 +01:00
IOBYTE 2a05bc565d
insert simplified types for implicit template type deduction (#2952)
Co-authored-by: Robert Reif <reif@FX6840>
2020-12-15 22:28:58 +01:00
Daniel Marjamäki ecfabbcdbb Fix Cppcheck warning nullPointerRedundantCheck 2020-12-15 07:11:13 +01:00
Daniel Marjamäki 82635417d2 Bug hunting; Fixed array init 2020-12-14 22:15:10 +01:00
Daniel Marjamäki 4e90356a76 Bug hunting; Code cleanup 2020-12-14 18:04:12 +01:00
Daniel Marjamäki 116119083b Bug hunting; Better result from function that returns unknown pointer result 2020-12-14 17:53:28 +01:00
Daniel Marjamäki ab3614b4e2 Bug hunting; Improved debug output for structs 2020-12-14 12:32:39 +01:00
Paul Fultz II da1375c9a3
Fix issue 10024: FP: nullPointerRedundantCheck when using a goto statement (#2947) 2020-12-14 11:13:47 +01:00
Daniel Marjamäki bf951ea5e6 Bug hunting; Fix for '*x=y' 2020-12-13 19:54:57 +01:00
Georgy Komarov 38a055d2f3
ExprEngine: Better debug output for exceptions (#2943) 2020-12-13 16:54:22 +01:00
Daniel Marjamäki 8f71e62fd6 Fix Cppcheck warning 2020-12-13 16:47:50 +01:00
Georgy Komarov 36ab23f1f7
ExprEngine: Handle pointers to struct as function argument (#2945) 2020-12-13 16:02:35 +01:00
Daniel Marjamäki 81c3ac738d CI: Fix testrunner 2020-12-13 15:51:20 +01:00
Daniel Marjamäki 6fb1a81eae Bug hunting; more debug output 2020-12-13 14:05:35 +01:00
Daniel Marjamäki b18dc0fdbb Bug hunting: Handle not better 2020-12-13 13:00:04 +01:00
Daniel Marjamäki 0ccc5c695b Bug hunting: prevent recursion in analysis when code calls self 2020-12-13 09:33:40 +01:00
Daniel Marjamäki be16b2c276 Bug hunting; better handling of early return 2020-12-13 09:13:26 +01:00
Daniel Marjamäki 2e96cc932d ExprEngine; Improved debug output, show constraints. 2020-12-12 21:23:38 +01:00
Daniel Marjamäki a7fb946ab8 ExprEngine: Clarify debug output a bit 2020-12-12 18:29:17 +01:00
Daniel Marjamäki cba8b99095 ExprEngine: Catch and handle exceptions in ExprData 2020-12-12 17:33:21 +01:00
Daniel Marjamäki d0f700305c ExprEngine: Avoid analyzing unreachable execution paths 2020-12-12 15:22:49 +01:00
IOBYTE 7fc03c6030
fix #10032 (Syntax error if first function in a struct is a template function) (#2940)
Co-authored-by: Robert Reif <reif@FX6840>
2020-12-11 07:01:20 +01:00
Daniel Marjamäki d340e8770c Fixed Tokenizer::setVarId when removing last scope name 2020-12-08 17:39:04 +01:00
Daniel Marjamäki 245284acde Tokenizer; Fixed varid for base class member variable 2020-12-08 17:25:50 +01:00
Daniel Marjamäki 7a4462dac5 Tokenizer: Refactoring, use isFunctionHead in setVarId. It should be more reliable. 2020-12-08 16:53:55 +01:00
Daniel Marjamäki 6d7ddde1b5 Bug hunting; Make bughuntingUninit check a bit less noisy about const parameters 2020-12-08 13:34:46 +01:00
Daniel Marjamäki 99cb65b4b2 Bug hunting; Clarify bughuntingUninit output for non-const parameters 2020-12-08 11:16:38 +01:00
IOBYTE 8161baf1e9
fix template debug output line numbers (#2938) 2020-12-08 10:35:13 +01:00
IOBYTE 6103da59be
add column number to TokenList::addtoken (#2939) 2020-12-08 10:34:23 +01:00
Daniel Marjamäki bcc7945540 Bug hunting; Separate bughuntingUninit warnings for arguments with separate id 2020-12-08 10:28:40 +01:00
Daniel Marjamäki 02bb14003b Bug hunting; better handling of struct member assignment in for loop 2020-12-07 19:58:19 +01:00
Daniel Marjamäki 39a9350f6e Bug hunting: Better analysis of BailoutValue 2020-12-07 06:27:14 +01:00
Daniel Marjamäki 7e9cbda2d5 Revert "2"
This reverts commit db386b2a7f.

That commit was half-done and not intended to be merged.
2020-12-06 22:29:46 +01:00
IOBYTE 8d9f0b3528
fix #9394 ("debug: Executable scope 'x' with unknown function." with … (#2935) 2020-12-06 22:08:42 +01:00
Daniel Marjamäki db386b2a7f 2 2020-12-06 21:45:48 +01:00
Daniel Marjamäki d12732adfb Bug hunting; Diagnose array index out of bounds when struct member is accessed 2020-12-06 17:44:07 +01:00
Daniel Marjamäki 3bf758a04b Bug hunting; Ensure there is warning after unknown variable expression 2020-12-06 10:13:10 +01:00
Daniel Marjamäki 7324722dab Bug hunting; Detect array index out of bounds in loop better 2020-12-05 20:39:54 +01:00
Daniel Marjamäki 089f193d6c Bug hunting; Fix test CVE-2019-19334 2020-12-05 18:52:18 +01:00
Daniel Marjamäki 46454b1795 CI: Fixed TestBughuntingChecks 2020-12-05 14:56:06 +01:00
Daniel Marjamäki bdfac5db09 Bug hunting: Fixed test case CVE-2019-19334 2020-12-05 13:51:12 +01:00
Daniel Marjamäki cb7eee2aa9 SymbolDatabase: Improved types for 'std::string + x' 2020-12-05 13:24:21 +01:00
Daniel Marjamäki 86ceafa870 Fixed compiler warning; missing enum case in switch 2020-12-05 13:02:43 +01:00
Daniel Marjamäki 076e78ebd0 Fixed Cppcheck warning (explicitConstructor) 2020-12-05 12:41:01 +01:00
Daniel Marjamäki da4cd6a4f4 Bug hunting; Improved buffer overflow check 2020-12-05 11:47:57 +01:00
Daniel Marjamäki 396c353d3c bug hunting: Add array index check 2020-12-05 11:46:07 +01:00
Daniel Marjamäki 2a1e230d2e 2.3: Update version 2020-12-05 10:00:02 +01:00
Daniel Marjamäki c89512d8d6 Update copyright year 2020-12-05 09:28:33 +01:00
IOBYTE ab16603666
fix #9685 (Handle 'extern "C++"') (#2933) 2020-12-05 09:26:11 +01:00
Daniel Marjamäki 600637a391 Fix Cppcheck warning; make ImportProject::FileSettings::parseCommandDefine() static 2020-12-04 20:46:44 +01:00
Daniel Marjamäki 40963100c4 Avoid functionStatic FP when there is #ifdef in function 2020-12-04 20:29:10 +01:00
Daniel Marjamäki 58af3c7ad7 Suppress Cppcheck false positive 2020-12-04 19:37:58 +01:00
Daniel Marjamäki c6452adc88 Fixed Cppcheck warning; Remove unused private method CheckBufferOverrun::bufferNotZeroTerminatedError 2020-12-04 18:58:10 +01:00
Daniel Marjamäki aa28f3fe8c Removed Cppcheck::terminate() 2020-12-04 18:47:43 +01:00
IOBYTE 9c51d4c12d
instantiate nested templates in the proper order (#2930) 2020-12-04 08:04:16 +01:00