Commit Graph

97 Commits

Author SHA1 Message Date
Daniel Marjamäki 8eeda150cf ValueFlow: Improved simplification inside for-loops 2014-03-25 21:40:36 +01:00
Daniel Marjamäki c8004a8d31 Buffer overruns: Use ValueFlow to detect negative index 2014-03-25 18:22:22 +01:00
Daniel Marjamäki aa05bf0f16 ValueFlow: Improved abstract interpretation 2014-03-24 06:48:06 +01:00
Daniel Marjamäki dbc8273cb7 ValueFlow: improved abstract interpretation of for loops 2014-03-24 00:16:02 +01:00
Daniel Marjamäki c14a3d67bb ValueFlow: Handle division by zero better in abstract interpretation 2014-03-23 20:37:56 +01:00
Daniel Marjamäki 30fa187b30 Fixed #5549 (ValueFlow: Handle static variables better in valueFlowAfterAssign) 2014-03-23 17:57:27 +01:00
Daniel Marjamäki b6276058da Value Flow: Improved abstract interpretation of arithmetical expressions 2014-03-22 19:02:33 +01:00
Alexander Mai cdd6d4df27 Removing a useless variable to fix cppcheck warning in its own code 2014-03-21 22:11:10 +01:00
Daniel Marjamäki 045e9e692b ValueFlow: restricted bailouts in for loops 2014-03-21 08:48:49 +01:00
Daniel Marjamäki fc014f055f ValueFlow: Removed wrong bailout 2014-03-21 08:33:45 +01:00
Daniel Marjamäki 01c29ed15f Fixed #5518 (FP regression in 1.64: Array accessed out of bounds) 2014-03-18 17:04:33 +01:00
Daniel Marjamäki e240282443 Value Flow: Another try with the abstract interpretation of for loops 2014-03-17 18:43:47 +01:00
Daniel Marjamäki 8c3f2c2ad9 Revert 894a65b0. abstract interpretation of for loops. there was some crashes and performance problems. I will fix those problems when I have time and recommit. 2014-03-16 08:38:52 +01:00
Daniel Marjamäki 894a65b0b1 ValueFlow: Refactor the for-loop handling. Use abstract interpretation. 2014-03-15 11:29:33 +01:00
Thomas Jarosch 93341f4449 Use simple match where possible
Fixes these warnings found by "--enable=internal":

