Daniel Marjamäki
8d75d1b920
Partial fix for #8028 (ValueFlow: Origin/callstack of value)
2017-05-15 20:05:11 +02:00
PKEuS
3432257390
Removed deprecated command --append
2017-05-14 11:57:04 +02:00
PKEuS
fda1f67da6
Set version to 1.79.99/1.80 dev
2017-05-14 10:07:38 +02:00
PKEuS
fb94ad21fa
Updated Visual Studio solution to VS2017.
2017-05-14 10:04:25 +02:00
Daniel Marjamäki
45d998979c
CHECK_WRONG_DATA: switch to debug macro
2017-05-13 19:10:05 +02:00
Daniel Marjamäki
55cd69e290
alwaysTrueFalse: Dont warn when checking sizeof for some type. such condition might be platform dependent.
2017-05-13 19:07:24 +02:00
Daniel Marjamäki
e5e5a5e4b8
1.79: Set version
2017-05-13 11:25:16 +02:00
Daniel Marjamäki
95db173e77
Fixed Cppcheck warning
2017-05-13 11:06:33 +02:00
orbitcowboy
b9bac79a8c
Improved const correctness, there are no functional changes.
2017-05-12 16:20:47 +02:00
PKEuS
68d77b73da
SymbolDatabase: Fixed parsing of unnamed arguments, properly detect pointers ( #8052 )
2017-05-07 09:03:58 +02:00
PKEuS
28b8bc57a8
CheckVaarg::va_list_usage(): Bailout on "goto" ( #8043 )
2017-05-07 08:32:48 +02:00
PKEuS
b345c430fe
CheckStl::readingEmptyStlContainer(): Skip over lambdas ( #8055 )
2017-05-07 08:15:58 +02:00
Alexander Mai
c1cdcc158f
Run astyle. Fix some Doxygen issues
2017-05-06 11:57:02 +02:00
amai2012
3e11eb9dca
#8050 cppcheckError: 0xFFFFFFul -> 16777215ULU. Don't add a suffix 'U' if there is already a suffix present.
2017-05-05 14:47:58 +02:00
Daniel Marjamäki
a8a54bbfa8
Fixed #6028 (Improvement: False positive caused by C keywords in assembly comments)
2017-05-05 08:57:24 +02:00
Daniel Marjamäki
65297ce285
Fixed #7191 (false positive memleak on in-place new)
2017-05-04 19:39:57 +02:00
Alexander Mai
f54a6f085b
#7883 hang: CheckOther::checkFuncArgNamesDifferent() template code in .h. Activate language check for header files + Small refactoring
2017-05-03 20:36:26 +02:00
Daniel Marjamäki
1ec9b8c5b4
Fixed #8047 (false positive uninitialized variable - sizeof **A)
2017-05-03 19:27:55 +02:00
Alexander Mai
e88b4dcf06
Add another check to Tokenizer::validateC(): C++ casts
2017-05-03 16:57:42 +02:00
Matthias Krüger
a28f57344c
templatesimplifier: mark getTemplateNamePositionTemplateMember() static.
...
Fixes gcc 7-dev warning:
lib/templatesimplifier.cpp: In function ‘bool getTemplateNamePositionTemplateMember(const Token*, int&)’:
lib/templatesimplifier.cpp:715:6: warning: no previous declaration for ‘bool getTemplateNamePositionTemplateMember(const Token*, int&)’ [-Wmissing-declarations]
bool getTemplateNamePositionTemplateMember(const Token *tok, int &namepos)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2017-05-03 08:45:48 +02:00
Daniel Marjamäki
295e4fdfc2
Fixed #8049 (Preprocessor: Comment in system include not removed properly)
2017-05-02 22:18:24 +02:00
Alexander Mai
1bc7a89b3c
Improve search patterns within Tokenizer::validateC()
2017-05-02 17:57:06 +02:00
Robert Reif
e2bfe1c0ec
Fixed #8044 : Crash below SymbolDatabase::setValueType
2017-05-01 14:12:50 -04:00
Matthias Krüger
cee0f724ff
Fixed #8018 : Tokenize::findGarbageCode: detect heads of for-loops with 1 or more than 2 semicolons as garbage code.
2017-05-01 18:28:26 +02:00
Daniel Marjamäki
bc7799dccd
Fixed #7888 (false positive from knownConditionTrueFalse with sizeof(int) == sizeof(long))
2017-05-01 12:23:28 +02:00
Daniel Marjamäki
f51a709f80
add fixme comment
2017-05-01 11:25:58 +02:00
Daniel Marjamäki
ce6cc5416a
uninitvar: made ValueFlow check experimental
2017-05-01 11:13:30 +02:00
Daniel Marjamäki
9cdda53fb9
CheckFunctions::memsetZeroBytes: Add CHECK_WRONG_DATA to avoid crashes
2017-04-30 18:58:51 +02:00
Daniel Marjamäki
8a08cc0796
Fixed #8029 (Tokenizer::simplifyCAlternativeTokens: dont simplify 'eb.and + 1')
2017-04-30 14:40:41 +02:00
Daniel Marjamäki
7fd04cd8d0
Updated Token::expressionString(), write '->' instead of '.'
2017-04-30 14:22:18 +02:00
Simon Martin
28960a8bba
Remove bailout and fix varid for template class member initialized in out-of-line constructor ( #8031 )
2017-04-30 08:59:47 +02:00
IOBYTE
8a668aa860
Add missing else that could cause an extra try scope to be added to the scope list ( #8025 )
...
Add an optional extended description…
2017-04-30 08:58:41 +02:00
Daniel Marjamäki
980ca39fe2
valueFlowForward: better handling of sizeof() in rhs in assignments
2017-04-29 08:25:55 +02:00
Garrett Bodily
ddfd4c6348
Write access type of functions and variables to xml dump
2017-04-29 07:18:16 +02:00
Robert Reif
964b744c96
Fixed #7990 (crash: SymbolDatabase::printOut())
2017-04-29 07:02:49 +02:00
Daniel Marjamäki
06102cb3d7
UninitVar: Don't warn for inconclusive values
2017-04-28 21:09:56 +02:00
Daniel Marjamäki
a0a8f8ddd6
ValueFlowUninit: make it more strict
2017-04-28 13:29:09 +02:00
Daniel Marjamäki
5fd77d2518
Switch CHECK_WRONG_DATA macro so crashes/hangs are avoided
2017-04-28 10:48:41 +02:00
Daniel Marjamäki
589fabd0b1
Fixed #8027 (hang after AST_MAX_DEPTH is exceeded in array initialization)
2017-04-27 20:53:27 +02:00
Daniel Marjamäki
d9f72d5f8c
AST: Handle 'x = { [ID] = 1, .. }' when ID is unexpanded macro
2017-04-26 22:35:04 +02:00
Daniel Marjamäki
bdf16b1157
Tokenizer::simplifyComma: dont simplify comma in '=(struct s){...}'
2017-04-26 20:48:08 +02:00
Daniel Marjamäki
89532cf8b9
Fixed #7968 (valueFlowBeforeCondition: better handling of compound assignments)
2017-04-25 20:45:02 +02:00
orbitcowboy
537045b176
Improved const correctness. There are no functional changes.
2017-04-25 14:57:48 +02:00
Daniel Marjamäki
140e086206
Fixed #7738 (False positive deallocret - delete and return NULL pointer)
2017-04-24 22:05:16 +02:00
Daniel Marjamäki
37fd60e879
Fixed #7293 (Use of uninitialized pointer not detected (worked in 1.71))
2017-04-24 18:27:16 +02:00
Daniel Marjamäki
9a294496c1
ValueFlow::setTokenValue: Fix typo
2017-04-23 21:59:58 +02:00
Daniel Marjamäki
a688402617
ValueFlow::setTokenValue: Don't calculate parent value for uninitialized values
2017-04-23 21:58:01 +02:00
Daniel Marjamäki
2f51b975ed
valueFlowUninit: only check variables
2017-04-23 21:50:51 +02:00
Daniel Marjamäki
25a1ea3d18
use simpleMatch for simple pattern
2017-04-23 19:25:35 +02:00
Daniel Marjamäki
8a738eefab
fixed #7998 (uninitialized variable is not found when used with switch/case)
2017-04-23 18:05:14 +02:00
Daniel Marjamäki
3f069d9e44
Write two FIXME comments, create library configuration to replace hardcoded checks
2017-04-23 15:34:45 +02:00
Daniel Marjamäki
198c8878ee
Use Token::simpleMatch() for simple pattern
2017-04-23 12:14:14 +02:00
Daniel Marjamäki
f2719ec6ca
Refactoring CheckString::sprintfOverlappingData. Use AST, isSameExpression(), getArguments(), ..
2017-04-23 10:51:31 +02:00
Daniel Marjamäki
f92ef7d8e2
Refactoring. Use 'endsWith()'
2017-04-23 10:17:35 +02:00
Daniel Marjamäki
101dc28afa
Refactoring: Moved checkMemset.. from CheckOther to CheckFunctions
2017-04-23 07:53:41 +02:00
Daniel Marjamäki
f6ab204dc6
Refactorings in CheckOther
2017-04-23 07:19:44 +02:00
Daniel Marjamäki
f601a6903f
Updated comment
2017-04-23 06:44:38 +02:00
Matthias Krüger
2744a9456f
fix [lib/checkfunctions.cpp:300]: (warning) Found simple pattern inside Token::Match() call: "new"
2017-04-22 21:53:31 +02:00
Daniel Marjamäki
e5b9e2a898
--check-library: less warnings
2017-04-22 21:23:46 +02:00
Daniel Marjamäki
e72ec4282d
Fixed #7842 (Preprocessor::getConfigs: #error in #ifndef not handled well)
2017-04-22 12:44:57 +02:00
Daniel Marjamäki
1039c710e4
Fixed #8017 (AST: wrong ast for extra comma 's={1,}')
2017-04-22 11:23:11 +02:00
Daniel Marjamäki
7140bae226
Merge pull request #894 from simartin/ticket_7964
...
Ticket #7964 : Don't crash on valid code using function pointers named strcpy or strcat in main()
2017-04-22 01:24:03 +02:00
Simon Martin
b526fd7c49
Ticket #7964 : Don't crash on valid code using function pointers named strcpy or strcat in main().
2017-04-21 23:36:10 +02:00
Daniel Marjamäki
43454936e7
Fixed #8014 (FP: Uninitialized variable 'f(1,{..});')
2017-04-21 22:33:27 +02:00
Robert Reif
78ad9825af
Add support for auto variables in regular for loop.
2017-04-21 15:25:02 -04:00
Daniel Marjamäki
e827119856
Fix testrunner InternalError
2017-04-21 21:02:46 +02:00
Daniel Marjamäki
902eb87a8a
Fixed #8016 (AST: wrong ast for 'x=(s){...};')
2017-04-21 17:44:11 +02:00
Daniel Marjamäki
eec8c77774
Merge pull request #892 from IOBYTE/master
...
Add support for auto variable initialized from function return type.
2017-04-20 22:17:23 +02:00
Daniel Marjamäki
f8e9071de1
CheckFunction: In the <valid> check handle possible/conditional/inconclusive values better
2017-04-20 22:14:54 +02:00
Robert Reif
0ff8e49b69
Add support for auto variable initialized from function return type.
2017-04-20 15:22:57 -04:00
Daniel Marjamäki
95dd16892b
Merge pull request #891 from IOBYTE/master
...
Fix #7963 : crash; Variable::setFlag ; gecko-dev , dom/canvas/WebGLTra…
2017-04-20 20:51:40 +02:00
Daniel Marjamäki
3fbcc0cd3b
Refactor CheckFunctions::invalidFunctionUsage
2017-04-20 19:57:39 +02:00
Daniel Marjamäki
e43c078c5e
checkfunctions: code cleanup
2017-04-20 17:42:25 +02:00
Robert Reif
69d18d9c29
Fix #7963 : crash; Variable::setFlag ; gecko-dev , dom/canvas/WebGLTransformFeedback.cpp
2017-04-20 10:03:29 -04:00
Daniel Marjamäki
7a26e046a8
Fixed #8001 (AST: Wrong AST for lambda function with 'std::string const&' result type)
2017-04-18 21:21:30 +02:00
Daniel Marjamäki
0edb0dbf3c
Fix redundant assignment found by Cppcheck
2017-04-17 22:33:15 +02:00
Daniel Marjamäki
d911eeba75
astyle formatting
...
[ci skip]
2017-04-17 22:16:02 +02:00
Daniel Marjamäki
1a95dc9bd6
Fixed #7979 (Tokenizer: Detect and reject c++ code in .c file)
2017-04-17 22:15:29 +02:00
Daniel Marjamäki
bb015c6a2b
Fixed #8006 (AST: Wrong tree with complex for loops and casts)
2017-04-17 21:11:53 +02:00
Simon Martin
5fd686c878
Ticket #4544 : Also handle Foo<struct Bar> constructs.
2017-04-17 11:24:28 +02:00
Daniel Marjamäki
4f64e67298
Misra: Add rule 8.11
2017-04-17 07:45:27 +02:00
Daniel Marjamäki
1045ece946
dump: refactor valueType dump
2017-04-16 09:11:20 +02:00
Daniel Marjamäki
f90d8c9987
dump: fix xml format
2017-04-15 14:03:49 +02:00
Daniel Marjamäki
b3b0a796b9
dump: fix xml format
2017-04-15 12:38:00 +02:00
Daniel Marjamäki
e71b428740
dump: Add platform info and valueType info
2017-04-15 12:25:44 +02:00
Daniel Marjamäki
174bcc8d34
Misra: Add rule 16.3
2017-04-14 10:46:35 +02:00
Daniel Marjamäki
d252a64ec8
Cleanup CheckFunctions::checkIgnoredReturnValue
2017-04-12 10:44:08 +02:00
Daniel Marjamäki
41a64f6d1f
Fix crash
2017-04-11 20:16:33 +02:00
PKEuS
b1f4bd7504
Refactorization: Reimplemented Settings::_enabled as a bitfeld instead of std::set ( #7995 )
2017-04-11 11:49:26 +02:00
Daniel Marjamäki
4d1a64301c
AST: Fixed Match pattern '|*' => '*|'
2017-04-10 23:44:30 +02:00
Daniel Marjamäki
632a6b664c
AST: Harden handling of C++11
2017-04-10 23:29:15 +02:00
Daniel Marjamäki
2c43075ece
AST: weird clang syntax
2017-04-10 23:05:41 +02:00
Daniel Marjamäki
df90ff9f5e
Merge pull request #888 from simartin/ticket_7942
...
Don't generate invalid syntax for out of line template class constructors during instantiation
2017-04-10 22:18:20 +02:00
Daniel Marjamäki
5e1b6aee8c
AST: Fix hang for weird VLA code
2017-04-10 22:17:34 +02:00
Daniel Marjamäki
ffeadbdde4
AST: improved handling for struct initialization 's = { [0] = 123 }'
2017-04-10 07:25:18 +02:00
Daniel Marjamäki
d92c529aa6
AST: Fix wrong handling of struct initialization, caused hang
2017-04-09 22:06:13 +02:00
Daniel Marjamäki
45d2d66df3
Remove redundant space in Token::Match pattern
2017-04-09 19:27:11 +02:00
Daniel Marjamäki
e6005dfa3c
AST: Fix AST for lambda '[&]{..}'
2017-04-09 17:49:55 +02:00
Matthias Krüger
7d12e1f3a6
valueFlowGetArrayIndexes: convert Token::Match to Token::simpleMatch.
...
The pattern is a sole "[", but since "[" is also used for complexe patterns, the internal check that finds potential simple match patterns bailed out here.
2017-04-09 17:27:46 +02:00
Simon Martin
ee05fe7d77
Ticket #7942 : Don't generate invalid syntax for out of line template class constructors during instantiation.
2017-04-09 16:12:59 +02:00
Daniel Marjamäki
6e0af5d01f
MISRA 19 and 28
2017-04-09 10:11:54 +02:00
Robert Reif
bcf0c5f010
Add ValueType and auto type information to debug output.
...
Print out ValueType for variables and function return type.
Print out complete type for variables and function return type.
Print out ValueType for variable auto token.
2017-04-07 19:57:10 -04:00
Daniel Marjamäki
f5f141ff42
astyle formatting
...
[ci skip]
2017-04-07 19:19:41 +02:00
Daniel Marjamäki
8ffed6862d
Tokenizer: Add --check-config warning for macro with semicolon in argument
2017-04-07 19:19:10 +02:00
Daniel Marjamäki
7d8af7bdca
Fixed #7979 (crash (nr 2): CheckFunctions::checkIgnoredReturnValue())
2017-04-07 13:18:53 +02:00
Daniel Marjamäki
392a06a44b
AST: better handling of '(struct X){...}'
2017-04-06 21:28:13 +02:00
Daniel Marjamäki
70a7915173
CppCheck: Improve output when first configuration is not empty.
2017-04-06 19:52:21 +02:00
Daniel Marjamäki
50da7d4919
Tokenizer: Write syntax error if there is C++ code in C file.
2017-04-06 08:50:35 +02:00
Daniel Marjamäki
fd2651909c
Fixed #7978 (ValueType: container type not set properly)
2017-04-06 07:07:20 +02:00
Daniel Marjamäki
fee86b9684
ValueType: Better handling of 'new Container'
2017-04-05 22:05:29 +02:00
PKEuS
47570f5791
Set version to 1.78.99/1.79 dev
2017-04-05 11:24:26 +02:00
Daniel Marjamäki
e6ed08c4d8
Fixed #7976 (Internal error. Token::astOperand1() cyclic dependency. (ticket nr 2, new regression))
2017-04-05 11:00:02 +02:00
Daniel Marjamäki
9c5a136f04
Fixed #7975 (crash: Tokenizer::createLinks2 problem with enable_if<x&&y,C*>)
2017-04-03 21:48:22 +02:00
Matthias Krüger
79010eecea
lib: fix a bunch of warnings about differing function arguments in definition and declaration.
...
[lib/token.h:72] -> [lib/token.cpp:36]: (style, inconclusive) Function 'Token' argument 1 names different: declaration 'tokensBack' definition 't'.
[lib/token.h:445] -> [lib/token.cpp:497]: (style, inconclusive) Function 'multiCompare' argument 1 names different: declaration 'needle' definition 'tok'.
[lib/checkio.h:73] -> [lib/checkio.cpp:1385]: (style, inconclusive) Function 'ArgumentInfo' argument 3 names different: declaration 'isCPP' definition '_isCPP'.
[lib/checkother.h:216] -> [lib/checkother.cpp:2136]: (style, inconclusive) Function 'checkComparisonFunctionIsAlwaysTrueOrFalseError' argument 2 names different: declaration 'strFunctionName' definition 'functionName'.
[lib/errorlogger.h:214] -> [lib/errorlogger.cpp:51]: (style, inconclusive) Function 'ErrorMessage' argument 2 names different: declaration 'file0' definition 'file0_'.
[lib/errorlogger.h:215] -> [lib/errorlogger.cpp:65]: (style, inconclusive) Function 'ErrorMessage' argument 2 names different: declaration 'file0' definition 'file0_'.
[lib/library.h:327] -> [lib/library.cpp:1043]: (style, inconclusive) Function 'ignorefunction' argument 1 names different: declaration 'function' definition 'functionName'.
[lib/mathlib.h:112] -> [lib/mathlib.cpp:1275]: (style, inconclusive) Function 'isNullValue' argument 1 names different: declaration 'tok' definition 'str'.
[lib/preprocessor.h:91] -> [lib/preprocessor.cpp:122]: (style, inconclusive) Function 'setDirectives' argument 1 names different: declaration 'tokens' definition 'tokens1'.
[lib/symboldatabase.h:860] -> [lib/symboldatabase.cpp:1801]: (style, inconclusive) Function 'argsMatch' argument 1 names different: declaration 'info' definition 'scope'.
[lib/symboldatabase.h:1171] -> [lib/symboldatabase.cpp:2048]: (style, inconclusive) Function 'addClassFunction' argument 1 names different: declaration 'info' definition 'scope'.
[lib/symboldatabase.h:1174] -> [lib/symboldatabase.cpp:2208]: (style, inconclusive) Function 'addNewFunction' argument 1 names different: declaration 'info' definition 'scope'.
[lib/symboldatabase.h:1090] -> [lib/symboldatabase.cpp:3648]: (style, inconclusive) Function 'findVariableType' argument 2 names different: declaration 'type' definition 'typeTok'.
[lib/symboldatabase.h:1101] -> [lib/symboldatabase.cpp:4308]: (style, inconclusive) Function 'findType' argument 1 names different: declaration 'tok' definition 'startTok'.
[lib/symboldatabase.h:1176] -> [lib/symboldatabase.cpp:4349]: (style, inconclusive) Function 'findTypeInNested' argument 1 names different: declaration 'tok' definition 'startTok'.
[lib/symboldatabase.h:1193] -> [lib/symboldatabase.cpp:4501]: (style, inconclusive) Function 'setValueType' argument 2 names different: declaration 'enumerators' definition 'enumerator'.
[lib/path.h:159] -> [lib/path.cpp:247]: (style, inconclusive) Function 'isCPP' argument 1 names different: declaration 'extensionInLowerCase' definition 'path'.
[lib/path.h:145] -> [lib/path.cpp:266]: (style, inconclusive) Function 'acceptFile' argument 1 names different: declaration 'filename' definition 'path'.
2017-04-03 00:06:46 +02:00
Daniel Marjamäki
abb43b6a81
Fixed #7934 (Wrong AST for 'for (i=0;cond;({min(x,10);}))')
2017-04-02 19:44:33 +02:00
Daniel Marjamäki
de80d41ef4
CheckFunctions::checkIgnoredReturnValue: Dont warn in C++11 initializer lists in function arguments
2017-04-02 19:44:27 +02:00
Daniel Marjamäki
6f2db1a312
CHECK_WRONG_DATA: restore debug macro so crashes are seen.
2017-04-02 17:23:30 +02:00
Daniel Marjamäki
d403a6a883
Preprocessor::getConfigs: Remove bad configurations when #error is seen
2017-04-02 12:15:53 +02:00
Daniel Marjamäki
7eb95aac2a
Preprocessor::getConfigs: Handle #error in '#if !A' better
2017-04-02 10:06:39 +02:00
Daniel Marjamäki
87bc667289
astyle formatting
...
[ci skip]
2017-04-02 09:26:14 +02:00
Daniel Marjamäki
edd1c32e5b
Preprocessor::getConfigs: Better handling of ! in #if
2017-04-02 09:03:43 +02:00
Daniel Marjamäki
b7dcdc00d0
Fixed #7970 (ValueType: no types set below 'new std::string')
2017-04-01 22:22:37 +02:00
Daniel Marjamäki
1faca91c1d
Added 'endsWith' utility function. This will make compiling the democlient easier.
2017-04-01 18:14:18 +02:00
Daniel Marjamäki
2eda59eb72
Update version
2017-04-01 11:03:45 +02:00
Daniel Marjamäki
1dbf485e02
Fix Cppcheck warnings. Remove redundant null pointer check.
2017-04-01 10:51:45 +02:00
Daniel Marjamäki
279b66003b
Fix Cppcheck warnings about mismatching argument names
2017-04-01 10:34:53 +02:00
PKEuS
ea215c3b7b
Fixed false positives in CheckClass::checkConst() due to unmatched function overloads
...
Fixed function matching if constness mismatches
2017-04-01 10:19:32 +02:00
Daniel Marjamäki
633ed23c0d
Fix Cppcheck warnings about mismatching function argument names
2017-04-01 09:31:27 +02:00
Roberto Martelloni
35d1479d05
CWE mapping of funcArgOrderDifferent, funcArgNamesDifferent ( #885 )
...
Add an optional extended description…
2017-04-01 08:36:46 +02:00
Daniel Marjamäki
164df2aa7b
Fixed #7966 (ValueType: wrong type for gcc initialization {[1]=..})
2017-03-31 09:41:38 +02:00
Daniel Marjamäki
8fe7ee1012
Fixed #7886 (ValueFlow: endless forloop 'for (i = 0, j = 0; i < sz && j < 9; i++)')
2017-03-30 22:02:36 +02:00
Daniel Marjamäki
a8788d7fc7
Fix Cppcheck warning
2017-03-30 11:20:04 +02:00
Daniel Marjamäki
2da3123db2
Fix ValueType. The '[' in variable declaration is not a dereference.
2017-03-30 11:01:29 +02:00
Daniel Marjamäki
cc3ef7bbe8
Fix so array access out of bounds for external arrays are detected again
2017-03-30 10:14:17 +02:00
IOBYTE
7cae057615
Add missing varid or variable for member variables.
...
Add an optional extended description…
2017-03-30 10:07:58 +02:00
Daniel Marjamäki
c9eb7f4556
minor update of 64-bit checker
2017-03-30 10:07:25 +02:00
PKEuS
3c8f5b85ae
Refactorization: Allocate Token::_values (ValueFlow information) dynamically, reducing size of each token by around 10%
2017-03-27 18:48:34 +02:00
PKEuS
2938278f00
Refactorization: Store minsizes in vector instead of list which has less overhead
2017-03-27 17:53:43 +02:00
PKEuS
63d39390b4
checkbufferoverrun.cpp: refactorizations
2017-03-27 16:09:51 +02:00
PKEuS
83b1e1c329
CheckBufferOverrun: Refactorizations
...
- Improved/Optimized conditions in checkBufferAllocatedWithStrlen()
- Avoid copying strings for checkScope()
2017-03-27 11:48:34 +02:00
PKEuS
680828788b
Fixed false negative in CheckBufferOverrun::checkInsecureCmdLineArgs(), removed redundant tests
2017-03-27 11:30:07 +02:00
PKEuS
171e1b8244
Fixed false negatives in CheckBufferOverrun::arrayIndexThenCheck()
2017-03-27 11:07:49 +02:00
Daniel Marjamäki
62d4077dd0
Fix Cppcheck warning
2017-03-26 11:40:53 +02:00
Daniel Marjamäki
6874f27e73
Added CHECK_WRONG_DATA() that can be used to avoid crashes/hangs in release binaries
2017-03-26 11:23:39 +02:00
Daniel Marjamäki
4a1c04cb33
Preprocessor: Removed redundant initialization
2017-03-26 11:10:48 +02:00
Robert Reif
c96e8daebc
Don't change varid of member variables.
2017-03-25 10:59:35 -04:00
Daniel Marjamäki
f5d56fd303
Fixed #7961 (Hang in CheckOther::checkFuncArgNamesDifferent)
2017-03-24 22:01:05 +01:00
Daniel Marjamäki
5fb0f46a3a
ValueType: Hide assignment operator
2017-03-24 13:38:45 +01:00
PKEuS
f4c0ab5dd5
SymbolDatabase: Match function overloads by using ValueType information by running a second pass of the function pointer assignment routine.
2017-03-24 12:19:29 +01:00
Alexander Alekseev
abba762d42
New check: checking for copy ctor and eq operator co-existence
2017-03-24 12:00:20 +01:00
Robert Reif
bc87e874e9
Add variable and type information for auto and auto variables in range based for loops of containers.
2017-03-23 20:14:49 -04:00
Robert Reif
7adfb6e0e4
Add variable and type information to tokens for C array range based for loops.
2017-03-23 19:48:20 -04:00
PKEuS
97fa9e9d1b
ValueFlow: Stop on inline assembly
2017-03-23 20:01:16 +01:00
PKEuS
9225bff31d
Added (back) support for enums to CheckCondition::checkIncorrectLogicOperator() ( #7794 )
2017-03-23 18:57:48 +01:00
PKEuS
996501a449
Fixed false positive #7953 : Support type conversion operators returning pointers
2017-03-23 18:12:46 +01:00
Daniel Marjamäki
c280bcedb4
Merge pull request #880 from IOBYTE/master
...
Update symbol database with new auto type and variable information for assignment to auto.
2017-03-23 08:51:06 +01:00
Robert Reif
662bc6f846
Add variable or type information to auto and auto variable tokens. Changing the auto variable type requires rerunning the variable pointer pass to correct the symbol database for the new type.
2017-03-22 22:09:40 -04:00
Robert Reif
fda1f02dab
long double is a floating point type.
2017-03-22 19:11:40 -04:00
Daniel Marjamäki
865588950a
Preprocessor: quick fix for #7939
2017-03-22 10:53:21 +01:00
Robert Reif
f099c6a110
Refactor symbol database value type support by making setValueTypeInTokenList and setValueType member functions of SymbolDatabase. Class variables are no longer passed around as parameters but accessed directly which simplifies the code. There should be no functional change.
2017-03-21 21:55:22 -04:00
orbitcowboy
a7f1188151
Astyle run.
2017-03-21 14:22:28 +01:00
Simon Martin
fb2b29dc7d
Update TemplateSimplifier::getTemplateNamePosition to handle out-of-line template methods.
...
Add an optional extended description…
2017-03-19 20:44:20 +01:00
Daniel Marjamäki
c18fe8262b
Fixed #7934 (Wrong AST for 'for (i=0;cond;({min(x,10);}))')
2017-03-19 07:26:11 +01:00
PKEuS
7c0aa4464c
Fixed travis build by replacing Token::Match by simpleMatch()
...
Added missing files to cppcheck.vcxproj.filters
2017-03-16 21:15:10 +01:00
PKEuS
8a3fb4dd6c
SymbolDatabase: Fixed return type token detection for template member functions ( #7945 )
2017-03-16 20:47:24 +01:00
PKEuS
ca3e3b3cdb
Fixed false positive multiCondition when & is used in both conditions ( #7827 )
2017-03-15 19:37:14 +01:00
PKEuS
c638180753
Fixed crash in clang test suite introduced in b27ba72fdd
2017-03-15 19:22:42 +01:00
PKEuS
816106560a
More conservative check for non-commutative operator+ in isSameExpression() ( #7938 )
2017-03-15 19:17:40 +01:00
PKEuS
bcba27fbb9
SymbolDatabase: Removed unnecessary bailout in function matching for pointers in function overload matching
2017-03-15 18:45:33 +01:00
PKEuS
b27ba72fdd
SymbolDatabase: Support function overload matching for member variables ( #7932 )
2017-03-15 18:37:22 +01:00
PKEuS
92414b923a
Library: Support variadic functions which are not a formatstr-function
2017-03-14 17:41:34 +01:00
Daniel Marjamäki
263c3596d5
known conditions: dont warn about 0 or 1 conditions as those look intentional
2017-03-08 18:39:19 +01:00
Daniel Marjamäki
8c707876ed
Tokenizer: Don't simplify '({..})' wrongly
2017-03-08 11:41:18 +01:00
Daniel Marjamäki
5d7fa590af
Don't check ignored function return value in ({..}). Ticket: #7934
2017-03-08 10:23:38 +01:00
PKEuS
00904ba32a
Fixed false negatives in CheckOther::checkPassByReference() when assignment operator is used.
2017-03-07 21:49:28 +01:00
PKEuS
3da1de7893
Do not exclude std::shared_ptr and std::unique_ptr from checkPassByReference() ( #7834 )
...
These two types are larger than one pointer. Hence, passing by reference is faster.
2017-03-07 21:18:08 +01:00
PKEuS
1c3f010935
Fixed false positive: Exclude STL shared pointers from checkPassByReference() ( #7834 )
2017-03-07 21:04:19 +01:00
Daniel Marjamäki
5ea9519586
UseRetVal: Fix FN for methods
2017-03-05 22:23:16 +01:00
Daniel Marjamäki
2daf7f5430
Merge pull request #874 from simartin/ticket_7912
...
Ticket #7912 : Properly preprocess files with decreasing line numbers, due to #line directives
2017-03-05 20:33:53 +01:00
Daniel Marjamäki
e560ad1616
update std::string config
2017-03-05 18:19:49 +01:00
Simon Martin
43e4364675
Ticket #7912 : Properly preprocess files with decreasing line numbers, due to #line directives.
2017-03-05 16:46:43 +01:00
Daniel Marjamäki
6c1096bf71
ValueType: First change to handle 'for (auto i : container)'
2017-03-05 15:40:29 +01:00
Daniel Marjamäki
ab7cf5d215
ValueType: set ValueType for method that returns iterator
2017-03-05 14:53:32 +01:00
Daniel Marjamäki
fa7501d3a5
ValueType: stl variables should now be handled
2017-03-05 10:33:17 +01:00
Daniel Marjamäki
f3c0461001
ValueType: handling scoped types in 'new ...'
2017-03-05 10:24:51 +01:00
Daniel Marjamäki
e0dd0a82ed
ValueType: refactor and improve handling of 'new ...'
2017-03-05 10:02:47 +01:00
Robert Reif
e02b2c4483
ValueType: handle new nothrow
2017-03-05 02:13:00 +01:00
Daniel Marjamäki
115ea08544
ValueType: Allow that type is library-container
2017-03-05 02:09:52 +01:00
Daniel Marjamäki
c832b2f40b
ValueType: Fixed bug
2017-03-05 01:39:56 +01:00
Daniel Marjamäki
920398615d
ValueType: handle scoped types in parsedecl
2017-03-05 01:21:02 +01:00
Daniel Marjamäki
2f2ac46243
Replaced hardcoding for char16_t and char32_t with configuration
2017-03-04 16:30:42 +01:00
Daniel Marjamäki
12fe4a8b3e
Fixed #7885 (ValueType: Wrong type for large hexvalue (platform=win32A))
2017-03-04 14:19:14 +01:00
Daniel Marjamäki
ecc59859e1
Don't simplify _Bool in TokenList
2017-03-04 11:13:28 +01:00
Daniel Marjamäki
f0c353abcb
TokenList: append 'U' if needed on hexvalues
2017-03-04 08:47:53 +01:00
Daniel Marjamäki
1c6c209353
Fixed #7890 (1.77 false positive from knownConditionTrueFalse with function-like macros)
2017-03-03 19:53:16 +01:00
Daniel Marjamäki
b1ce229006
Small refactoring
2017-03-03 19:09:32 +01:00
Daniel Marjamäki
59c1c76a97
Fixed #7466 (Reference variable does not count side-effects (FP variableScope))
2017-03-03 19:07:00 +01:00
Daniel Marjamäki
b5f2fd3c55
Fixed #7738 (False positive deallocret - delete and return NULL pointer)
2017-03-03 18:36:06 +01:00
Daniel Marjamäki
d1c66edb03
ValueFlow: Known values in conditional code
2017-03-03 01:29:34 +01:00
Daniel Marjamäki
45c5860ca4
Fixed #7926 (Memory Leak with auto not detected)
2017-03-02 22:24:26 +01:00