Robert Reif
|
2ba3a36f2c
|
Partial fix for #5555. Improved pure/const attributes handling
|
2014-03-14 19:06:05 +01:00 |
Daniel Marjamäki
|
b2708987c3
|
Merge pull request #264 from thomasjfox/simplematch
Use simple match where possible
|
2014-03-14 17:51:45 +01:00 |
Alexander Mai
|
ff5fc82704
|
Fixed #4722 (Debugging enhancement: Tokenizer::simplifyTokenList() shall continue)
|
2014-03-14 17:48:20 +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 |
Robert Reif
|
8c993c1363
|
Partial fix for #5555. Remember function attributes: pure, const, constructor, destructor
|
2014-03-14 05:40:17 +01:00 |
Robert Reif
|
cb1fc06a80
|
Fixed #5079 (CheckIO::checkFileUsage doesn't support wide char and microsoft functions)
|
2014-03-12 19:22:44 +01:00 |
Sam Truscott
|
385478d89e
|
Reflection no longer part of markup. Some tokeniser not done on markup.
|
2014-03-11 15:57:28 +01:00 |
Frank Zingsheim
|
6e9e20d5b1
|
Optimization Tokenizer::simplifyMathFunctions. Make an a priori check whether the token combination can be a function call at all.
|
2014-03-09 13:22:58 +01:00 |
Simon Martin
|
a3d1cac79c
|
Ticket #5373: Keep track whether tokens come from a C or C++ file to properly handle %type% in Token::Match with "delete"
|
2014-03-08 21:26:06 +01:00 |
Daniel Marjamäki
|
87c4508954
|
Spell fix: dont => do not
|
2014-02-27 16:40:42 +01:00 |
Daniel Marjamäki
|
acf5723bdd
|
AST: improved AST printout when --verbose is used
|
2014-02-24 17:22:29 +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 |
Lauri Nurmi
|
70a67eaf85
|
Change some more 0 literals into nullptr.
|
2014-02-16 13:38:50 +02:00 |
Daniel Marjamäki
|
384ffb4173
|
use nullptr in lib/tokenize.cpp
|
2014-02-15 08:04:54 +01:00 |
Daniel Marjamäki
|
fd3a8a2a18
|
Update copyright
|
2014-02-15 07:45:39 +01:00 |
Daniel Marjamäki
|
abe8439917
|
Fixed #5416 (False positive: Array accessed at index, which is out of bounds.)
|
2014-01-28 16:55:10 +01:00 |
Daniel Marjamäki
|
b91f42453b
|
value flow: improved handling of cast
|
2014-01-20 22:26:55 +01:00 |
Daniel Marjamäki
|
498cdb8610
|
added debug output for the value flow
|
2014-01-18 09:58:32 +01:00 |
Daniel Marjamäki
|
30cae358d8
|
Removed the --value-flow flag. ValueFlow analysis will always be enabled from now on.
|
2014-01-17 18:07:05 +01:00 |
Daniel Marjamäki
|
311059f603
|
Tokenizer: Removed commented-out simplification
|
2014-01-17 17:44:33 +01:00 |
Daniel Marjamäki
|
0203a4a6f5
|
Tokenizer: Removed simplifyGoto as it's the cause of various FPs I see
|
2014-01-17 17:36:45 +01:00 |
Daniel Marjamäki
|
4eb746d7cc
|
Tokenizer: Removed simplifyComparisonOrder
|
2014-01-17 17:25:56 +01:00 |
Daniel Marjamäki
|
ab866be03a
|
Tokenizer: Move 'else if' simplification to tokenize
|
2014-01-12 17:47:02 +01:00 |
Heinrich Schuchardt
|
f6510a6b45
|
Fixed #5339 (Tokenizer::setVarId : function-pointer function argument not getting variable id, causing FP)
|
2014-01-12 15:15:09 +01:00 |
Daniel Marjamäki
|
752e9d0fb7
|
Tokenizer::varId: Fixed wrong varid for shadow types with same names as class members
|
2014-01-09 21:44:29 +01:00 |
Daniel Marjamäki
|
4f11086505
|
Tokenizer: Don't remove parentheses in 'a?b:(c>0?d:e)'
|
2014-01-08 20:53:33 +01:00 |
Martin Ettl
|
fa04273473
|
Merge branch 'master' of https://github.com/danmar/cppcheck
|
2014-01-06 18:51:15 +01:00 |
Zachary Blair
|
4a2da09491
|
minor cleanups. initialize members in initialization list
|
2014-01-06 08:02:04 +01:00 |
Daniel Marjamäki
|
afaf1473a8
|
Value flow: refactorings, write debug warning if iterating too far
|
2014-01-05 20:06:46 +01:00 |
Daniel Marjamäki
|
29c64cc34c
|
Merge pull request #209 from simartin/ticket_5266
Ticket #5266: Properly tokenize "complex" static variable declarations.
|
2014-01-05 04:44:22 -08:00 |
Daniel Marjamäki
|
d8270c710a
|
Add new experimental value flow analysis
|
2014-01-04 20:57:02 +01:00 |
Simon Martin
|
d2cf9fd77c
|
Ticket #5266: Properly tokenize "complex" static variable declarations.
|
2014-01-04 10:49:27 +01:00 |
Simon Martin
|
6019f45249
|
Ticket #5201: Get rid of internal error when checking valid C input for memory leaks.
|
2014-01-03 23:27:56 +01:00 |
Martin Ettl
|
5a5277f2fa
|
Tokenizer::simplifyVarDecl: Fixed crash when checking garbage code.
|
2014-01-01 19:15:32 +01:00 |
Martin Ettl
|
0dccd3a632
|
Tokenizer:simplifyFlowControl(): Fixed crash on garbage code.
|
2014-01-01 19:04:02 +01:00 |
Daniel Marjamäki
|
32be4094e7
|
Symbol database: only put variables in variable list
|
2013-12-31 17:51:56 +01:00 |
PKEuS
|
4f0121ee2f
|
Splitted simplification out of tokenize()
|
2013-12-30 17:45:28 +01:00 |
Daniel Marjamäki
|
41e4194573
|
Tokenizer: set links for <> in 'a=new b<c>;' code
|
2013-12-29 15:37:27 +01:00 |
Daniel Marjamäki
|
596b4bd405
|
astyle formatting
|
2013-12-23 12:26:12 +01:00 |
Simon Martin
|
02dc49624d
|
Ticket #5214: Don't read out of bounds upon invalid ternary operator.
|
2013-12-22 18:13:52 +01:00 |
Daniel Marjamäki
|
e2bc99aa24
|
Fixed #5154 (Tokenizer: wrong handling of msvc 'for each')
|
2013-12-17 06:34:27 +01:00 |
Daniel Marjamäki
|
762806499f
|
Fixed #5182 (Tokenizer::simplifyEnum: template function call as enum value)
|
2013-12-16 07:07:00 +01:00 |
Daniel Marjamäki
|
7938692b01
|
Fixed #5212 (Tokenizer::simplifyEnum bad simplification of enum value (1<<0)|(1<<1))
|
2013-12-15 07:47:04 +01:00 |
Daniel Marjamäki
|
f599e3184c
|
Fixed #5174 (Tokenizer: member function 'abort' returns)
|
2013-12-14 11:12:48 +01:00 |
Daniel Marjamäki
|
5ba02d2fdd
|
AST: Always use AST
|
2013-12-09 18:06:19 +01:00 |
Daniel Marjamäki
|
0c5282b1af
|
Fixed #5081 (False positive: (error) Uninitialized variable: f (handling of C-cast not correct))
|
2013-11-28 16:04:47 +01:00 |
Alexander Mai
|
38b2f6b9b0
|
Fixed #5168 (segmentation fault (invalid code) in Tokenizer::simplifyVarDecl)
|
2013-11-24 11:07:11 +01:00 |
Simon Martin
|
9817da00ec
|
Ticket #5168: Don't crash when simplifying bit-fields for invalid code.
|
2013-11-23 20:33:03 +01:00 |
orbitcowboy
|
b74db1b791
|
Tokenize:simplifyFloatCast(): added corresponding suffix, incase of type 'float'.
|
2013-11-20 23:58:43 -08:00 |
Daniel Marjamäki
|
ef108c49ec
|
Tokenizer: simplify enums better. add parentheses to enforce operator precedence.
|
2013-11-20 18:04:28 +01:00 |
Daniel Marjamäki
|
47b98470eb
|
Tokenizer: Simplify float casts of integer constants
|
2013-11-19 18:07:12 +01:00 |
Daniel Marjamäki
|
2a640a59c2
|
Tokenizer: Improved handling of pointer aliases. This fixes some false negatives.
|
2013-11-16 17:30:04 +01:00 |
Daniel Marjamäki
|
30720affd6
|
Tokenizer::setVarId: Fixed hang when checking libgc
|
2013-11-15 16:16:22 +01:00 |
Daniel Marjamäki
|
7fe51eb58b
|
Fixed #4989 (False positive: Wrong processing of __asm block)
|
2013-11-13 06:04:00 +01:00 |
Martin Ettl
|
347e1eae20
|
Fixed #5162: Tokenizer:simplifyInitVar: Unused pointer value (UNUSED_VALUE) returned_pointer: Pointer tok2 returned by tok2->next() is never used (CID 1124084).
|
2013-11-10 00:40:42 +01:00 |
Daniel Marjamäki
|
b0ce42565e
|
AST: Added experimental new implementations for CheckAssignIf::comparison, CheckOther::checkIncorrectLogicOperator and CheckOther::checkDuplicateExpression
|
2013-11-07 14:38:08 +01:00 |
orbitcowboy
|
929cda6696
|
fixed #5141: Tokenizer: Dereference before null check (Scan.coverity id 1061759)
|
2013-11-04 03:53:23 -08:00 |
Daniel Marjamki
|
bcc8384a95
|
Fixed #5145 (False Positive: Variable 'A' hides enumerator with same name)
|
2013-11-03 09:34:48 +01:00 |
Daniel Marjamäki
|
5f0cfa0ee4
|
Fixed #4983 (False positive warning 'Possible null pointer dereference: lblList - otherwise it is redundant to check it against null.' with sizeof lblList[0])
|
2013-11-02 23:56:10 +01:00 |
Daniel Marjamäki
|
bbdfd8b5c7
|
Make it possible to create AST, by using the --ast flag
|
2013-11-02 18:37:35 +01:00 |
Daniel Marjamäki
|
f0a621a952
|
Tokenizer: Added MAXTIME so cppcheck can be compiled with a hard max time. Will be used for the daca2.
|
2013-11-02 17:31:14 +01:00 |
Daniel Marjamäki
|
d3bd373798
|
Fixed #5131 (False Positive: %u in format string requires 'unsigned int' but the argument type is 'int'.)
|
2013-10-31 17:20:00 +01:00 |
Simon Martin
|
d67722ebdf
|
Ticket #5121: Handle comma separated static variable declarations depending on one another
|
2013-10-30 15:48:00 +01:00 |
orbitcowboy
|
30984ff649
|
Tokenize: improved const correctness of local variables, no functional change.
|
2013-10-25 01:34:53 -07:00 |
orbitcowboy
|
76e092428a
|
Tokenize: improved const correctness of local variables, no functional change.
|
2013-10-25 01:31:55 -07:00 |
Daniel Marjamäki
|
5d7e0aebf4
|
Fixed #5084 (False positive: (style) Same expression on both sides of '&&')
|
2013-10-19 18:04:53 +02:00 |
Robert Reif
|
b41ab8a4d5
|
Fixed #5088 (Token::Match called with varid 0. in libreoffice sd/source/ui/table/TableDesignPane.cxx)
|
2013-10-14 21:05:54 +02:00 |
orbitcowboy
|
9debeab47c
|
Tokenizer:simplifyMathExpressions: fixed false negative patterns for simplification.
|
2013-10-11 11:58:37 -07:00 |
Martin Ettl
|
a674ed1aa9
|
Tokenizer:simplifyMathFunction: added simplifcation for fma[f|l]() functions.
|
2013-10-13 16:28:02 +02:00 |
Martin Ettl
|
e18ebf313f
|
Tokenizer:simplifyMathFunctions: added support for more math functions.
|
2013-10-13 15:41:47 +02:00 |
Martin Ettl
|
cdb47813d5
|
Tokenizer:simplifyMathFunctions: added support for cosh[f|l], cos[f|l] and erfc[f|l] functions.
|
2013-10-13 14:23:10 +02:00 |
orbitcowboy
|
6eaa2f2444
|
Tokenizer:simplifyMathFunctions: added support for acos[f|l] functions.
|
2013-10-09 07:59:32 -07:00 |
Martin Ettl
|
f08325284c
|
Tokenizer:simplifyMathFunctions: added support for acosh[f|l]() functions.
|
2013-10-07 22:10:58 +02:00 |
Daniel Marjamäki
|
c234cace6d
|
Fixed #5064 (Tokenizer::simplifySizeof: Doesn't simplify 'sizeof !! (a==1);' properly)
|
2013-10-06 08:20:10 +02:00 |
Daniel Marjamäki
|
9cfc1030cd
|
Tokenizer: Optimised loop
|
2013-10-06 07:46:35 +02:00 |
Robert Reif
|
44559a1fb2
|
Fixed #5069 (sizeof(void) when variable name is override)
|
2013-10-05 07:40:59 +02:00 |
Robert Reif
|
6c06cdd24d
|
CheckIO fixes. Ticket: #5051
|
2013-10-04 17:30:55 +02:00 |
Martin Ettl
|
a8cf8f0984
|
Tokenizer:simplifyMathFunctions: fixed false positives when simplifying special pow() cases.
|
2013-10-03 22:54:45 +02:00 |
Martin Ettl
|
f8bd33f2bc
|
Tokenizer:simplifyMathFunctions: added support for log()-functions. Improved testcases and documentation. The function simplifyMathFunctions() returns now true in case a simplifcation is made. This function is called within a while loop to guarantee all simplifications are made.
|
2013-10-03 20:52:07 +02:00 |
Martin Ettl
|
548e2f3fbf
|
Tokenizer:simplifyMathExpression: fixed false negatives in simplifying Pythagorean and Hyperbolic identities.
|
2013-10-03 15:41:12 +02:00 |
Robert Reif
|
59de30823e
|
CheckIO: This patch adds support for fprintf_s, fscanf_s and %I. Ticket: #5051
|
2013-10-03 06:37:40 +02:00 |
Robert Reif
|
022e7a0f0f
|
CheckIO: Fix INT_PTR false positive found while checking mpc-hc. Ticket: #5057
|
2013-10-02 04:19:04 +02:00 |
Martin Ettl
|
fa5ee8fd13
|
Tokenizer: simplifyMathFunctions: added more simplifications for exp(), exp2() and log2() functions.
|
2013-10-01 20:30:59 +02:00 |
Robert Reif
|
cc6745fef6
|
CheckIO: Fixed false positives when using _snprintf_s and _snwprintf_s. Ticket: #5057
|
2013-10-01 05:49:44 +02:00 |
Martin Ettl
|
f0cbeb5233
|
simplifyMathFunctions: added support for exp(),sqrt(),cbrt() functions.
|
2013-09-29 18:11:17 +02:00 |
Robert Reif
|
c37c6617d3
|
Fixed #5057 (Microsoft secure printf/scanf support.)
|
2013-09-30 19:55:21 +02:00 |
Daniel Marjamäki
|
f96a88ec57
|
Fixed #5054 (debug warnings when Variable::typeStartToken() or Variable::typeEndTypen() is not set correctly)
|
2013-09-29 16:01:22 +02:00 |
Martin Ettl
|
0527aefb11
|
Improved simplifyMathFunctions when simplifying special cases of pow(x,y)-function.
|
2013-09-29 15:11:09 +02:00 |
Martin Ettl
|
805d082cd1
|
Tokenizer:simplifyMathFunction: added support for [ll]div() functions and corresponding unittests. The simplifcation is only performed, if a division by 1 is detected.
|
2013-09-26 07:01:08 +02:00 |
Martin Ettl
|
ea5bcfaa35
|
Fixed #5040 - simplify more math functions.
|
2013-09-26 00:44:16 +02:00 |
Robert Reif
|
2de3ebcb1e
|
CheckIO: fixed some more false negatives. Ticket: #4964
|
2013-09-24 06:43:03 +02:00 |
Daniel Marjamäki
|
d1c9cac155
|
Merge pull request #170 from simartin/clang_warnings_2
Remove warnings emitted by clang's -Wsign-conversion
|
2013-09-22 20:42:10 -07:00 |
Simon Martin
|
894f537eba
|
Remove warnings emitted by clang's -Wsign-conversion
|
2013-09-22 13:22:52 +02:00 |
Robert Reif
|
5c4c397372
|
CheckIO: add scanf argument type checking. Floating point and integer checking is complete but string checking is incomplete and character checking is missing. Ticket #4099
|
2013-09-22 06:56:31 +02:00 |
Lucas Manuel Rodriguez
|
2fce3e6104
|
Fixed #5037 (Add missing C++ std objects and types)
|
2013-09-21 12:13:35 -03:00 |
Martin Ettl
|
d5f514c820
|
Fixed #5031: simplify labs|fabs|abs(-1) to 1.
|
2013-09-21 16:59:06 +02:00 |
Robert Reif
|
489a3a6e53
|
Fixed #5015 (strings not being concatinated properly)
|
2013-09-06 05:36:33 +02:00 |
Daniel Marjamäki
|
9000c233fa
|
Fixed #5012 (Hang when there is syntax error 'else }')
|
2013-09-05 06:38:07 +02:00 |
Daniel Marjamäki
|
6819f5ed18
|
Fixed #4860 (Segfault with another Clucene file)
|
2013-09-02 05:58:55 +02:00 |
Robert Reif
|
8790f6d73f
|
Fixed #4999 (Crash with simple code snipped in rev ab30fa3 )
|
2013-08-31 18:58:55 +02:00 |