[lib/checkclass.cpp:972]: (warning) Found simple pattern inside Token::Match() call: "* *"
[lib/checkbufferoverrun.cpp:635]: (warning) Found simple pattern inside Token::Match() call: "."
[lib/checkbufferoverrun.cpp:1397]: (warning) Found simple pattern inside Token::Match() call: ";"
[lib/checksizeof.cpp:299]: (warning) Found simple pattern inside Token::Match() call: "."
[lib/checksizeof.cpp:301]: (warning) Found simple pattern inside Token::Match() call: ")"
[lib/checksizeof.cpp:303]: (warning) Found simple pattern inside Token::Match() call: "]"
[lib/checksizeof.cpp:318]: (warning) Found simple pattern inside Token::Match() call: ")"
[lib/checknullpointer.cpp:413]: (warning) Found simple pattern inside Token::Match() call: "delete"
[lib/checkio.cpp:1336]: (warning) Found simple pattern inside Token::Match() call: "> ("
[lib/checkstl.cpp:1509]: (warning) Found simple pattern inside Token::findmatch() call: ";"
[lib/checkstl.cpp:1512]: (warning) Found simple pattern inside Token::findmatch() call: ";"
[lib/checkstl.cpp:1594]: (warning) Found simple pattern inside Token::Match() call: "="
[lib/checkstl.cpp:1598]: (warning) Found simple pattern inside Token::Match() call: "] ="
[lib/checkunusedvar.cpp:755]: (warning) Found simple pattern inside Token::Match() call: "goto"
[lib/checkunusedvar.cpp:793]: (warning) Found simple pattern inside Token::Match() call: "="
[lib/checkuninitvar.cpp:376]: (warning) Found simple pattern inside Token::Match() call: "> ("
[lib/checkother.cpp:86]: (warning) Found simple pattern inside Token::Match() call: "> ("
[lib/checkother.cpp:2181]: (warning) Found simple pattern inside Token::Match() call: "> {"
[lib/valueflow.cpp:54]: (warning) Found simple pattern inside Token::Match() call: "&"
[lib/valueflow.cpp:409]: (warning) Found simple pattern inside Token::Match() call: "do"
[lib/valueflow.cpp:425]: (warning) Found simple pattern inside Token::Match() call: ") {"
[lib/valueflow.cpp:487]: (warning) Found simple pattern inside Token::Match() call: ") {"
[lib/valueflow.cpp:511]: (warning) Found simple pattern inside Token::Match() call: "} else {"
[lib/valueflow.cpp:615]: (warning) Found simple pattern inside Token::Match() call: "for ("
[lib/symboldatabase.cpp:80]: (warning) Found simple pattern inside Token::Match() call: "= {"
[lib/symboldatabase.cpp:1069]: (warning) Found simple pattern inside Token::Match() call: "std ::"
[lib/tokenize.cpp:2207]: (warning) Found simple pattern inside Token::Match() call: "< >"
[lib/tokenize.cpp:2730]: (warning) Found simple pattern inside Token::Match() call: ";"
[lib/tokenize.cpp:4234]: (warning) Found simple pattern inside Token::Match() call: "try {"
[lib/tokenize.cpp:4235]: (warning) Found simple pattern inside Token::Match() call: "} catch ("
[lib/tokenize.cpp:5500]: (warning) Found simple pattern inside Token::Match() call: "INT8"
[lib/tokenize.cpp:5752]: (warning) Found simple pattern inside Token::Match() call: "}"
[lib/tokenize.cpp:5752]: (warning) Found simple pattern inside Token::Match() call: "do"
2014-03-14 16:27:47 +01:00
Daniel Marjamäki 87c4508954 Spell fix: dont => do not 2014-02-27 16:40:42 +01:00
Daniel Marjamäki f6b42633e8 Fixed #5434 (FP: Out-of-bounds access with ternary operator in loop) 2014-02-22 17:59:12 +01:00
Daniel Marjamäki 34730f623a Fixed #5301 (False positive: (error) Division by zero - variables read from input stream) 2014-02-22 12:09:54 +01:00
Daniel Marjamäki 690c37633b ValueFlow: Fixed bad values after break/continue 2014-02-17 20:07:38 +01:00
Lauri Nurmi 70a67eaf85 Change some more 0 literals into nullptr. 2014-02-16 13:38:50 +02:00
Daniel Marjamäki 23efc68dd7 use nullptr 2014-02-16 10:32:10 +01:00
Daniel Marjamäki fd3a8a2a18 Update copyright 2014-02-15 07:45:39 +01:00
Daniel Marjamäki b3bfd5014d Fixed #5433 (FP:Possible null pointer dereference) 2014-01-31 15:43:34 +01:00
Lucas Manuel Rodriguez ad0269eeeb Refactor checks using Variable::isStlType() 2014-01-30 01:26:48 -03:00
Daniel Marjamäki be082a8e4a value flow: added bailout for conditional return/continue/break when number_of_if is bigger than 0 2014-01-26 15:50:25 +01:00
Daniel Marjamäki c5971b7137 value flow: fix fp when conditional value is assigned 2014-01-25 20:14:49 +01:00
Daniel Marjamäki c1e35e1df1 value flow: fixed multivariable problem in condition 2014-01-25 19:13:33 +01:00
Daniel Marjamäki d227ed245f cleanup 2014-01-25 18:51:55 +01:00
Daniel Marjamäki df0995edf5 Fixed #5403 (Value flow: FP because post increment/decrement is not handled correctly) 2014-01-25 18:31:02 +01:00
Daniel Marjamäki 35b51468cb value flow: Fixed FP for division then check in for loop: 'for (a=b/x;x>0;x--)' 2014-01-25 09:22:32 +01:00
Daniel Marjamäki 4647a9fc93 Fixed #5401 (value flow: fp when there are increment/decrement) 2014-01-24 18:22:38 +01:00
Daniel Marjamäki 1cac7e1686 value flow: better handling in function call bailout of casting address of variable 2014-01-24 17:47:49 +01:00
Daniel Marjamäki 135998abba value flow: use const when possible 2014-01-24 06:16:23 +01:00
Daniel Marjamäki 85b6495cce value flow: fixed comments 2014-01-23 19:40:47 +01:00
Daniel Marjamäki f3f7e6d302 value flow: replacing executionpath checking of null pointers 2014-01-22 20:16:31 +01:00
Daniel Marjamäki 43db1ee797 value flow: use more specific bailouts when analysing value flow after assignment 2014-01-22 06:38:25 +01:00
Daniel Marjamäki cc38dec3ad value flow: a bit better handling of assigned variable 2014-01-22 06:10:17 +01:00
Daniel Marjamäki 2b7a991c1a temporarily hide gcc warnings 2014-01-21 21:17:03 +01:00
Daniel Marjamäki a27ccbd0f8 value flow: start implementing value flow analysis of assigned value 2014-01-21 21:13:49 +01:00
Daniel Marjamäki b91f42453b value flow: improved handling of cast 2014-01-20 22:26:55 +01:00
Daniel Marjamäki bb3cc67aaa value flow: improved calculations that depends on variable 2014-01-20 21:45:30 +01:00
Daniel Marjamäki 7ff7bc1c2e Fixed #5376 (false positive: zerodivcond (style) Either the condition 'B>0' is useless or there is division by zero) 2014-01-19 20:16:55 +01:00
Daniel Marjamäki 84c5f47eb1 value flow: bailout for class variables that are non-const 2014-01-19 11:55:02 +01:00
Daniel Marjamäki ccda78f347 value flow: fixed todo assertion for handling of conditions 2014-01-19 09:31:40 +01:00
Daniel Marjamäki cdaa7abf7e value flow: better handling of conditional code below || && ?: operators 2014-01-19 09:05:48 +01:00
Daniel Marjamäki 2d0a68cac2 cleanup redundant variable inconclusive 2014-01-18 19:51:57 +01:00
Daniel Marjamäki 77f3f6c21a valueflow: added setTokenValue that perform calculations using set value 2014-01-18 19:30:44 +01:00
Daniel Marjamäki c7032a8867 value flow: improved handling of loops 2014-01-18 11:54:00 +01:00
Daniel Marjamäki 57d318b2e5 valueflow: better handling of increment/decrement 2014-01-17 19:28:28 +01:00
Daniel Marjamäki 141e089329 ast: different handling of for loops. create a syntax tree for whole 'f(a;b;c)'. 2014-01-15 17:32:14 +01:00