Robert Reif
707dfb4eea
Fixed #4964 (printf format argument check only supports simple variables)
2013-08-20 06:16:31 +02:00
Robert Reif
bf8a786265
reduce: add more settings from cppcheck cli
2013-08-19 06:06:53 +02:00
Daniel Marjamäki
342142b783
Fixed #4256 (Preprocessor: '#pragma once' doesn't work properly when using -D)
2013-08-18 18:04:06 +02:00
Daniel Marjamäki
ed890a23a8
Token::printOut(): don't write title if it's empty
2013-08-18 09:01:03 +02:00
Robert Reif
914893013e
Symbol Database: improved type handling. Ticket: #4952
2013-08-17 18:43:15 +02:00
Daniel Marjamäki
13f85ea345
astyle formatting
2013-08-17 13:06:19 +02:00
Daniel Marjamäki
fd545f90db
Merge pull request #163 from simartin/ticket_4959
...
Ticket #4959 : Simplify {in,de}crements of known variables.
2013-08-17 03:35:30 -07:00
Simon Martin
5743416d3e
Ticket #4959 : Simplify {in,de}crements of known variables.
2013-08-16 23:51:00 +02:00
Daniel Marjamäki
67c77a31aa
Fixed #4942 (1.61 is very slow (compared to 1.60.1))
2013-08-16 18:39:56 +02:00
Robert Reif
b777388fb8
Symbol database: improved type handling (fix problems in previous commit). Ticket: #4952
2013-08-16 05:42:12 +02:00
Daniel Marjamäki
33a948f816
Merge pull request #162 from simartin/ticket_4708
...
Fixed #4708 : prefix {in,de}crement too eagerly computed.
2013-08-15 20:35:38 -07:00
Daniel Marjamäki
5d7f30b88f
reassign var: better handling of struct members
2013-08-15 16:13:58 +02:00
Simon Martin
bf09191b78
Fixed #4708 : prefix {in,de}crement too eagerly computed.
2013-08-15 15:53:08 +02:00
Daniel Marjamäki
f95b29db06
Improved handling of the __FILE__ macro
2013-08-14 06:36:03 +02:00
Daniel Marjamäki
fd26bad6fa
AssignIf: Improved handling of function calls
2013-08-13 14:08:54 +02:00
Robert Reif
f420de24ef
SymbolDatabase: Optimisation of previous fix for #4952
2013-08-13 06:36:54 +02:00
Daniel Marjamäki
ff71c94f6e
Fixed #4949 (define symbol used in code => 'Analysis failed' message is written.)
2013-08-12 18:12:49 +02:00
Robert Reif
d6ce072dc9
Fixed #4950 (Tokenizer: order of int modifiers)
2013-08-12 06:23:01 +02:00
Robert Reif
cd3044c808
Fixed #4952 (SymbolDatabase: unknown types in log file)
2013-08-12 06:21:03 +02:00
Alexander Mai
4cc2e3ef54
Enable more doxygen features (include JS search engine) and one doxygen annotation fix
2013-08-11 17:04:13 +02:00
Simon Martin
40887ca99c
Ticket #4703 : Trim macro parameters.
2013-08-11 09:41:03 +02:00
Robert Reif
56d8073d0f
Fixed #4902 (printf and scanf format checks don't support microsoft %I, %I32 and %I64 extensions)
2013-08-10 12:37:31 +02:00
Robert Reif
5aa79198e6
Fixed #4948 (check printf %l and %ll arguments for long and long long)
2013-08-10 12:33:55 +02:00
Daniel Marjamäki
64733d9e63
astyle formatting
2013-08-10 12:32:59 +02:00
Daniel Marjamäki
3ac21ab1db
Merge pull request #158 from simartin/ticket_4764
...
Ticket #4764 : Handle template instantiations with only default parameters
2013-08-10 03:22:41 -07:00
Simon Martin
ad33d95ec1
Ticket #4764 : properly handle template instantiations with only default parameters.
2013-08-10 12:00:16 +02:00
Robert Reif
b940d0adc6
Fixed #4947 (Doesn't allow any ordering of int modifiers)
2013-08-09 23:13:04 +02:00
PKEuS
758d68519d
Use TinyXML to write XML files
2013-08-07 16:30:55 +02:00
PKEuS
a9a5dc0354
Updated to AStyle 2.03, require this version
2013-08-07 16:27:37 +02:00
PKEuS
dd82817752
Fixed #4943 and simplified CheckOther::checkCommaSeparatedReturn()
2013-08-06 11:27:09 -07:00
PKEuS
1538b46970
Refactorization in checkio.cpp
2013-08-06 10:24:35 -07:00
PKEuS
5e3ccda408
Added support for noreturn functions from library to CheckOther::checkUnreachableCode()
2013-08-06 02:11:59 -07:00
Simon Martin
c9884c30a1
Fix ticket #4922 (segmentation fault upon invalid code).
2013-08-05 20:28:22 +02:00
PKEuS
4a84195a8c
Updated to latest TinyXML
...
Build TinyXML into core dll once and use it from CLI
2013-08-03 20:29:50 +02:00
PKEuS
219f6546d3
Set version to 1.62 dev
2013-08-03 19:54:39 +02:00
Daniel Marjamäki
2f7fba2087
1.61: Set versions
2013-08-03 08:04:38 +02:00
XhmikosR
b2e140389f
* Move system includes before local ones
...
* Remove superfluous newlines
2013-07-31 18:21:06 +03:00
Daniel Marjamäki
2a78db4c06
Refactoring Token::findClosingBracket.
2013-07-31 10:30:20 +02:00
Daniel Marjamäki
6c05f78a8f
Reverted experimental changes for handling of lambda functions ( #4919 ).
2013-07-31 09:58:31 +02:00
Alexander Mai
7a324cef25
Fixed various Cppcheck inconclusive warnings
2013-07-30 12:52:27 +02:00
Daniel Marjamäki
807204e580
Fixed #4237 (False positive: (error) Memory Leak: data (references and pointer aliases))
2013-07-30 11:30:14 +02:00
Daniel Marjamäki
1bebf1fd7e
AssignIf: added todo test case (pass variable by value to function)
2013-07-29 12:27:57 +02:00
Daniel Marjamäki
d9a2f542be
CheckOther: removed redundant conditions. No need to check if varid is > 0 and if there is variable info.
2013-07-29 12:01:52 +02:00
Simon Martin
1fe008ba4b
Ensure wrongPrintfScanfParameterPositionError is shown by 'cppcheck --errorlist'.
2013-07-28 20:33:49 +02:00
Daniel Marjamäki
9ff204f8bc
astyle formatting, use isEnabled("warning") instead of isEnabled("style")
2013-07-28 16:13:16 +02:00
Simon Martin
d01e3fa17a
Handle parameter positions format strings (POSIX extensions).
2013-07-28 15:00:28 +02:00
Daniel Marjamäki
7fd12ee2b5
Merge pull request #153 from simartin/ticket_4930
...
Fixed #4930 ((error) Internal Error: Division by zero)
2013-07-28 04:17:03 -07:00
Daniel Marjamäki
2a1af1acda
CheckUninitVar: Assertion for '} while (' after 'do {..' in debug builds. Bail out in release builds to avoid segfaults.
2013-07-28 12:41:38 +02:00
Simon Martin
eb3bf571be
Avoid divisions by zero when simplifying numeric calculations.
2013-07-28 12:32:18 +02:00
Lucas Manuel Rodriguez
09f4d3732a
Fixed #4911 (segfault, assignment in do ... while, 1.61dev)
2013-07-28 11:58:14 +02:00
Daniel Marjamäki
36ef34a2cf
astyle formatting
2013-07-28 11:53:49 +02:00
Daniel Marjamäki
862eb351d5
Merge pull request #152 from simartin/ticket_4914
...
Fixed #4914 (memory freed twice, when in do {} while being shortcircuited via continue)
2013-07-28 01:43:45 -07:00
Alexander Mai
40fa474a5b
Fixed #4927 (Segfault in CheckOther::checkCommaSeparatedReturn() on invalid code)
2013-07-28 10:39:58 +02:00
Simon Martin
470a9a6c71
Take into account break and continue statements in CheckLeakAutoVar.
2013-07-28 10:26:46 +02:00
Daniel Marjamäki
44333f316a
Added terminate() handling to get quicker response when the user wants to terminate
2013-07-24 13:06:59 +02:00
Daniel Marjamäki
178467a578
astyle formatting
2013-07-24 11:20:28 +02:00
Carlo Marcelo Arenas Belon
aa0560fe3b
Fixed #4925 (False positive: checkother style)
...
When using a variable that is assigned a function pointer checks for
pointers are triggered which would complain if used in arithmetic
comparisions (eventhough it will be valid code if the function returns
an int)
2013-07-24 08:22:24 +02:00
Daniel Marjamäki
a1fafa7f06
Library: added <formatstr> and <strz> to argument checks
2013-07-22 20:21:45 +02:00
Robert Reif
20f81f92d9
CheckIO: Improved handling of h, hh, l, and ll.
2013-07-22 08:28:29 +02:00
Lucas Manuel Rodriguez
7e556c215e
Fixed #4861 (Improve check: object is destroyed immediately not detected when calling overloaded constructor)
2013-07-22 07:25:53 +02:00
Daniel Marjamäki
011fd3bed9
checksizeof: Fixed compiler error on VS. Missing header.
2013-07-21 19:00:12 +02:00
Robert Reif
f11e54aa42
Fixed #4902 (printf and scanf format checks don't support microsoft %I, %I32 and %I64 extensions)
2013-07-21 08:35:01 +02:00
Robert Reif
e6ab8f478b
Symbol database: improved handling of array members
2013-07-20 17:51:13 +02:00
Daniel Marjamäki
37716fb8bb
Tokenizer: Set variable() pointer for array members
2013-07-20 17:46:39 +02:00
Lucas Manuel Rodriguez
59f448da8a
Fixed #4908 (False positive: void * calculation (struct member, cast))
2013-07-20 17:20:16 +02:00
Daniel Marjamäki
0c5e39a813
Library: Added configuration file std.cfg that clients should load.
2013-07-20 17:12:56 +02:00
Daniel Marjamäki
0832734503
Library: Fixed compiler error
2013-07-20 15:40:57 +02:00
Daniel Marjamäki
be5e4ccfd5
Library: Renamed <ignore> to <leak-ignore>
2013-07-20 13:12:24 +02:00
Daniel Marjamäki
9c67af058a
SymbolDatabase: Renamed Variable::varId() to Variable::declarationId() to make it more clear how it works.
2013-07-20 12:31:04 +02:00
Daniel Marjamäki
1a2aaa6780
Library: If load from current path fails, try to load 'default' configuration from cppcheck-executable path. Allow that '.cfg' extension is not used. Allow that multiple configurations are provided (comma separated).
2013-07-20 10:21:05 +02:00
Daniel Marjamäki
dfed6bbea0
Fixed #4445 (Token::Match called with varid 0)
2013-07-19 21:18:54 +02:00
Daniel Marjamäki
794aebe3cf
MathLib: Return inf.0 for NAN and INF calculations
2013-07-19 09:27:33 +02:00
Daniel Marjamäki
f02e885b42
CheckMemoryLeakInFunction: Use <ignore> info from Library
2013-07-19 07:50:54 +02:00
Daniel Marjamäki
6fe1b92a47
Improved --check-library messages
2013-07-16 18:50:25 +02:00
Daniel Marjamäki
fa7f8ddc78
Library: Renamed Argument to ArgumentChecks to make it a bit more clear
2013-07-16 09:40:31 +02:00
Daniel Marjamäki
2a884446be
Library: document not-null and not-uninit argument configuration
2013-07-15 21:58:29 +02:00
Daniel Marjamäki
a01e54fdd9
astyle formatting
2013-07-15 21:57:10 +02:00
Daniel Marjamäki
7b5c58d286
astyle formatting
2013-07-15 21:56:31 +02:00
Daniel Marjamäki
7443883b9c
Library: Improved handling in CheckNullPointer::parseFunctionCall for Library data
2013-07-15 18:55:40 +02:00
Daniel Marjamäki
66d8fa62d1
Library: added init attribute to <alloc>
2013-07-15 08:44:00 +02:00
Daniel Marjamäki
b2f6e9e3eb
library: improved handling of noreturn. The Tokenizer::isScopeNoReturn will now try to use the library to determine if scope is noreturn.
2013-07-14 10:10:11 +02:00
Daniel Marjamäki
8285510996
Rules: Make it possible to write rules that check #define macros
2013-07-12 16:09:00 +02:00
Lucas Manuel Rodriguez
cfd697d6d4
Fixed #4042 (False Positive : Same expression on both sides of '&')
2013-07-11 07:13:47 +02:00
Daniel Marjamäki
8f332af849
Uninitialized variables: Avoid FP when using '?:'
2013-07-10 16:44:35 +02:00
Lucas Manuel Rodriguez
040c1e3a13
Fixed #4906 (False positive: void * calculation (cast))
2013-07-10 06:40:09 +02:00
Daniel Marjamäki
4106972fdc
Merge pull request #148 from JustRamires/master
...
Fixed segmentation fault in SymbolDatabase::SymbolDatabase(Ticket #4892 )
2013-07-09 02:55:46 -07:00
Roman Zaytsev Borisovich
295869a866
Fixed segmentation fault in SymbolDatabase::SymbolDatabase(Ticket #4892 )
2013-07-09 13:10:03 +04:00
Daniel Marjamäki
8ba14edb51
dmake: fixed lib.pri for gui (tinyxml)
2013-07-08 21:56:09 +02:00
Daniel Marjamäki
7d47fd65a2
Renamed --environment to --library. Added --check-library. Renamed Environment to Library
2013-07-08 18:26:18 +02:00
Alexander Mai
b7bb16ea77
Fixed #4897 (callStackToString is not available when using custom message template)
2013-07-08 06:44:25 +02:00
Lucas Manuel Rodriguez
d177c8fd03
Fixed #4824 (False positive: (warning) Member variable 'Foo::m_state' is not initialized in the constructor.)
2013-07-08 06:38:33 +02:00
Daniel Marjamäki
c74b74da0d
Merge pull request #151 from simartin/xcode_build_environment
...
Add environment.h,cpp to XCode project and restore build from XCode.
2013-07-07 08:13:09 -07:00
Simon Martin
60b244af81
Add environment.h,cpp to XCode project and restore build from XCode.
2013-07-07 11:33:25 +02:00
Daniel Marjamäki
2875ee1ecf
astyle formatting
2013-07-07 10:26:20 +02:00
Daniel Marjamäki
2ef0a40aec
Fixed #4893 (FP Uninitialized variable on sizeof of itself)
2013-07-06 08:52:47 +02:00
Lucas Manuel Rodriguez
00886b4d06
Fixed #4876 (Checking for sizeof(void))
2013-07-05 21:07:07 +02:00
Daniel Marjamäki
61e1dd5096
Environment: Refactoring and cleanup
2013-07-05 20:55:31 +02:00
vBm
2ba337faf7
Fix GUI compilation after d96fb577
...
Fixes ticket #4895
Thanks to PKEuS for telling me what to do :-)
2013-07-04 15:31:27 +02:00
PKEuS
14c3b390a4
Fixed version number
2013-07-04 13:32:45 +02:00
PKEuS
6494d9ac7f
Make cppcheck compile with VS again.
2013-07-04 13:09:34 +02:00
Daniel Marjamäki
ef83525cd0
CheckUninitVar: Fixed GCC warning
2013-07-04 07:58:30 +02:00
Roman Zaytsev Borisovich
e37587aed5
Ticket #4801
2013-07-02 15:28:44 +04:00
Daniel Marjamäki
d96fb577cd
CLI: Added --environment flag
2013-07-02 07:18:19 +02:00
Simon Martin
e2deb59f8a
Improved handling of syntax errors in Tokenizer::simplifyAddBracesPair.
2013-06-29 14:05:49 +02:00
Daniel Marjamäki
6b2bab535b
CLI,LIB: Added --std setting for GTK
2013-06-29 12:55:24 +02:00
Daniel Marjamäki
ba23b65179
Fixed #4885 (FP Uninitialized variable when using comma)
2013-06-29 09:33:51 +02:00
Daniel Marjamäki
6997d38881
Uninitialized variables: fixed false positive in while loop
2013-06-27 18:28:00 +02:00
Daniel Marjamäki
6b01d2d5a8
Fixed #4747 (Can not find uninitialized variable (variable used in rhs in assignment))
2013-06-27 16:53:15 +02:00
Daniel Marjamäki
9624a89b34
Uninitialized variables: improved debug warning when bailing out
2013-06-26 20:59:08 +02:00
Daniel Marjamäki
c389e08353
Fixed #4728 (simplify known variables better (%var% & %num%, bitwise and))
2013-06-26 18:13:28 +02:00
Daniel Marjamäki
2265c61734
Fixed #4879 (false positive: uninitialized variable in inner for inside while (regression))
2013-06-26 17:02:57 +02:00
Zachary Blair
a381170886
Fixed #4874 (Minor spelling corrections)
2013-06-26 00:47:02 -07:00
Daniel Marjamäki
7dd07472c1
Fixed #4530 (Tokenizer: improved simplification of strlen in calculation)
2013-06-25 20:10:40 +02:00
Daniel Marjamäki
cfd960d794
Fixed #3765 (false negative: unitialized variable)
2013-06-25 18:40:41 +02:00
Simon Martin
75c8dcc664
Fixed #4873 (Preprocessor: Cppcheck is unable to scan a file with a single quote in a comment inside assembler section)
2013-06-25 06:45:11 +02:00
Lucas Manuel Rodriguez
d6be4559cd
Fixed #4840 (false negative: buffer access out of bounds)
2013-06-25 06:37:51 +02:00
Alexander Mai
5a9975bbdd
Fixed #4869 (segmentation fault in Tokenizer::simplifyStructDecl (invalid code))
2013-06-22 14:05:49 +02:00
Daniel Marjamäki
bfc40ffe9f
Fixed #4868 (Segmentation fault in Preprocessor::handleIncludes())
2013-06-21 20:10:46 +02:00
Daniel Marjamäki
e4270bab78
Fixed #4863 (macros not propagated)
2013-06-19 21:29:39 +02:00
Daniel Marjamäki
a5636d55bc
Preprocessor: Reuse help function that converts string to map
2013-06-19 17:42:55 +02:00
Daniel Marjamäki
2fb8133e90
Fixed #4862 (False positive: Comma is used in return statement (template))
2013-06-18 00:13:45 +02:00
Alexander Mai
0be1892b92
Fixed #4806 (Crash in Type::initBaseInfo() in clang testcode)
2013-06-16 21:46:01 +02:00
Alexander Mai
38ecdda076
Fixed #4859 (Update doxygen support)
2013-06-16 19:25:05 +02:00
Daniel Marjamäki
d3d7808a06
Fixed #4834 (FreeType: incorrect array boundary analysis)
2013-06-16 15:41:13 +02:00
Daniel Marjamäki
210f2ab352
Tokenizer: refactoring; use Token::link() instead of loop
2013-06-16 15:27:59 +02:00
Daniel Marjamäki
59478c15cf
Tokenizer: small speedup
2013-06-16 09:00:02 +02:00
Daniel Marjamäki
a9bd6cf3df
Fixed #4857 (False Positive: function argument hides enumerator of same type)
2013-06-16 08:13:41 +02:00
Daniel Marjamäki
b31c218773
fixed typo, thanks XhmikosR for pointing it out
2013-06-15 19:31:17 +02:00
Abhishek Bharadwaj
d85c8e6782
Fixed #4104 (New check: comma separated statements in return statement from a function)
2013-06-15 17:49:10 +02:00
Daniel Marjamki
03f28e9c65
Fixed #4668 (Tokenizer: improve handling of 'if (x) MACRO() { ..')
2013-06-15 14:40:05 +02:00
Daniel Marjamäki
15c92384f4
Fixed #4851 (Preprocessor: problem when using #ifndef symbol in the code)
2013-06-15 12:08:18 +02:00
Daniel Marjamäki
722bfe7197
Fixed #4553 (Wrong calculation of known values)
2013-06-14 18:51:52 +02:00
Daniel Marjamäki
ae36472a1b
Fixed #4778 (FP: Uninitialized variable: av)
2013-06-14 07:21:53 +02:00
Robert Reif
870d29944b
Fixed #4852 (false positive: Member variable 'A::sz' is not initialized in the constructor)
2013-06-14 06:32:26 +02:00
Daniel Marjamäki
cd5e32446f
Fixed #4641 (False positive: Address of local auto-variable assigned to a function parameter)
2013-06-13 16:19:19 +02:00
PKEuS
876e9c0039
Fixed issue on C++11 right angle brackets ( #4832 )
2013-06-12 13:43:29 -07:00
PKEuS
917acea2ca
Fixed two spelling mistakes found by ettlmartin
2013-06-12 13:13:05 -07:00
Daniel Marjamäki
75616786ef
Fixed #4848 (--include not working since the last 2 days)
2013-06-12 16:59:25 +02:00
Daniel Marjamäki
c4763b9010
Fixed #4463 (false positive: (style) Variable 'CHDERR_NOT_OPEN' hides enumerator with same name)
2013-06-12 06:45:26 +02:00
Daniel Marjamäki
47931372ff
astyle formatting
2013-06-12 06:43:52 +02:00
Zachary Blair
9c45e6d47d
Fixed #4173 : Elaborated on the verbose error message
2013-06-10 23:11:44 -07:00
PKEuS
4efccc2c5d
Fixed #4420 : Prefix increment is only suspicious, if its return value is not used.
2013-06-10 13:02:02 -07:00
Zachary Blair
28c0045f36
Fixed #4173 : New check: arithmetical usage of inf/nan result
2013-06-09 23:13:08 -07:00
Daniel Marjamäki
6900d4fb76
Travis: Fixed cppcheck style warning
2013-06-09 20:17:26 +02:00
Daniel Marjamäki
66f9e9b16f
Rules: Allow that 'raw' tokens are checked.
2013-06-09 15:50:43 +02:00
Daniel Marjamäki
537166cf47
Rules: Make it possible run a rule on the 'normal' token list
2013-06-09 14:58:56 +02:00
Daniel Marjamäki
616a693f1f
Merge pull request #139 from JustRamires/master
...
Ticket #4694
2013-06-08 07:46:08 -07:00
Daniel Marjamki
4e09b06bc1
Fixed #4827 (allow checking multiple configurations when using -D by also using --max-configs or --force)
2013-06-08 16:46:54 +02:00
Roman Zaytsev Borisovich
4610b135dc
Fixed #4694
2013-06-07 10:37:33 +04:00
Daniel Marjamäki
10849e220b
Fixed #4809 (Review CheckNullPointer::parseFunctionCall)
2013-06-07 06:37:53 +02:00
Daniel Marjamäki
9eac4489ac
Fixed #4838 (False positive for ... seems to be invalid)
2013-06-06 12:44:19 +02:00
Frank Zingsheim
aa25d1e0af
Fixed #4837 (False positive: Assert statement calls a function which may have desired side effects (local variable))
2013-06-05 22:10:43 +02:00
Daniel Marjamäki
dec520c507
Tokenizer::simplifyEnum: Fixed false positives
2013-06-04 21:18:20 +02:00
Daniel Marjamäki
8b5792a0f8
Tokenizer::simplifyEnum: Fixed internalErrors when building with compiled patterns.
2013-06-04 18:57:46 +02:00
Daniel Marjamäki
fa1fd31667
Tokenizer::simplifyEnum: Improved handling of shadow variables
2013-06-04 06:51:01 +02:00
Daniel Marjamäki
8954cc0984
Fixed #4280 (Tokenizer::simplifyEnum: don't simplify shadow variables)
2013-06-03 19:18:51 +02:00
Daniel Marjamäki
e90a3c179f
doc: minor tweaks of --doc output
2013-06-03 06:36:37 +02:00
PKEuS
ffb5317c61
Set version to 1.61 dev
2013-06-02 15:40:51 +02:00
Daniel Marjamki
c83bd7f00f
1.60.1: Set versions
2013-06-02 13:13:40 +02:00
Daniel Marjamäki
d36d3d5469
1.60: set version
2013-06-01 15:17:07 +02:00
Daniel Marjamäki
e3dd51dd2b
Fixed Cppcheck warning. Method TokenList::createAst can be const
2013-06-01 15:04:37 +02:00
Daniel Marjamäki
ca632bd771
Fixed Cppcheck warning. Made method const
2013-06-01 14:35:21 +02:00
Daniel Marjamäki
785d54046f
Fixed Cppcheck warning, method can be static
2013-06-01 14:06:48 +02:00
Daniel Marjamäki
a7da65a40b
Fixed #4618 (Unmatched suppression: don't show this information message unless --enable=information or --check-cfg is used)
2013-05-31 15:20:58 +02:00
Daniel Marjamäki
065853a59a
Fixed #4652 (False positive: variable value tracking into loop body)
2013-05-29 16:16:12 +02:00
Daniel Marjamäki
a861817a01
Fixed #4751 (CheckBufferOverrun: better handling when struct member instance doesn't have same varid as struct member declaration)
2013-05-28 16:52:23 +02:00
Daniel Marjamäki
ae7363fe54
Fixed #4599 (False positive with fopen/fclose test)
2013-05-23 06:34:22 +02:00
Frank Zingsheim
614a78084f
Fixed #4799 : Improved quickfix from 0943fecf03
...
(Segmentation fault in K&R simplification inside lambda expression)
2013-05-21 19:43:07 +02:00
Daniel Marjamäki
c795f6e2f7
CheckOther::checkSuspiciousEqualityComparison: check if --inconclusive has been used since the message is inconclusive
2013-05-20 16:05:21 +02:00
Robert Reif
2c8360c607
Fixed #4789 (uninitMemberVar not found when constructor contains default parameters)
2013-05-18 18:33:24 +02:00
Daniel Marjamäki
1476787f40
CheckClass: Fixed nullpointer check and then dereference warning.
2013-05-17 14:10:53 +02:00
Daniel Marjamäki
4d781a7492
made CheckAssert::inSameScope static to silence cppcheck warning
2013-05-15 16:51:15 +02:00
Daniel Marjamäki
18116ab61e
CheckAssert: Fixed 'NULL pointer check and dereference code'
2013-05-15 16:40:50 +02:00
Daniel Marjamäki
b84547a312
Fixed #4798 (Token::Match(tok, '&|*|%var%') behaves differently when parsed or compiled)
2013-05-15 13:22:25 +02:00
Frank Zingsheim
0943fecf03
Fixed #4799 (Segmentation fault in K&R simplification inside lambda expression)
2013-05-14 20:56:31 +02:00
PKEuS
b58e1241dc
Distinguish between different swprintf overloads. ( #4790 )
...
Fixed MSVC warning recently introduced
2013-05-14 02:06:16 -07:00
PKEuS
1903585ea3
Fixed bug in handling rvalue references: Scope has to be set everywhere. ( #4732 )
2013-05-14 01:43:32 -07:00
Frank Zingsheim
0076ebe08d
More general fix to #4187 (False positive: Variable inside a lambda is reported as uninitialized)
...
Travis: Problems with matchcompiler.py
2013-05-12 11:19:10 +02:00
Frank Zingsheim
511f8a4c1f
More general fix to #4187 (False positive: Variable inside a lambda is reported as uninitialized)
2013-05-12 10:19:43 +02:00
Frank Zingsheim
d387e8b770
Fixed #4711 : (false positive: Consecutive return...)
2013-05-11 17:50:59 +02:00
Daniel Marjamäki
2f1050595d
CppCheck: Added _simplify flag that can be used by clients to disable simplifications
2013-05-11 11:35:04 +02:00
Daniel Marjamäki
b6bcdf2936
Fixed #4520 (segmentation fault of cppcheck (preprocessing))
2013-05-09 18:50:24 +02:00
PKEuS
fb480ebb0a
Now really fixed #4604 .
2013-05-09 15:39:33 +02:00
PKEuS
881b47e79d
Revert "Improved handling of 0 initializations ( #4604 )"
...
This reverts commit 1201e417ec
.
2013-05-09 15:32:02 +02:00
PKEuS
0a104c40b7
Fixed "Improved handling of 0 initializations ( #4604 )"
...
This fixes commit 1201e417ec
.
2013-05-09 15:25:36 +02:00
PKEuS
982b9491d4
Improved handling of 0 initializations ( #4604 )
2013-05-09 06:23:25 -07:00
PKEuS
c42b89fb88
Revert "Improved handling of 0 initializations ( #4604 )"
...
This reverts commit 1201e417ec
.
2013-05-09 15:19:23 +02:00
PKEuS
1201e417ec
Improved handling of 0 initializations ( #4604 )
2013-05-09 06:17:10 -07:00
Daniel Marjamäki
cbe0a0825c
Fixed #4725 (Tokenizer: Replace block declaration (^{}) with asm())
2013-05-09 14:47:18 +02:00
Daniel Marjamäki
455b07a641
CheckAssert: Fixed shadow variable warning
2013-05-09 06:29:12 +02:00
Lena Herscheid
e23038c4de
Fixed #4775 (Check for assert() with side effects)
2013-05-07 21:35:16 +02:00
Daniel Marjamäki
67979f00be
ErrorLogger: Make sure Token class is known
2013-05-07 18:18:15 +02:00
Frank Zingsheim
bca751b9f4
Fixed #4773 (Regression: wrong detection of unitialized variable)
2013-05-06 18:45:00 +02:00
Daniel Marjamäki
4659745106
Fixed #4786 (segfault with one LibreOffice file)
2013-05-06 16:56:34 +02:00
Daniel Marjamäki
3f5a858800
dmake: update Makefile
2013-05-05 09:22:04 +02:00
Daniel Marjamäki
ea60c5b14b
CheckBufferOverrun: Code cleanup
2013-05-05 08:14:19 +02:00
Daniel Marjamäki
079d22fbee
Fixed #4734 (False 'Possible null pointer dereference')
2013-05-03 16:18:44 +02:00
Zachary Blair
de8ee5b042
Fixed #4554 (false negative: buffer access out of bounds)
2013-05-02 21:50:48 -07:00
Daniel Marjamäki
bfb1bc50e3
Fixed #4760 (false negative: (error) usage of uninitialized variable (struct member))
2013-05-02 20:34:15 +02:00
Daniel Marjamäki
44cb070e13
Fixed #4737 (False positive: Uninitialized variable 'do_something(&((char*)&var)[0],1);')
2013-05-01 13:52:28 +02:00
Frank Zingsheim
42068a3d60
Fixed #4767 (segmentation fault in expand template)
2013-05-01 13:28:01 +02:00
Daniel Marjamäki
287782a679
Fixed #4390 (False alarm 'Object pointed by an auto_ptr is destroyed using operator delete. You should not use auto_ptr for pointers obtained with operator new[].')
2013-05-01 11:11:57 +02:00
Daniel Marjamäki
b2798e929d
Improved fix for #4455 , no false negatives if variable is used before first memset
2013-04-30 16:56:44 +02:00
Daniel Marjamäki
cf75e2bb28
astyle formatting
2013-04-30 06:44:50 +02:00
Daniel Marjamäki
47ef8cf455
Fixed #4455 (redundantCopy when precleaning with memset)
2013-04-30 06:43:16 +02:00
Zachary Blair
1f97e0e5df
Ticket #4510 - Reduced the scope of the safeFunctions variable to avoid a cppcheck style issue
2013-04-26 20:06:17 -07:00
Baris Demiray
548dd42aaf
Fixed #933 (Leaks with struct members not detected)
2013-04-26 16:11:57 +02:00
Zachary Blair
2bc67d72c2
Ticket #4510 - Fixed a Travis build error resulting from reporting a warning when warnings are not enabled
2013-04-26 00:19:39 -07:00
Zachary Blair
35668380cf
Fixed #4510 (False positive: "Possible null pointer dereference if the default parameter value is used" after init)
2013-04-25 00:25:56 -07:00
Daniel Marjamäki
c3d1274db3
Reverted 'simplify NOT' since there are problems related to signedness of numeric values.
2013-04-24 06:32:34 +02:00
Daniel Marjamäki
e1dd14626c
Fixed #4735 (FP: Mismatching assignment and comparison)
2013-04-23 06:47:15 +02:00
Daniel Marjamäki
a5b044a6e2
Fixed #4754 (False positive: Map literals trigger redundant code warning)
2013-04-20 07:51:44 +02:00
Daniel Marjamäki
9f8ce6f77f
Fixed #4729 (Tokenizer::setVarId: Varid not tracked properly after function declaration with 'shadow' parameter name)
2013-04-19 18:36:16 +02:00
PKEuS
c2664a063e
Use existing Standards object instead of creating new one
...
Made const dummy variable static
2013-04-18 04:24:09 -07:00
Ettl Martin
21f9adf15e
Merge branch 'master' of github.com:danmar/cppcheck
2013-04-16 11:26:08 +02:00
Ettl Martin
cb343bd718
fixed typo in reporting Error
2013-04-16 11:25:45 +02:00
PKEuS
cf5d8fa3df
Use Token::link() instead of Token::findClosingBracket() whereever possible
2013-04-15 13:48:28 -07:00
Daniel Marjamäki
9ad39ca4c0
Fixed #4544 (Crash with this line : class CD : public CC< class CB< CA > >)
2013-04-12 16:38:12 +02:00
Daniel Marjamäki
e8fbd39efd
Templates: better handling of 'X<class Y>' template instantiations. Ticket: #4544
2013-04-11 18:58:39 +02:00
Ettl Martin
e03a3946d0
avoid crash in checkother:wrongPipeParameterSize when a pointer with unknown size is provided.
2013-04-11 14:22:22 +02:00
Ettl Martin
33cfc1a52e
fixed #4726 : simplify bitwise Not (~ %num%)
2013-04-11 09:16:40 +02:00
Daniel Marjamäki
a49fc57e00
Tokenizer: don't simplify 'a!=(b!=0)' to 'a!=b'. Ticket: #4697
2013-04-11 07:19:32 +02:00
Frank Zingsheim
54e7c8f6a2
Implemented support for move constructors:
...
Adapt code to Function::eMoveConstructor
introduced in commit eb2962792f
2013-04-10 21:57:22 +02:00
Daniel Marjamäki
7fdaba43ed
Uninitialized variables: Fixed fp when initializing struct with function in loop body
2013-04-10 20:46:44 +02:00
Daniel Marjamäki
96a5429cee
Uninitialized variables: Assume that function initializes struct if it is unknown if it does
2013-04-10 20:04:32 +02:00
PKEuS
994c429b7d
Moved checks related to sizeof usage from checkother into new file
2013-04-10 09:49:38 -07:00
PKEuS
42fcb04d0c
Moved checks related to boolean type (not condition checking!) from checkother into new file
2013-04-10 09:25:50 -07:00
PKEuS
4e6d105cbd
Added support for complex patterns to CheckOther::checkIncorrectStringCompare()
2013-04-09 09:16:35 -07:00
XhmikosR
8ac9b8e7a9
remove duplicate ";" and fours dots
2013-04-09 17:49:09 +02:00
PKEuS
c487ea843d
Better fix for #4706 : Use Token::nextArgument() properly. Removed redundant ' in message
2013-04-09 08:30:53 -07:00
Daniel Marjamäki
4c8b17c040
Fixed #4717 (False positive: Uninitialized variable inside ({..}))
2013-04-09 17:02:11 +02:00
Frank Zingsheim
1935c544e0
Fixed #4656 (New check: Detect pure virtual function calls)
...
C++11: move constructor
2013-04-08 20:48:45 +02:00
Daniel Marjamäki
0a17829021
removed extra newline
2013-04-08 19:52:48 +02:00
Frank Zingsheim
47360f1191
Fixed #4656 (New check: Detect pure virtual function calls)
...
C++11: move constructor
2013-04-08 19:37:08 +02:00
Daniel Marjamäki
894a2435ae
Fixed #4718 (False positive: unititialized variable (value flow))
2013-04-08 19:34:39 +02:00
PKEuS
95756409bc
Fixed MSVC warning
2013-04-08 02:26:58 -07:00
Daniel Marjamäki
4abe1c0bac
Fix Cppcheck message
2013-04-07 19:33:46 +02:00
Daniel Marjamki
cd770fb106
Fixed #4310 (False positive 'boolean result in bitwise' message in template class (was #3818 ))
2013-04-07 16:48:42 +02:00
Daniel Marjamäki
f43d732f33
Fixed #4691 (False positive: Mismatching bitmasks in switch())
2013-04-07 04:25:10 +02:00
Daniel Marjamäki
38680e3440
Fixed #4677 (Message for 'possible null pointer dereference, otherwise it is redundant to check..' is warning but says error)
2013-04-07 03:41:02 +02:00
zblair
ecfe4eb5be
Fixed #3372 (New check: dereference iterator and then checking it)
2013-04-04 21:14:59 -07:00
PKEuS
fd7c90f68d
Forgot to commit a file in eb2962792f
.
2013-04-04 10:57:35 -07:00
PKEuS
eb2962792f
Implemented support for move constructors:
...
- Changed behaviour of Token::function - is now also set for declarations
- Resolved TODO in testclass.cpp
- removed redundant code in Scope::findFunction - it is safe to call nextArgument() on functions without arguments
- Use Token::function in checkother.cpp
2013-04-04 10:53:55 -07:00
PKEuS
188096665c
Implemented support for rvalue references (C++11):
...
- Split up && when it is part of an rvalue reference declaration
- Added support into symbol database
- Current implementation sets Variable::isReference() to true also for rvalue references - they can probably be treated like normal references in many checks.
Changed behaviour of symbol database: Insert argument Variable of functions that are not implemented into SymbolDatabase::_variableList
2013-04-04 09:47:44 -07:00
Ettl Martin
ba8cca8fa9
#4706 fix crash when a struct member is used as first argument. Replaced Token::nexArgument with %any% in Token::Match call. Added unittests in testing Token::nexArgument.
2013-04-04 15:12:18 +02:00
PKEuS
c5d636c074
Replaced C function bsearch with std::binary_search
2013-04-03 01:35:08 -07:00
PKEuS
51685f24c5
Improved expression parsing in CheckNullPointer::isPointerDeRef() - fixed #4692
2013-04-03 01:27:08 -07:00
Frank Zingsheim
395a474ec2
Fixed #4695 : Infinite recursion inside isRecordTypeWithoutSideEffects()
2013-04-01 12:41:14 +02:00
PKEuS
12f5ccfb4e
Refactorized postfix operator check:
...
- Support class members
- Support references (removed wrong bailout)
- Removed wrong unit tests and wrong messages for std::cout << k-- << std::endl;
2013-03-31 04:17:23 -07:00
XhmikosR
99fc5f6203
checkbufferoverrun.cpp: fix a /W4 MSVC warning
2013-03-30 19:06:13 +01:00
PKEuS
b180e92b4c
Set version to 1.60 dev
...
Use WiX 3.7
2013-03-30 19:04:01 +01:00
Frank Zingsheim
5d55d40361
Fixed #4656 (New check: Detect pure virtual function calls)
2013-03-30 15:09:22 +01:00
Robert Reif
a3f9b5c07d
Fixed #4686 (Prefer prefix ++/-- operators for non-primitive types with template iterator)
2013-03-30 13:49:56 +01:00
Alexander Mai
b9c27699b3
Fixed #4684 (cppcheck crash in template function call.)
2013-03-29 19:29:23 +01:00
PKEuS
4fc92f4c27
Fixed mistake in verbose message.
2013-03-29 11:27:54 -07:00
Daniel Marjamäki
c733928505
1.59: Set versions
2013-03-29 18:06:13 +01:00
Daniel Marjamäki
2b51993b9f
Fixed Cppcheck warning. Function can be const
2013-03-29 17:55:29 +01:00
Alexander Mai
7902cd0123
Fixed #4447 (false positive: (style) Variable 'X' is assigned a value that is never used (goto))
2013-03-28 06:44:37 +01:00
Robert Reif
3f57b5a6ca
Fixed #4682 (using 'struct' disables checking)
2013-03-28 06:36:49 +01:00
XhmikosR
945319d804
Add missing space in error message and break a long line.
2013-03-25 20:03:07 +01:00
Daniel Marjamäki
2d70af2c82
Reverted fix. It might be possible to make a better fix
2013-03-25 19:55:35 +01:00
Daniel Marjamäki
2b02013fa7
Fixed #4668 (False positive: uninitialized Variable after unknown macro)
2013-03-25 19:52:33 +01:00
PKEuS
37ac86dec9
Fixed #4666 : Implemented proper variable scope checking for switch statements
2013-03-23 03:28:33 -07:00
Daniel Marjamäki
c9469993e2
Uninitialized variables: Fixed false positives when using sizeof inside loop
2013-03-22 08:10:46 +01:00
Daniel Marjamäki
a79354d51c
Uninitialized variables: Fixed false positive when taking address of uninitialized array that is a struct member
2013-03-20 16:59:45 +01:00
Ettl Martin
a08083a342
#4664 : using Token::nextArgument() and std::string &
2013-03-20 11:53:25 +01:00
Daniel Marjamäki
dd155b57e4
Fixed #4487 (False positive: variable is not assigned a value (pointer alias))
2013-03-20 06:38:53 +01:00
Ettl Martin
ff826d7c62
#4664 : new check: (POSIX) write outside buffer size.
2013-03-19 08:22:48 +01:00
Daniel Marjamäki
cc3139cf39
Tokenizer: Fixed 'variableScope' message.
2013-03-18 19:32:40 +01:00
Daniel Marjamäki
1b18bfc93c
Fixed #3585 (errors not recognized when class has extra specification)
2013-03-18 19:09:04 +01:00
PKEuS
d9f7042992
Fixed false negative #4663
2013-03-18 08:17:53 -07:00
Daniel Marjamäki
a4a2f78a7a
Fixed #4659 (portability: address value / integer false positive)
2013-03-17 17:25:57 +01:00
PKEuS
1e66e0b931
Fixed false negative #4657
2013-03-15 05:00:51 -07:00
Robert Reif
c600479c20
Symbol database: Tweaked debug printing of unknown types
2013-03-15 06:48:57 +01:00
kchrist
740e790bf1
Fixed #4649 (false positive: Used file that is not opened; variables in struct)
2013-03-15 06:42:46 +01:00
Daniel Marjamäki
c0a34649c4
fixed 'duplicate expression' false positives for float-float. Ticket: #4639
2013-03-14 19:11:29 +01:00
Daniel Marjamäki
369e80b021
Fixed #4465 (syntax error on valid C++ source file)
2013-03-14 18:52:22 +01:00
Daniel Marjamäki
fe046a3350
CheckBufferOverrun: Fixed Cppcheck warning 'variable scope can be reduced' (found by travis)
2013-03-14 18:25:28 +01:00
PKEuS
096fa2f771
Fixed #4380
2013-03-14 10:18:48 -07:00
PKEuS
ed477ceb74
Fixed false negative mentioned in #4354 .
2013-03-14 09:27:42 -07:00
PKEuS
641ac5c02a
Fixed #4352 : Ensure that class provides an iterator interface.
2013-03-14 09:00:22 -07:00
PKEuS
0b22cb932e
Fixed crash in test suite ( #4595 )
2013-03-14 04:21:38 -07:00
Robert Reif
4b9b87e310
Fixed #4646 (false positive: (style, inconclusive) Technically the member function 'C<T>::operator+=' can be const.)
2013-03-14 06:34:12 +01:00
Alexander Mai
f43ea5c491
Fixed #4594 (Analyzing errors about system headers not being found)
2013-03-13 19:50:50 +01:00
Daniel Marjamäki
1f04e2c228
Fixed #4439 (False positive: Uninitialized variable (casting address))
2013-03-13 17:32:47 +01:00
Alexander Mai
59d636742e
Fixed #4594 (Analyzing errors about system headers not being found)
2013-03-13 06:48:33 +01:00
Robert Reif
ee942c5592
Symbol database: Fixed --debug printing. Ticket: #4650
2013-03-13 06:31:13 +01:00
PKEuS
292e52364c
Refactorizations:
...
- Removed empty implementation of CheckUninitVar::runChecks()
- Avoided unnecessary string copying
2013-03-12 08:11:18 -07:00
PKEuS
796c3e101f
Implemented better fix for #4644
2013-03-12 08:05:03 -07:00
PKEuS
2333aa2cc7
Don't use native separators for suppression matching
2013-03-12 07:53:18 -07:00
PKEuS
14feaa8d39
Refactorizations:
...
- Fixed lots of cppcheck messages about functions that can be const or static
- Fixed possible nullpointer dereference message in symboldatabase.cpp
- Replaced tokAt(+-1) by next()/previous()
2013-03-12 07:42:00 -07:00
Alexander Mai
9d88cc63e8
Fixed #4642 (False positive: Returning an address value in a function with integer return type is not portable. (not returning address))
2013-03-12 06:49:13 +01:00
Ettl Martin
3d1cdd0eec
#4645 implemented correct range according manpage of usleep().
2013-03-11 17:38:03 +01:00
Ettl Martin
bb115573f7
#4645 implemented new check: (POSIX) argument of function usleep() too big.
2013-03-11 17:04:30 +01:00
PKEuS
b3a9ac5c3b
Fixed #4644 : Don't assign varid to template parameter when 'typename' is used
2013-03-10 06:11:25 -07:00
Daniel Marjamäki
1f40af2ae2
Fixed #4637 (false positive: (error) Uninitialized member variable (missing function inlining))
2013-03-09 17:55:49 +01:00
Robert Reif
25c36b56fa
CheckClass: made warnings about uninitialized members in default constructors inconclusive. Ticket: #4639
2013-03-09 09:20:48 +01:00
PKEuS
1fbef0e4e6
Reduced code duplication in symboldatabase
2013-03-05 10:53:24 -08:00
PKEuS
9287e40e99
Incresed constness of several pointers in symboldatabase
2013-03-05 09:42:42 -08:00
PKEuS
3a35944c9e
Changes in token.h/cpp:
...
- Properly set Token::_type to eVariable, eFunction or eName, depending on _function, _variable or _varId being set.
- Token can't be a variable and a function at a time - put Token::_function and Token::_variable into a union.
2013-03-05 08:50:01 -08:00
PKEuS
99a73fe1d3
Don't assign a varid to a variadic function
2013-03-05 08:32:52 -08:00
PKEuS
a94598e447
Fixed some gcc and cppcheck messages
2013-03-05 07:07:59 -08:00
PKEuS
ca96aaa53b
Avoided unnecessary usage of symbolDatabase->isClassOrStruct()
2013-03-05 06:55:31 -08:00
PKEuS
5bdb74ca40
Refactorized CheckOther::checkRedundantCopy():
...
- Iterate over variable list instead of token list
- Don't stop whole checking after bailing out (continue; instead of break;)
- Support types with qualified names
2013-03-05 06:53:09 -08:00
PKEuS
7bc729bc63
- Moved more functionality from Scope to Type: BaseInfo and FriendInfo
...
- Replaced Scope->findQualifiedScope by SymbolDatabase::findScope
- Improved SymbolDatabase::findType
2013-03-05 06:28:40 -08:00
PKEuS
66a3555897
Implement initial support for Types in Symboldatabase:
...
- For each class/struct/union, a Type instance is added to SymbolDatabase::typeList.
- A scope is no longer created for declared but not defined types
Fixed name detection for classes when they are declared like this: "class ::Foo::Sub {..."
2013-03-05 04:33:38 -08:00
PKEuS
0f03995995
Added support for different containers, while-loops and if to CheckStl::stlOutOfBounds()
2013-03-04 10:59:46 -08:00
Daniel Marjamäki
b3a2b69120
fixed gcc warning
2013-03-04 19:28:27 +01:00
Daniel Marjamäki
78a3a58a5a
Fixed #4628 (False positive: Variable is assigned a value that is never used)
2013-03-04 19:13:49 +01:00
Ettl Martin
cc6d138209
fixed gcc warning about missing braces
2013-03-04 14:30:01 +01:00
Ettl Martin
687c3a4654
Merge branch 'master' of github.com:danmar/cppcheck
2013-03-04 14:25:51 +01:00
Ettl Martin
c9b519bcd1
improved check: checkCastIntToCharAndBack. The check now handles (cin.get() != EOF) patterns.
2013-03-04 14:25:35 +01:00
PKEuS
34b1d75a10
Fixed handling of std::vector::insert() in CheckStl::pushback()
2013-03-04 02:57:09 -08:00
PKEuS
c24527dbde
Improved handling of dereferences in CheckClass::noMemset(), fixing false negatives and false positives related to multidimensional arrays and arrays of pointers.
2013-03-04 02:47:29 -08:00
PKEuS
dc65667cec
Fixed message about unused variable introduced in last commit
2013-03-03 10:46:01 -08:00
PKEuS
8a18f9ec3b
Rewrote CheckOther::checkVariableScope()
2013-03-03 10:35:33 -08:00
PKEuS
5c1a05dcbe
Refactorizations in CheckOther:
...
- Make CheckOther::checkCastIntToCharAndBack() work for multiple variables at once
- Improved messages of CheckOther::checkSuspiciousSemicolon() and CheckOther::checkPipeParameterSize()
2013-03-03 09:54:44 -08:00
PKEuS
d78c06dc3f
Replaced _settings->isEnabled("style") by _settings->isEnabled("warning") wherever warnings are issued
2013-03-03 02:41:59 -08:00
PKEuS
d49f4a611a
Reduced code duplication in tokenizer
2013-03-02 09:19:53 -08:00
Daniel Marjamki
c4419ea920
AST: create possible NULL pointer dereference if tokenlist is empty. Ticket: #4630
2013-03-02 15:49:48 +01:00
Daniel Marjamki
b9aba17b23
astyle formatting
2013-03-02 15:48:22 +01:00
Alexander Mai
0dca6e51a0
Fixed #4622 (Patch: Improve formatting for custom templates)
2013-03-02 15:16:18 +01:00
Daniel Marjamäki
9d195144ea
CheckClass: Fixed GCC warning
2013-03-02 07:30:55 +01:00
Robert Reif
ec7843e911
Fixed #4629 (False positive: warning (uninitMemberVar) - regression)
2013-03-02 07:24:51 +01:00
Daniel Marjamäki
d7a52eaecd
Fixed #4608 (false positive: (style) struct or union member is never used.)
2013-03-01 16:13:04 +01:00
PKEuS
096aae4439
New check: Warn about using malloc() for classes containing virtual methods, std::-objects or constructors
2013-03-01 06:07:20 -08:00
PKEuS
bf9aa102f2
Fixed possible nullptr dereference warning
2013-03-01 03:53:47 -08:00
PKEuS
0105f8223c
Simplified several Token::Match/simpleMatch calls when match string consists of a single pattern
...
Fixed two CheckInternal error messages
2013-03-01 03:42:04 -08:00
PKEuS
0a7fafa319
Fixed mistake in documentation
2013-03-01 02:47:50 -08:00
PKEuS
f899e6ca30
Changed behaviour of %op% pattern accordingly to changes to Token::isOp(). Added %cop% as replacement for old %op%
2013-03-01 02:43:59 -08:00
PKEuS
7283152d58
Fixed MSVC warning - removed unused variable/function declaration.
2013-02-28 12:51:48 -08:00
PKEuS
670c4de8a9
Changed behaviour of Token::is*Op() functions:
...
- Rename Token::isOp() to Token::isConstOp() (indicating that the operator does _not_ modify the input variables)
- Create new Token::isOp(), returning true also for ++, -- and assignment operators
- Make Token::isExtendedOp() returning also true for all assignment and ++/-- operators
2013-02-28 12:50:29 -08:00
Daniel Marjamäki
ecafe7a129
Fixed #4624 (Wrong error for instances of std::unique_lock (variable is never used))
2013-02-28 17:02:58 +01:00
zblair
ed03e2c845
Fixed #4539 (False positive: Possible null pointer dereference)
2013-02-27 23:45:21 -08:00
Daniel Marjamäki
94da3bd57f
Fixed #4617 (False positive (style): noexcept for constructors)
2013-02-28 06:38:57 +01:00
Alexander Mai
4ae65ea454
Fixed doxygen warnings
2013-02-27 21:05:18 +01:00
Ettl Martin
8d682233d0
Implemented new check (Ticket #160 ): Storing getc() retun value in char variable and comparing to EOF.
2013-02-27 21:02:12 +01:00
Robert Reif
509061afff
Fixed #4620 (False positive: Uninitialized variable in constructor (1.58))
2013-02-27 06:59:04 +01:00
Daniel Marjamäki
df55ce14a0
Fixed #4503 (False positive: Incomplete statement (std::vector<int> v{1};))
2013-02-24 10:00:03 +01:00
Daniel Marjamäki
2edf95a1b9
Fixed #4367 (false positive: Class '...' is unsafe, '...' can leak by wrong usage)
2013-02-24 08:14:25 +01:00
Daniel Marjamki
5c7e1cf9ff
Fixed #4387 (false positive 'constStatement' in 1.57)
2013-02-23 16:26:25 +01:00
Daniel Marjamki
ee435bf885
Fixed #4600 (False positive Uninitialized struct member when using it as 'out parameter')
2013-02-23 15:57:58 +01:00
Daniel Marjamäki
d5af34331b
ast: clarify the code somewhat
2013-02-23 07:43:12 +01:00
Daniel Marjamäki
bce99a9e2f
Fixed #4394 (FP: Variable 'a' is not assigned a value)
2013-02-20 17:43:16 +01:00
Robert Reif
21bf5173e5
Symbol database: faster implementation. Ticket: #4494
2013-02-20 07:46:06 +01:00
Daniel Marjamäki
71b66209b7
Fixed #4300 (segmentation fault of cppcheck (invalid code))
2013-02-20 06:58:27 +01:00
PKEuS
33cf561d85
Refactorized check for assigning function parameters:
...
- Fixed false negative: Check is also valid for all non-references, not only for pointers.
- Fixed false negative: Usage before assignment doesn't require bailout
- Fixed false positive #4598 caused by inadequate usage of CheckUninitVar::isVariableUsage
- Made several member functions static
2013-02-18 08:52:49 -08:00
Daniel Marjamäki
1c584208b4
Fixed #4329 (False duplicateBranch when branches use conditionally defined macros)
2013-02-18 17:18:33 +01:00
Robert Reif
e6915e7a78
Fixed #4536 (non-static member initializer causes false positive)
2013-02-18 06:33:53 +01:00
Ettl Martin
73e2a8fdb5
Merge branch 'master' of github.com:danmar/cppcheck
2013-02-17 17:34:44 +01:00
Ettl Martin
f451dd1137
#3521 implemented new check: wrong buffersize to pipe() function provided.
2013-02-17 17:33:32 +01:00
PKEuS
711d0d7a33
Warn about memset(this, 0, sizeof(*this)); ( #1285 )
2013-02-16 11:02:43 -08:00
Alexander Mai
b892d2e14c
Fixed #4300 (segmentation fault of cppcheck (invalid code))
2013-02-16 18:31:43 +01:00
Daniel Marjamki
2a660fa3b4
Tokenizer: Fixed removeCast bug. Don't simplify (A)&b to A&b if A might be a type. Related with ticket: #4439
2013-02-16 16:58:36 +01:00
Daniel Marjamki
635b7d5a0e
Fixed #4423 (Variable is assigned a value that is never used.)
2013-02-16 16:07:05 +01:00
PKEuS
0d316af4f2
Fixed false positive stlSize for code like "foo + 1 > bar.size()" ( #4584 )
2013-02-16 02:50:25 -08:00
PKEuS
b27a3c802c
Fixed travis failure: use begin() instead of C++11 cbegin()
2013-02-16 02:35:54 -08:00
PKEuS
d3087602a1
Fixed false positive "function can be const" if a non-const expression is inside []-brackets ( #4406 )
2013-02-16 02:20:18 -08:00
PKEuS
afe45ff39f
Refactorized CheckClass::privateFunctions:
...
- Resolved todo about nested classes, fixed false negative, fixed wrong unit test
- Removed slow and unnecessary Token::findmatch
- Removed false positive when function implementation in friend class is not seen (#4384 )
2013-02-16 01:51:08 -08:00
PKEuS
89cf24f23f
Refactorization: use Function::nestedIn instead of Function::functionScope->functionOf, which is valid even if the function implementation is not seen.
2013-02-16 01:43:16 -08:00
PKEuS
27f7917349
Changed severity and message formatting of argumentSize message.
2013-02-16 00:52:27 -08:00
PKEuS
7b3493322d
Fixed crash when running cppcheck on itself introduced in previous commit
2013-02-15 11:17:14 -08:00
PKEuS
44887df04f
Fixed false positive redundantAssignment when calling function in assignment ( #4513 )
2013-02-15 09:40:34 -08:00
Daniel Marjamäki
382d7a10e8
Uninitialized variables: improved checking of c++ code
2013-02-15 18:13:47 +01:00
PKEuS
ccd95d1749
Make redundantAssignment message inconclusive when printed on global variables to avoid false warning on semaphores/mutexes ( #4467 )
2013-02-15 09:01:10 -08:00
PKEuS
e2655da1ec
Properly handle return/break/continue in CheckIO::checkFileUsage() ( #4466 )
2013-02-15 08:30:43 -08:00
PKEuS
017b4a8a7f
Treat references like global variables in CheckOther::checkRedundantAssignment() as they might refer to such. ( #4425 )
2013-02-15 08:09:31 -08:00
Robert Reif
c5ee083c82
Fixed #4388 (false positive 'noConstructor' in 1.57)
2013-02-15 06:44:07 +01:00
Daniel Marjamki
452dc23742
Fixed #4480 (False positive : Inefficient usage of string::find)
2013-02-14 19:14:20 +01:00
Daniel Marjamäki
08ada4cc63
Fixed #2652 (container .size() check too strict)
2013-02-14 16:59:58 +01:00
Thomas Jarosch
72a40b4da4
Use Token::simpleMatch for simple patterns
...
"internal" check reported:
[lib/checkuninitvar.cpp:1101]: (warning) Found simple pattern inside Token::Match() call: "if ("
2013-02-14 12:35:13 +01:00
Robert Reif
a1da067b88
Fixed #4585 (false positive, Variable 'b' is assigned a value that is never used when using+loop)
2013-02-14 06:31:41 +01:00
Robert Reif
5de26bfeb9
Fixed #4574 (noConstructor false positives introduced in cppcheck 1.58)
2013-02-13 06:00:04 +01:00
Frank Zingsheim
213d31b360
Fixed #4547 (Improve check: Duplicate conditions in 'if' and related 'else { if'.)
...
Local fix in CheckOther::checkDuplicateIf()
2013-02-12 21:43:12 +01:00
Daniel Marjamäki
1e550f9fdf
Reverted fix for #4547 : It causes fp. See #4573
2013-02-12 16:13:08 +01:00
Daniel Marjamäki
28e38a9e56
Fixed #4519 (false positive: (error) Uninitialized variable: eax (inline assembly usage))
2013-02-12 15:59:23 +01:00
Ettl Martin
c192e4d669
spellfixes
2013-02-12 15:21:27 +01:00
Ettl Martin
dade326a99
#4566 implemented new check: redundantGetAndSetUserId on posix systems
2013-02-11 20:26:27 +01:00
Daniel Marjamäki
442db6cdf9
Fixed #4569 (False Positive: Uninitialised variable)
2013-02-11 18:31:14 +01:00
Daniel Marjamäki
94f1d34dcb
Fixed #4560 (false positive: (error) Uninitialized variable: s)
2013-02-11 17:05:59 +01:00
Daniel Marjamäki
48e194dc56
Fixed #4572 (Analysis failed: sizeof final)
2013-02-10 23:54:15 +01:00
Daniel Marjamäki
b660cf89ef
astyle formatting
2013-02-10 23:53:01 +01:00
Mathias De Maré
dfd557888d
Fixed #4565 (false positive: dangerous usage (not null-terminated))
2013-02-10 13:36:40 +01:00
Andrew C. Martin
bd0d9b9639
fix misspellings & gcc v3.4.6 warnings
...
1. fix typos / misspellings
- Fix misspelling within comments, variable/function names, stdout messages
- changes the name of an error code: ```stlBoundries``` changed to ```stlBoundaries```. Alias old name (```stlBoundries```) to the new one.
2. fix gcc v3.4.6 32bit & 64bit warnings
- fixes gcc v3.4.6 warnings, except for those in tinyxml and "-Wmissing-declarations" makefile warnings
- in Preprocessor::handleIncludes(), replace a ```vector <bool>``` with ```stack<bool>``` (see ```vector<bool>``` warning below).
- this is the only ```vector<bool>``` in the codebase
- ```vector <bool>``` is actually a case of template specialization, and is not recommended, according to the following links:
http://stackoverflow.com/q/6461487
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2160.html
http://stackoverflow.com/q/670308
- in the codebase before and after this change, testrunner SEGVs in a number of places on gcc v3.4.6, including ```Check::~Check()```, among others
- fc42fc95
fixes this particular runtime issue for DJGPP & __sun
2013-02-09 23:43:09 -07:00
Stefan Naewe
e786a2fa5e
lib/checkother: fix compiler warning about unused member
...
Found by clang:
lib/checkother.cpp:2992:31: warning: private field '_symbolDatabase' is not used
[-Wunused-private-field]
const SymbolDatabase *_symbolDatabase;
Signed-off-by: Stefan Naewe <stefan.naewe@googlemail.com>
2013-02-08 12:15:42 +01:00
Stefan Naewe
46fb31f9e5
lib/tokenize: fix two compiler warnings about emtpy while loop
...
Fixes these warnings:
lib/tokenize.cpp: In member function ‘bool Tokenizer::tokenize(std::istream&, const char*, const std::string&)’:
lib/tokenize.cpp:1962: warning: suggest a space before ‘;’ or explicit braces around empty body in ‘while’ statement
lib/tokenize.cpp: In member function ‘bool Tokenizer::tokenizeCondition(const std::string&)’:
lib/tokenize.cpp:2174: warning: suggest a space before ‘;’ or explicit braces around empty body in ‘while’ statement
Signed-off-by: Stefan Naewe <stefan.naewe@googlemail.com>
2013-02-08 12:15:42 +01:00
Robert Reif
fe5de60f32
Fixed #4567 (false negative: The class 'B' does not have a constructor.)
2013-02-08 06:55:45 +01:00
Daniel Marjamäki
463121be71
Fixed #4561 (cppcheck 1.58 crashes on empty signals block in headerfile)
2013-02-07 17:03:08 +01:00
Robert Reif
42588e9729
Fixed #4535 (Simplify checks by caching symbol database Variable pointer in Token)
2013-02-06 06:39:58 +01:00
Frank Zingsheim
d9de7f7052
Travis: Fixed Cppcheck warnings (related to #4547 )
2013-02-05 23:31:53 +01:00
Frank Zingsheim
5144307642
Raise syntax error for if-condition without parentheses according to #2518 #4171
2013-02-05 21:13:57 +01:00
Daniel Marjamäki
4ac5648656
Uninitialized struct: Fixed false positive in for loop
2013-02-05 17:01:46 +01:00
Robert Reif
1fd78d2b56
CheckPostfixOperator: Use Token::variable. ticket: #4535
2013-02-05 06:47:08 +01:00
Robert Reif
3e3b728a9c
CheckStl: Use Token::variable. ticket: #4535
2013-02-05 06:46:26 +01:00
Frank Zingsheim
b531195e08
Fixed #4547 (Improve check: Duplicate conditions in 'if' and related 'else { if'.)
...
Change tokenizer: "else if" -->> "else { if"
2013-02-04 21:12:12 +01:00
Daniel Marjamäki
a39a2479da
Travis: Fixed false positive in lib/checkbufferoverrun. Ticket: #4486
2013-02-04 19:02:42 +01:00
Daniel Marjamäki
1de54ba88e
Fixed #4486 (False positive: Return of address from function with integer return type (p+1-q))
2013-02-04 18:14:52 +01:00
Robert Reif
8e35860fc2
CheckClass: Refactoring. Use Token::variable(). Ticket: #4535
2013-02-02 16:30:17 +01:00
Daniel Marjamki
9124847211
Uninitialized variable: Refactoring. Use Token::variable() instead of symboldatabase lookup. Ticket: #4535
2013-02-02 16:27:12 +01:00
Frank Zingsheim
89560564ed
Refactoring: Add braces to an if-block, for-block, etc. in tokenizer.
...
Fixed #4521 (Tokenizer: Wrong braces for triple if else)
2013-02-02 16:01:34 +01:00
Daniel Marjamki
abd536b84c
Null pointer: Changed 'possible null pointer dereference - otherwise condition is redundant' to warning
2013-02-02 15:46:29 +01:00
Daniel Marjamki
75e20a996d
assign function pointer: Fixed false positive when pointer is used also. Ticket: #2930
2013-02-02 15:26:14 +01:00
Daniel Marjamki
9c8d600ca9
Uninitialized variables: Refactor CheckUninitVar::isVariableUsage
2013-02-02 15:21:54 +01:00
Daniel Marjamki
6bb8dd605a
assign function parameters: only show warning when --enable=warning or --enable=style is used. Ticket: #2930
2013-02-02 15:08:43 +01:00
Daniel Marjamäki
cbbb582fc9
Fixed #2930 (new check: redundant assignment of pointer function parameter)
2013-02-01 19:16:17 +01:00
Daniel Marjamäki
a04f7b1a94
CheckNullPointer::isPointerDeRef: Refactoring - use tok->variable(). Ticket: #4535
2013-02-01 19:10:14 +01:00
Robert Reif
1a58ae4994
Symbol database: handle when forward declaration doesn't match declaration. Ticket: #4531
2013-02-01 06:31:02 +01:00
Robert Reif
94c953931d
Simplify checks by caching symbol database Variable pointer in Token
2013-01-31 20:08:48 +01:00
Daniel Marjamäki
e2faed355b
Fixed #4485 (False positive: Same expression of '-' when checking if float is inf)
2013-01-31 17:29:31 +01:00
Daniel Marjamäki
bd7e3cbac5
Fixed #4540 (memory leak not detected ('.' or '->' is used before Function))
2013-01-31 17:00:50 +01:00
Robert Reif
ec1c86c152
Symbol database: more function/variable cleanup. Ticket: #4494
2013-01-31 06:41:18 +01:00
Daniel Marjamäki
fc42aa3a30
Fixed #4523 (false positive: (error) Possible null pointer dereference)
2013-01-30 16:52:12 +01:00
Daniel Marjamäki
bc6d31c7c7
unsigned division: don't warn about 'unsigned char' because it is promoted to int.
2013-01-30 16:50:12 +01:00
Daniel Marjamäki
509dd9a989
Fixed #4523 (false positive: (error) Possible null pointer dereference)
2013-01-29 17:12:14 +01:00
Daniel Marjamäki
3679a809dd
Uninitialized variables: fixed false positive
2013-01-28 18:08:20 +01:00
Robert Reif
859793731d
SymbolDatabase: Refactor findFunction handling. Ticket: #4494
2013-01-28 06:47:48 +01:00
Daniel Marjamäki
4391f0880f
Tokenizer: Add special tokenize method for the Preprocessor with only basic simplifications
2013-01-27 17:58:54 +01:00
Daniel Marjamäki
42dd956dff
Preprocessor: Better fix for hangs. And added proper unit test.
2013-01-27 02:53:29 +01:00
Robert Reif
a0d8fd26fe
SymbolDatabase: improved handling of const in function parameters
2013-01-27 02:46:00 +01:00
Daniel Marjamäki
6238db3a78
Preprocessor: Fix hang
2013-01-26 19:11:58 +01:00
Daniel Marjamäki
9313f7aa79
Preprocessor: Fix. Ticket: #4516
2013-01-26 18:45:18 +01:00
Daniel Marjamki
f69b1f426e
Preprocessor: Improved handling of expressions in simplifyVarMap. Ticket: #4516
2013-01-26 16:21:33 +01:00
Daniel Marjamki
641e7cba28
Fixed #4516 (Preprocessor: wrong #if evaluation)
2013-01-26 12:37:46 +01:00
Daniel Marjamki
8738223e82
Fixed #4512 (Improve check: Uninitialized variable not detected)
2013-01-26 08:16:53 +01:00
Daniel Marjamki
04ceae7ea7
Uninitialized variables: minor refactorings
2013-01-26 07:28:11 +01:00
Daniel Marjamäki
ae43b12bf1
Fixed #4511 (False positive: uninitialized struct member)
2013-01-25 18:20:57 +01:00
Robert Reif
3b08b410a2
Symbol database: Improved function lookup (a.b.f()). Ticket: #4494
2013-01-25 06:49:04 +01:00
Daniel Marjamäki
c235737b6c
Uninitialized variables: improved checking of loops
2013-01-24 19:41:15 +01:00
Erik Lax
c2608108dd
Fixed #3928 (Tokenizer: Wrong simplification of inner if-else 'if (a) while (b) if (c) x; else y;')
2013-01-24 16:53:20 +01:00
Erik Lax
569b2ae9cd
Fixed #4505 (test/testtokenize.cpp: Assertion failed in 'make check')
2013-01-23 18:27:28 +01:00
Robert Reif
cecd726b11
Symbol database: Improved function lookup for foo.f(). Ticket #4494
2013-01-23 16:53:55 +01:00
Daniel Marjamäki
683c8adb74
TokenList: Handle #line better. Ticket: #4505
2013-01-23 07:04:45 +01:00
XhmikosR
645126fb8e
remove double trailing semicolons
2013-01-23 06:48:21 +01:00
Daniel Marjamäki
f86e83d813
Memory leaks: Improved handling of allocation functions that contains ::. Ticket: #4494
2013-01-22 21:33:39 +01:00
Erik Lax
444f80c4bb
Fixed #4505
2013-01-22 13:49:54 +01:00
Thomas Jarosch
f97015e244
Don't use Token::Match() for simple string comparison
2013-01-22 13:16:23 +01:00
Robert Reif
ddb604d1a5
Symbol database: function lookup when :: is used. Ticket #4494
2013-01-22 06:55:25 +01:00
Edoardo Prezioso
f68d6f7c95
Standards: remove useless semicolon after function
2013-01-22 00:13:36 +01:00
Frank Zingsheim
096cb1bd88
Fixed #3686 : false positive: Possible null pointer dereference (inconclusive)
2013-01-21 19:38:59 +01:00
Daniel Marjamäki
bfafd51ca1
Fixed #4470 (New check: redundant bitand 'x&=1; x&=2;' can be simplified to 'x=0;')
2013-01-21 19:59:34 +01:00
Thomas Jarosch
f867d05d81
Use Token::simpleMatch() for simple pattern
...
Found by "internal" check
2013-01-21 10:14:39 +01:00
Daniel Marjamki
76534ccd1b
Uninitialized struct member: Fixed false negatives for return statements
2013-01-20 17:54:32 +01:00
Daniel Marjamki
d33341a21a
Fixed #4502 (Preprocessor: Treat SystemInclude and UserInclude the same)
2013-01-20 14:42:04 +01:00
Daniel Marjamki
e63f2c3b5b
Uninitialized struct member: Avoid false positive when struct member is passed by address
2013-01-20 13:12:40 +01:00
Daniel Marjamäki
67c9720299
Tokenizer: fixed simplification of static constants
2013-01-19 21:14:15 +01:00
Daniel Marjamki
6d5532980e
Tokenizer: Set proper variable ID when simplifying return statement. Ticket: #3500
2013-01-19 13:42:54 +01:00
Daniel Marjamki
bff6ed7af0
Fixed #3500 (false negative: (error) Returning pointer to local array variable)
2013-01-19 13:39:23 +01:00
Daniel Marjamki
f1c195e652
Fixed #3506 (false negative: not initialized variables ( struct timeval))
2013-01-19 12:48:56 +01:00
Thomas Jarosch
7c4f0e594b
astyle formatting
2013-01-19 11:49:35 +01:00
Daniel Marjamki
3cf0e88fbe
Uninitialized struct members: Improved checking when struct member is used in expression
2013-01-19 10:09:58 +01:00
Zachary Blair
8647e4c0d0
Fixed a false positive in #4109 (if (c == 1) c == 0; Isn't picked up)
2013-01-18 16:34:15 -08:00
Daniel Marjamäki
7c615f0f12
Fixed #4497 (False positive: uninitialized struct (writing/reading member))
2013-01-18 21:26:28 +01:00
Zachary Blair
a1cbed3df8
Fixed #4109 (if (c == 1) c == 0; Isn't picked up)
2013-01-17 23:03:04 -08:00
Daniel Marjamäki
c59dab2738
uninitialized struct member: changed severity from warning to error since it is UB
2013-01-17 23:18:37 +01:00
Daniel Marjamäki
2c6b383822
Uninitialized member variables: Improvements
2013-01-17 21:04:22 +01:00
Daniel Marjamäki
e32ab4bf65
uninitialized struct members: improved fix
2013-01-17 17:21:21 +01:00
Daniel Marjamäki
93fb6b0c6a
Fixed #4493 (FP: uninit struct member (struct is assigned))
2013-01-17 17:01:04 +01:00
Thomas Jarosch
b1eec7c6b7
Small refactoring to compile more matches
...
*** Timing of the test suite ***
Four runs were used to calculate the average run time.
Before: ~1,103s
After: ~1,066s
Speed up: 3,35%
*** Timing of internal projects using STL ***
Before: ~8,301s
After: ~8,207s
Speed up: 1,13%
So the real world speed up is roughly 1%.
2013-01-17 10:26:03 +01:00
Thomas Jarosch
c8b619ef86
Let the match compiler catch some more patterns
2013-01-16 22:05:28 +01:00
Thomas Jarosch
e22b1f7740
Adapt Tokenizer::simplifyCallingConvention() and Tokenizer::simplifyKeyword() for the match compiler
...
This little change gives another 6% speed improvement on my box.
(tested with the testsuite and checking the 'rpm' codebase)
The profiler showed we were spending quite some time in
Tokenizer::simplifyCallingConvention(). The multi match
pattern in there is "complex", at least for the on-the-fly parser.
2013-01-16 20:33:01 +01:00
Daniel Marjamäki
5773e69ab1
Uninitialized variables: Add experimental checking of struct members
2013-01-16 20:28:29 +01:00
Daniel Marjamäki
4cd8c7c608
Merge pull request #128 from acmyo/master
...
Fix compiler warnings and comment/string typos
2013-01-16 08:00:59 -08:00
Daniel Marjamäki
0fb2d309a6
Fixed #4490 (False positive: unused function (function pointer is taken in global scope))
2013-01-16 16:52:57 +01:00
Andrew C. Martin
4a73c93750
Fix compiler warnings and comment/string typos
...
- fix g++ warning:
> lib/checkother.cpp:3779: warning: comparison between signed and unsigned integer expressions
- fix suncc warning (see [everything2](http://everything2.com/title/C%252B%252B%253A+static+extern+%2522C%2522 )):
> "lib/checkmemoryleak.cpp", line 578: Warning (Anachronism): Formal argument __compar of type extern "C" int(*)(const void*,const void*) in call to bsearch(const void*, const void*, unsigned long, unsigned long, extern "C" int(*)(const void*,const void*)) is being passed int(*)(const void*,const void*).
- prefer empty() / isEmpty() over "size() > 0" (cases not caught by stlSize)
- fix word misspellings (mostly comments, a few output lines)
- Parenthesis => Parentheses (both variations were used in the codebase)
- fix typo and wording ("never alwayw") in gui/test/data/benchmark/simple.cpp's CheckOther::unsignedPositive():
```
- "An unsigned variable will never alwayw be positive so it is either pointless or "
+ "An unsigned variable can't be negative so it is either pointless or "
```
2013-01-16 07:37:07 -07:00
Daniel Marjamäki
78f3c5f772
Unused functions: Fixed invalid pattern match
2013-01-16 06:43:19 +01:00
Daniel Marjamäki
27eedcd0a3
Merge pull request #127 from rofl0r/master
...
sanitize the descriptive text displayed for "varFuncNullUB"
2013-01-15 21:34:03 -08:00
Thomas Jarosch
f4227967ce
Simplify token string access
...
"internal" check reported:
[lib/tokenize.cpp:6671]: (style) Call to 'Token::tokAt()' followed by 'Token::str()' can be simplified.
2013-01-15 20:37:02 +01:00
Thomas Jarosch
5c8b05ce94
Use Token::simpleMatch() for simple pattern
...
"internal" check reported:
[lib/symboldatabase.cpp:945]: (warning) Found simple pattern inside Token::Match() call: "> ("
2013-01-15 20:34:11 +01:00
Daniel Marjamäki
2fa35a6f8d
Fixed #4429 (unused functions: handle function declarations better)
2013-01-15 17:00:28 +01:00
rofl0r
de72ae9f45
sanitize the descriptive text displayed for "varFuncNullUB"
2013-01-14 18:11:16 +01:00
Daniel Marjamäki
d46789ee4a
varFuncNullUB: fixed false positive when non-variadic argument is NULL ( #4482 )
2013-01-14 06:44:52 +01:00
Erik Lax
723d95597b
Fixed #4481 (Simplify %str% [ %num% ])
2013-01-13 20:52:38 +01:00
Daniel Marjamäki
f0ce26a2aa
Preprocessor: Let the Tokenizer handle NULL
2013-01-13 15:01:31 +01:00
Daniel Marjamäki
2e56928834
Fixed #4482 (add test for UB due to usage of NULL in variadic functions)
2013-01-13 12:02:10 +01:00
Erik Lax
b538c50856
Fixed #4484 (1.58: new crash for linux kernel code)
2013-01-13 07:57:46 +01:00
PKEuS
c62233643a
Set version to 1.59 dev
2013-01-12 17:49:09 +01:00
Daniel Marjamäki
3057078571
1.58: Set versions
2013-01-12 14:49:58 +01:00
Daniel Marjamäki
97b928b2bc
Fixed #4476 (Tokenizer: wrong simplification of static anonymous-type struct array declaration)
2013-01-10 18:24:01 +01:00
Zachary Blair
309edbbdc5
Fixed #4389 (False positive: Possible null pointer dereference if the default parameter value is used)
2013-01-09 23:22:54 -08:00
Edoardo Prezioso
6236e1dc38
Token::Match: removed harmless special code for initial '!!foo' patterns.
2013-01-09 20:13:33 +01:00
Thomas Jarosch
33619de072
Revert "Change location of %op% operator in multicompare"
...
It's no longer needed with the proper fix for Token::Match().
This reverts commit 8b2adf1391
.
2013-01-09 17:06:04 +01:00
Thomas Jarosch
7dd07d8e77
Properly implement %op% for Token::multiCompare
...
Use tok->isOp() instead of doing it "manually".
This fixes false positives for the C++ template case since
the brackets in "template < something >" are not comparison operators.
Profiling showed using tok->isOp() is actually faster than before (-O2).
2013-01-09 17:05:53 +01:00
Thomas Jarosch
8b2adf1391
Change location of %op% operator in multicompare
...
When the %op% operator is the first element
of a multicompare, it properly executes Token::isOp().
Otherwise it uses it's "internal implementation".
Workaround inspired by Edoardo Prezioso.
2013-01-08 20:26:48 +01:00
Frank Zingsheim
498d03458f
Fixed #4385 : lock_guard RAII throws unreadVariable
2013-01-07 20:28:43 +01:00
XhmikosR
049c995c99
version.h: update copyright year
2013-01-07 19:53:32 +01:00
Daniel Marjamäki
eebfea2b23
Fixed #4381 (Inline type declaration on statics causes warning)
2013-01-07 19:20:15 +01:00
Zachary Blair
f3c3b7c910
Fixed #4405 (False positive: Memory in freed twice (throw))
2013-01-05 19:02:19 -08:00
PKEuS
f5ebbff0a3
Fixed #4460 : Ensure that memset/memcpy is called on a pointer to a class instance.
2013-01-05 12:27:55 -08:00
Edoardo Prezioso
4c73c29cdd
Revert partially the previous commit:
...
The two formulas are true iff 2n = 2 <=> n = 1.
2013-01-05 17:31:08 +01:00
Edoardo Prezioso
c465cf4ab4
Related to the previous commit:
...
Use bit operator '&' instead of modulo operator '%'.
2013-01-04 14:20:15 +01:00
Edoardo Prezioso
1c0c0471df
Simplify some generalized math formulas:
...
Now the 'sin^2+cos^2=1' and the 'sinh^2-cosh^2=-1' code can handle, for example: sin^4+cos^4=1, sinh^10-cosh^10=-1.
Also, the arguments can be also multitokens, so that it's possible to simplify, for example: 'sin^2(k())+cos^2(k())=1'.
2013-01-04 13:06:09 +01:00
Edoardo Prezioso
5485e6866f
Fixed wrong tokenization of some math formulas:
...
The two formulas: sin^2+cos^2 = 1 and sinh^2-cosh^2 = -1 are true iff the two arguments are the same.
2013-01-04 11:28:01 +01:00
Robert Reif
d37906041b
Fixed #4458 (False positive: noCopyConstructor in template class)
2013-01-04 10:35:24 +01:00
Thomas Jarosch
7f0bc73e8e
Simple constification (needed by the match compiler)
2013-01-04 03:17:52 +01:00
Edoardo Prezioso
c9fb7f529d
Use more Effective C++ code style in SymbolDatabase class:
...
1)The SymbolDatabase::findScope code is moved to the const-version. The non-const version is reimplemented as the combination with const_cast and static_cast.
2)Unrelated: change style of the declaration of some functions (the '*' is moved near the function name).
2013-01-04 01:19:17 +01:00
Edoardo Prezioso
1affb0c96b
Use more Effective C++ code style in Token class:
...
1)The non-const version of Token::tokAt and Token::linkAt now will use a combination of const_cast and static_cast to remove duplicate code.
2)The non-const versions of Token::find(simple)match are added, in order to avoid the usage of const_cast outside the Token code.
3)As a consequence of 2), an useless const_cast applied to a call of Token::findsimplematch in Tokenizer code is removed.
2013-01-03 22:35:34 +01:00
Daniel Marjamäki
a3ee72a51d
Fixed #4409 (Cppcheck 1.58 dev hangs when checking mhz.c of lmbench3 (attached code))
2013-01-03 19:14:44 +01:00
Daniel Marjamäki
ded0d50591
Tokenizer: add reportProgress to Tokenizer::simplifyKnownVariables. Ticket: #4409
2013-01-03 15:22:06 +01:00
Daniel Marjamäki
70059c06de
Fixed #4456 (std::string::compare(char const*) crash)
2013-01-03 08:44:32 +01:00
Daniel Marjamäki
6e58ed3040
Fixed #4454 (False positive: class member (POD) not initialized (when initialized to 0 in initializer list))
2013-01-02 13:59:57 +01:00
Reijo Tomperi
5d5f7085bf
Updating year 2012 -> 2013 to .cpp and .h files and man page.
2013-01-01 18:29:08 +02:00
Robert Reif
d2e8ab9c86
Fixed #4302 (Member variable not initialized in public delegate constructor)
2013-01-01 09:53:40 +01:00
Edoardo Prezioso
6612952dd4
Use 'simple' matching with normal patterns.
2012-12-31 13:30:06 +01:00
Daniel Marjamäki
bf169e0c59
Replaced %name% with %type%
2012-12-31 10:45:37 +01:00
Daniel Marjamäki
4378357d7e
Fixed #4372 (Tokenizer misidentifying which function a variable belongs to)
2012-12-29 21:07:41 +01:00
Daniel Marjamäki
dde4cc39e5
astyle formatting
2012-12-29 17:13:54 +01:00
Daniel Marjamäki
4d085dd3fd
Fixed #4316 (False positive: (constStatement) Redundant code)
2012-12-29 17:13:06 +01:00
Daniel Marjamäki
e7aa1ec396
Fixed #4411 (Variable is assigned a value that is never used.)
2012-12-29 12:45:37 +01:00
Daniel Marjamäki
8491df31ca
Merge pull request #126 from SimonKagstrom/for-upstream
...
Misc fixes for the --include= option
2012-12-28 23:58:14 -08:00
Daniel Marjamäki
9af51a75e6
Tokenizer::setVarId: Proper handling of 'void f(struct foobar). Ticket: #4444 '
2012-12-29 08:54:39 +01:00
Daniel Marjamäki
38d1b064e8
Symbol database: Add support for unnamed array arguments to functions ( #4444 )
2012-12-29 08:32:43 +01:00
Robert Reif
07d118dee5
Fixed #4449 (segfault in CheckClass::initializeVarList())
2012-12-29 08:30:14 +01:00
Thomas Jarosch
1f87c6d669
Fix crash on empty brackets
...
Relevant parts from the backtrace:
2012-12-28 20:16:51 +01:00
Daniel Marjamäki
1769240e15
Fixed #4022 (false positive: (style) Variable 'sort_entry' is assigned a value that is never used)
2012-12-28 18:18:36 +01:00
Robert Reif
5ba2a300af
Symbol database: Improved handling of array arguments ( #4444 )
2012-12-28 16:28:29 +01:00
Simon Kagstrom
95b51d02c9
path: Add getPathFromFilename (returns the path part of a filename)
...
E.g.,
/tmp/a.h -> /tmp/
a.h ->
etc.
2012-12-28 12:44:26 +01:00
Simon Kagstrom
350f86fb6a
preprocessor: Kill commented out code
2012-12-28 12:43:43 +01:00
Simon Kagstrom
1e4288fe2e
preprocessor: Don't access empty lists
...
libc aborts with:
/usr/include/c++/4.4/debug/list:256:error: attempt to access an element in
an empty container.
Objects involved in the operation:
sequence "this" @ 0x0xbfffe5f0 {
type = NSt7__debug4listISsSaISsEEE;
}
otherwise.
2012-12-28 12:43:43 +01:00
Daniel Marjamäki
de2c133f6a
Fixed #4426 (False positive: Unitialized variable warning when comparing addresses)
2012-12-28 12:32:15 +01:00
Daniel Marjamäki
6770cc80be
Uninitialized variables: Added debug warning for bailout
2012-12-28 11:42:50 +01:00
Thomas Jarosch
78316f02b6
Fix comment about wrong magic number
2012-12-28 11:31:50 +01:00
Thomas Jarosch
4708be09f5
Fixed #4444 (segmentation fault)
2012-12-28 11:15:18 +01:00
Robert Reif
bd2f59bdf0
Fixed #4442 (crash of cppcheck while scanning gcc-testsuite (invalid code))
2012-12-28 08:36:20 +01:00
Daniel Marjamäki
b914466285
Uninitialized variables: fixed false positives by bailing out when variable is conditionally initialized and then there is a conditional return.
2012-12-27 18:45:00 +01:00
Daniel Marjamäki
bf9b900c30
Tokenizer::setVarId: Fixed problem with initializer lists ( #4436 )
2012-12-27 18:15:00 +01:00
Robert Reif
a43ae677d7
Fixed #4419 (False positive: Class does not have a constructor)
2012-12-27 17:21:30 +01:00
Robert Reif
3e6d601982
Fixed #4436 (FP: Member variable is not initialized in the constructor. (with two parameters))
2012-12-27 17:15:38 +01:00
Daniel Marjamäki
7368079949
Fixed Cppcheck self-check message
2012-12-27 17:11:22 +01:00
Daniel Marjamäki
57488db9da
Preprocessor: Reduce variable scope
2012-12-27 17:00:59 +01:00
Daniel Marjamäki
0585588fc7
astyle formatting
2012-12-27 16:59:30 +01:00
Simon Kagstrom
ef28bde3e4
Fixed #4408 (Force inclusion of files (a la -include /.../ in GCC))
2012-12-27 16:52:31 +01:00
Daniel Marjamäki
2e0a9c4b33
Fixed #4434 (false positive: (style) Mismatching assignment and comparison, comparison 'pen!=-1' is always true.)
2012-12-27 15:40:00 +01:00
acm4me
7da155c8ba
Support for Sun Studio C++ compiler
2012-12-27 11:51:12 +01:00
Daniel Marjamäki
bfb82fe3e1
Cppcheck: Show single 'too many configurations' message if --enable=information hasn't been used and there are too many configurations.
2012-12-26 18:35:49 +01:00
Daniel Marjamäki
b3301a9ef9
Fixed #4433 (Wrong array size for string with \0)
2012-12-26 12:10:09 +01:00
Robert Reif
ce380301fd
Fixed #4432 (Crash on parsing PHP interpreter)
2012-12-26 08:29:10 +01:00
Daniel Marjamäki
f127d56719
Null pointer: Fixed FP when there are 'return p?p->x:0;'
2012-12-25 14:23:50 +01:00
Daniel Marjamäki
f16c30248a
Uninitialized variables: fixed FP when there are function calls where type* is converted to unknown_type
2012-12-25 14:05:29 +01:00
Daniel Marjamäki
f381058293
Uninitialized variables: fixed FP when there are suspicious function calls where type** is converted to type*
2012-12-25 13:58:15 +01:00
Daniel Marjamäki
bcc5a82b1d
Uninitialized variables: Fixed FP when using typeof on uninitialized data in return statement
2012-12-25 13:31:54 +01:00
Daniel Marjamäki
db123c2c9b
Fixed #4431 (FP: Erroneous 'Ineffective call of function empty()' in ?: test)
2012-12-25 12:50:38 +01:00
Daniel Marjamäki
299c1bb208
Uninitialized variables: handle unsimplified labels better
2012-12-25 10:37:21 +01:00
Daniel Marjamäki
db2a129557
Tokenizer: Improved handling of '\0' in strings
2012-12-25 08:56:12 +01:00
Daniel Marjamäki
83da4125e3
Uninitialized variables: Better value flow analysis. Fixed false positives.
2012-12-24 19:11:13 +01:00
Daniel Marjamäki
31297cf7d3
Opposite inner conditions: Clean up copy/pasted code
2012-12-24 12:21:48 +01:00
Daniel Marjamäki
b39afb2cf9
Revert "Fixed #4419 (False positive: Class does not have a constructor)"
...
This reverts commit 9a79961b6c
.
There is a segmentation fault when checking lib/preprocessor.cpp
2012-12-24 07:46:55 +01:00
Robert Reif
9a79961b6c
Fixed #4419 (False positive: Class does not have a constructor)
2012-12-24 06:46:30 +01:00
Daniel Marjamäki
56b7670468
Tokenizer::setVarId: Fixed problem in initializer list when parameter and class member has same name
2012-12-23 19:55:09 +01:00
Daniel Marjamäki
0b4da3d5cd
Uninitialized variables: Fixed false positives when variable x is given a nonzero value when variable y is uninitialized.
2012-12-23 16:27:04 +01:00
Daniel Marjamäki
9e58714bb1
Cppcheck: Only show 'Too many configurations' and 'Interrupted checking' information messages when information severity is enabled
2012-12-23 08:23:52 +01:00
Robert Reif
dae232015e
Fixed #4430 (FP: Member variable is not initialized in the constructor.)
2012-12-23 08:04:44 +01:00
Daniel Marjamäki
47e1a571f7
Tokenizer: Fixed goto problems
2012-12-22 19:28:53 +01:00
Daniel Marjamäki
7f6a10599b
Fixed #4262 (Small Request/Suggestion for checks on array size of args (bounty offer))
2012-12-22 09:23:34 +01:00
Daniel Marjamäki
365a260ddc
Fixed #4398 (False negative: out of bounds (for loop))
2012-12-22 08:00:05 +01:00
Robert Reif
80848c6e0e
Fixed #4383 (Improve check: uninitialized member variable not detected when initialization is not proper)
2012-12-21 19:36:45 +01:00
Daniel Marjamäki
2050cd71db
Uninitialized variables: Better testing of function handling
2012-12-21 19:32:56 +01:00
Daniel Marjamäki
dc6aa92f3b
Uninitialized variables: warn about structs in C code
2012-12-21 18:50:38 +01:00
Daniel Marjamäki
cf84c211ed
Uninitialized variables: Improved handling of function calls
2012-12-21 17:04:15 +01:00
Daniel Marjamäki
415ee977d8
Uninitialized variables : fixed false positives when passing address of pointer to function.
2012-12-21 16:57:49 +01:00
Daniel Marjamäki
7e8019e474
Fixed #4403 (False positive 'Conversion of string literal <string> to bool always evaluates to true.' with BOOST_ASSERT)
2012-12-20 20:48:48 +01:00
Daniel Marjamäki
ccdea4dc2b
Uninitialized variables: Improved checking of functions
2012-12-20 19:45:30 +01:00
PKEuS
d82048f5f5
Fixed compiler error in VS10
2012-12-20 04:03:36 -08:00
Robert Reif
bb2a15c140
Symbol database: Better handling of 'using namespace N;'. Ticket: #4412
2012-12-20 06:53:04 +01:00
Daniel Marjamäki
3913fd8398
Fixed #4320 (False positives 'unassignedVariable' and 'uninitvar')
2012-12-18 19:02:30 +01:00
Daniel Marjamäki
1e2fb4f1a4
Unused var: Limit bailout for foreach loops. Only bailout if name contains 'foreach' or 'for_each'. Only bailout variables that are used more than once in the body. Ticket: #4155
2012-12-17 18:19:05 +01:00
Daniel Marjamäki
72ea94bf75
Fixed #4155 (false positive: Variable is assigned a value that is never used (inside BOOST_FOREACH loop))
2012-12-17 17:07:56 +01:00
Daniel Marjamäki
a84d21f271
CheckMemoryLeaksInFunction: Fixed problems with catch and function calls. Ticket: #4405
2012-12-16 18:06:40 +01:00
Daniel Marjamäki
bca7927913
AST: generate tree from bottom and upwards
2012-12-16 11:48:19 +01:00
Daniel Marjamäki
aad3a041ad
AST: Handle function calls
2012-12-16 10:06:55 +01:00
Daniel Marjamäki
1ad9c933ec
AST: Improved handling of unary operators
2012-12-16 08:41:04 +01:00
Robert Reif
6732f05b95
Fixed #4404 (Forward declared class cause false style warning about missing constructor)
2012-12-16 07:18:03 +01:00
Daniel Marjamäki
fa8e5cd7d8
AST: Simple AST. Not used in the clients. Only part of the testing for now.
2012-12-15 20:21:09 +01:00
Daniel Marjamäki
d3f5fd4e59
Tokenizer: Fixed Token::Match pattern
2012-12-10 20:38:07 +01:00
Daniel Marjamäki
df03e3a8d2
Fixed #4395 (Wrong simplification of known variables in nested assignment)
2012-12-10 06:08:33 +01:00
Robert Reif
5a7ede2563
Fixed #4391 (False positive: ctor not detected after variable declaration)
2012-12-10 06:01:29 +01:00
Frank Zingsheim
327db15284
Fix #4045 : memory leak not reported after usage of " + p[]"
2012-12-09 08:59:21 +01:00
Daniel Marjamäki
927a6e4794
Obsolete functions: removed 'ctime' warning. The function is obsolete but the message don't point out a good replacement nor where it's documented that this function is obsolete
2012-12-09 09:35:57 +01:00
PKEuS
410c0f98d9
Refactorized CheckObsoleteFunctions:
...
- Speedup checkobsoletefunctions by using symboldatabase and by not calling SymbolDatabase::findFunctionByToken() for each function call.
-> Benchmark (SQlite amalgamation):
CheckObsoleteFunctions::runSimplifiedChecks(): 9s -> 0,016s (562%, 4% on entire runtime)
- Fixed false negative when passing function result as parameter
2012-12-08 02:46:30 -08:00
PKEuS
578e582987
Fixed regression #4368 .
2012-12-08 00:26:10 -08:00
PKEuS
068c695bd1
Fixed false positive when ternary operator is used: case A&&B?B:A:
2012-12-07 12:44:30 -08:00
PKEuS
0ac4c3baf4
New check: Find suspicious case labels like 'case A||B:'
2012-12-07 12:27:32 -08:00
PKEuS
65db8b8b9f
Fixed #4229
2012-12-07 11:45:20 -08:00
Edoardo Prezioso
0273c183a7
Run astyle and update the translation files.
...
I believe we need a hook script because else everytime we change a file we have to make a new commit to fix the discrepancies problems.
2012-12-07 01:49:51 +01:00
Robert Reif
63b585424d
Fixed #4386 (False positive: ctor not detected)
2012-12-05 20:31:17 +01:00
Frank Zingsheim
b99d3f0767
Style change: Fixed #4369 (false positive: Variable 'i' is assigned a value that is never used)
...
based on aebdb3769f
due to comment in aebdb3769f
2012-12-05 20:18:14 +01:00
Frank Zingsheim
aebdb3769f
Fixed #4369 (false positive: Variable 'i' is assigned a value that is never used)
2012-12-04 21:39:51 +01:00
Daniel Marjamäki
c91250cd6e
Fixed #4277 (duplicateExpression finds false positive for floats in a union as a member of a class)
2012-12-03 17:05:37 +01:00
Daniel Marjamäki
b08ba5b575
Preprocessor: Refactoring previous fix
2012-12-02 20:17:25 +01:00
Daniel Marjamäki
cb06d07ae7
Fixed #4351 (Escaped whitespace gives wrong error)
2012-12-02 18:04:19 +01:00
Daniel Marjamäki
15ef6bb32f
Fixed #4382 (Use of alloca causes VLA recommendation in C++)
2012-12-02 11:39:26 +01:00
Daniel Marjamäki
bf91454136
Fixed #4224 (False positive: Comparison of a boolean with an integer (neglecting a cast))
2012-12-02 08:34:30 +01:00
Daniel Marjamäki
dba51c906e
cleanup: removed redundant insideLoop assignment in checkunusedvar. Thank you zingsheim for the suggestion
2012-12-02 07:28:05 +01:00
Robert Reif
b216639069
Fixed #4378 (simplifyEnum doesn't simplify enum type within open and close parenthisis)
2012-12-02 07:22:55 +01:00
Edoardo Prezioso
45a16baaa0
Token: try to improve speed of multicompare macro.
2012-12-01 23:58:01 +01:00
Edoardo Prezioso
f6c23fa1e7
runastyle and fix checkInternal messages.
2012-12-01 03:17:55 +01:00
Edoardo Prezioso
9ce6630b28
Add some unused private copy ctors and operator=.
...
In Token and in Check classes, GCC -Weffc++ reports that it's better to override the copy constructors and the assignment operator to avoid problems with copied objects which could have the same pointers, hence with double frees, when we delete one of these pointers in the copied and in the original object.
2012-12-01 02:17:46 +01:00
Edoardo Prezioso
f42ab9871d
Fix build breakage in recent commits.
2012-12-01 02:02:45 +01:00
Edoardo Prezioso
5101f3c029
Use the new pattern: '%comp%' where possible.
...
Change also the description comment of the Token::Match by adding the new pattern and the forgotten '%op%'.
2012-12-01 01:31:35 +01:00
Edoardo Prezioso
aeb4531a58
Token::Match: add a new pattern: '%comp%'.
...
Token::Match returns true if the token is a comparison operator. It's equivalent to matching '<|<=|==|!=|>=|>' and the tests show that the new pattern speeds up the program execution. Added the new pattern in CheckInternal (and also reordered the %cmd% lists) and in TestToken.
2012-12-01 00:55:24 +01:00
Edoardo Prezioso
f3782935c2
Tokenizer: improve code and change name of +- concatenation function.
2012-12-01 00:43:23 +01:00
Edoardo Prezioso
3d1d983251
Tokenizer: simplify also __FILE__ together with __LINE__.
2012-12-01 00:37:10 +01:00
Daniel Marjamäki
45b77554ea
Fixed #4308 (C++11 raw string literals not parsed correctly)
2012-11-30 13:46:46 +01:00
PKEuS
bcb4410dae
Fixed invalid function in symboldatabase causing endless recursion (VS10 warning) by const_cast
2012-11-30 02:25:40 -08:00
Daniel Marjamäki
672831f41a
Fixed #4187 (False positive: Variable inside a lambda is reported as uninitialized)
2012-11-30 10:30:26 +01:00
Daniel Marjamäki
031adef6ea
Array index checking: Fixed TODO comment (false negatives when using ?:)
2012-11-30 09:01:15 +01:00
Daniel Marjamäki
1c4afbce8c
Cleanup: Removed += and -= patterns from the checks. These should be simplified.
2012-11-30 07:08:16 +01:00
Daniel Marjamäki
82223227bd
Uninitialized variables: Fixed false negative in new checking when using while loops
2012-11-30 06:30:04 +01:00
Robert Reif
35c2b8058d
Fixed #3190 (SymbolDatabase: Parse of sub class constructor fails)
2012-11-30 06:03:58 +01:00
Edoardo Prezioso
a219ed313b
Fixed again #2963 (FP: Typedef names considered duplicate because __LINE__ not expanded).
...
It is caused by a regression introduced with commit 75fbe310ff
. Add also a TODO in the non working detection inside TestSimplifyTokens::simplifyTypedef98.
2012-11-30 00:00:44 +01:00
PKEuS
0db2675912
Removed unnecessary pattern "const|" - typeStartToken() never points to "const"
2012-11-29 10:47:52 -08:00
Daniel Marjamäki
68327b3c64
Uninitialized variables: Fixed TODO testcase
2012-11-29 18:41:48 +01:00
Edoardo Prezioso
e214d94589
Tokenizer: use list.back() when we start the loop backwards.
2012-11-29 17:42:31 +01:00
Daniel Marjamäki
233b7ddb4c
Fixed #4323 (False Positive: Null pointer dereference)
2012-11-29 10:32:34 +01:00
Daniel Marjamäki
7760a92930
CheckAssignIf: Better handling of various expressions in assignments
2012-11-29 10:19:52 +01:00
Daniel Marjamäki
3372657a07
Fixed #4227 (False positive: Comparison of a boolean with an integer (double dResult=false))
2012-11-29 09:29:25 +01:00
Daniel Marjamäki
509721d6d0
Fixed #4304 (False positive during an array declaration)
2012-11-29 08:44:12 +01:00
Daniel Marjamäki
ba3833c692
Fixed #3678 (stlcstrReturn for classes which don't provide a std::string)
2012-11-29 07:10:56 +01:00
Edoardo Prezioso
6b40d93f6f
Try to fix Visual Studio compiler warning.
...
Related to commit 119ab519a4
.
2012-11-28 12:06:27 +01:00
Daniel Marjamäki
40719c56db
Fixed #4183 (false positive with method named c_str())
2012-11-28 08:48:48 +01:00
Daniel Marjamäki
7d94230329
Fixed #4079 (#if condition does not evaluate numbers with sign)
2012-11-28 07:33:24 +01:00
Daniel Marjamäki
5d1b4e6dbb
Tokenizer: Remove redundant '+'
2012-11-28 07:09:56 +01:00
Frank Zingsheim
f23ce8d254
Fixed #4180 (false positive: (style) Variable is assigned a value that is never used (inside loop))
2012-11-28 06:11:33 +01:00
Daniel Marjamäki
4e92f8dfcd
Fixed #4295 (False positive: Expression '(X & 0xFF00000000000000LL)==0xa00000000000000' always evaluates to false (64-bit value))
2012-11-27 17:37:49 +01:00
Edoardo Prezioso
f3029ce6bb
Fixed a bug in Tokenizer::simplifyKnownVariables.
...
When we find constant variables, check if there's a usage of its reference in the code (for example: don't simplify 'f(&x)' to 'f(&100)').
2012-11-26 17:06:52 +01:00
Robert Reif
bbc1747919
Fixed #3702 (False negative: fail to detect constructor implementation with slightly different (irrelevant) signatures)
2012-11-26 16:34:44 +01:00
Edoardo Prezioso
76639578ad
Improve Tokenizer::simplifyFuncInWhile.
...
Differentiate between the new cppcheck:r variables by appending a number to the name, like 'cppcheck:r1', 'cppcheck:r2' and more.
2012-11-26 02:19:35 +01:00
Edoardo Prezioso
9dae536ce3
Little tweaks to Token::Match code.
2012-11-25 15:20:50 +01:00
Edoardo Prezioso
0f4cdc9e87
More CheckNullPointer speed ups, related to #4266 .
2012-11-25 14:55:31 +01:00
Edoardo Prezioso
927d3e8ce2
Speed up the new CheckNullPointer checking.
...
Related to commit 095824373a
, using the new precomputed vector of functions, related to ticket #4266 .
2012-11-25 12:40:14 +01:00
Zachary Blair
095824373a
Fixed #3302 (new check: nullpointer dereference)
2012-11-20 23:56:17 -08:00
Edoardo Prezioso
5fb2115e9d
Fixed a bug in Tokenizer::concatenateNegativeNumber.
...
The first negative number inside a '{}' list was not simplified correctly.
2012-11-20 19:14:58 +01:00
Robert Reif
ffe657128f
Fixed #4364 (Segfault in CheckStl::stlBoundries)
2012-11-20 06:12:14 +01:00
Edoardo Prezioso
e0c10efdce
Add a 'prepend' bool option to Token::InsertToken.
...
If it's true, add a new token before this. Except when this is the first one in the list, because there's not a way to update the list.front (I noticed some Token functions can potentially delete the list.front(), I don't know which effects does it cause).
2012-11-20 02:58:19 +01:00
Edoardo Prezioso
fdeacbaec6
Enhance style and code to Token::Match function.
2012-11-20 00:19:57 +01:00
Edoardo Prezioso
39bd31b44c
Improve comment style in token.cpp.
2012-11-19 16:30:07 +01:00
Daniel Marjamäki
382e1e95ef
Fixed #4168 (False positive: (style) struct or union member 'super::x' is never used)
2012-11-18 15:24:47 +01:00
Daniel Marjamäki
7ecfb189a2
astyle formatting
2012-11-18 15:04:45 +01:00
Edoardo Prezioso
c5e5ee9ed2
Adapt %var%|%num% changes with Tokenizer, final.
2012-11-17 22:44:31 +01:00
Edoardo Prezioso
1bf003389e
Adapt %var%|%num% changes with Tokenizer, part 4.
2012-11-17 22:43:42 +01:00
Edoardo Prezioso
f8e4af9ce2
Adapt %var%|%num% changes with Tokenizer, part 3.
2012-11-17 22:42:24 +01:00
Edoardo Prezioso
bd63db62af
Adapt %var%|%num% changes with Tokenizer, part 2.
2012-11-17 22:40:44 +01:00
Edoardo Prezioso
2b4215ea7a
Adapt %var%|%num% changes with Tokenizer, part 1.
2012-11-17 22:39:02 +01:00
Edoardo Prezioso
9d0a295b85
Partially fixed #4288 (handle %var%|%num% patterns).
2012-11-17 20:51:18 +01:00
Robert Reif
6b8e83a181
speed up checks by caching commonly looked up stuff in the symbol database (checkother, checkstl, checkunusedvar). Ticket: #4266
2012-11-16 06:50:49 +01:00
Daniel Marjamäki
a2febc49d6
Fixed #4318 (False positive: 'unreadVariable')
2012-11-15 08:36:43 +01:00
Daniel Marjamäki
79cd601ae7
Fixed #4356 (False positive at variable initialization)
2012-11-15 07:48:45 +01:00
Robert Reif
09eed80938
speed up checks by caching commonly looked up stuff in the symbol database (CheckOther). Ticket: #4266
2012-11-15 07:11:45 +01:00
Robert Reif
04d04c33c2
speed up checks by caching commonly looked up stuff in the symbol database (CheckOther). Ticket #4266
2012-11-14 18:12:33 +01:00
Robert Reif
6578b78077
speed up checks by caching commonly looked up stuff in the symbol database (checkIncorrectLogicOperator). Ticket: #4266 .
2012-11-13 18:30:33 +01:00
Robert Reif
f82eff6589
speedup checkpostfixoperator.cpp by caching commonly looked up stuff in the symbol database. Ticket: #4266
2012-11-12 06:16:38 +01:00
PKEuS
e5ebb49312
Added support for sizeof(wchar_t). Improved <Windows.h> type testing for Win64 platform.
2012-11-11 16:16:17 +01:00
PKEuS
5555e055f1
Refactorized <Windows.h> type support:
...
- Changed some more Win32 simplifications of wide-character/string types to use wchar_t
- Added support for LPWSTR
- Fixed test case to ensure that simplifications also work for Win32W
2012-11-11 15:40:06 +01:00
PKEuS
4ea2df8671
Changed handling of type wchar_t:
...
- Don't simplify wchar_t to unsigned short on Win32 platforms to ensure that checking of strings and nullpointer dereferences works.
- Added it as standard type
2012-11-11 14:47:16 +01:00
PKEuS
17b720ef7d
Refactorization: Removed unnecessary code. Variable::typeStartToken() and Variable::typeEndToken() never point to "const".
...
Ran AStyle
2012-11-11 13:32:19 +01:00
PKEuS
704f285c90
Refactorized CheckStl::pushback():
...
- insert(), reserve() and clear() also invalidate iterators
- Properly support return and throw statements: Bailout after semicolon
- "." is also bad usage of invalid iterator.
2012-11-11 13:03:58 +01:00
Jose Roquette
e8d3a4300d
Fixed #4197 - False negative: invalidIterator2 not detected
2012-11-11 12:01:52 +01:00
PKEuS
4ee955fc8c
Improved CheckNullPointer::isPointerDeRef():
...
- Fixed #4240
- Added support for wstring/wchar_t
2012-11-10 19:53:20 +01:00
PKEuS
3e03838025
Fixed verbose messages in CheckOther::incorrectLogicOperatorError which didn't contain all information of the short message.
2012-11-10 11:31:36 +01:00
PKEuS
f75826c3e2
Added wstring to pattern where I forgot in bbe06c65c0
2012-11-09 20:25:50 +01:00
PKEuS
58fe7105f4
Remove C++11 keywords "override", "final" and "constexpr"
2012-11-09 19:53:10 +01:00
PKEuS
ce961578c2
New checks (inconclusive): Suspicious calculation with sizeof()
...
- Check for sizeof(ptr)/something: This indicates that programmer was trying to calculate array size, but sizeof(ptr) doesn't return the length of the memory area, but size of a pointer.
- Check for sizeof()*sizeof(): This indicates that programmer misunderstood what sizeof() does: It does return the length in bytes of the given variable, not e.g. the number of elements in an array.
2012-11-09 18:08:20 +01:00
Edoardo Prezioso
119ab519a4
Support GNU extension of '?:' operator:
...
"x ? : y" is equivalent to "x ? x : y". I found a lot of code with this extension, probably we should warn a user to not use this.
2012-11-08 17:49:43 +01:00
Edoardo Prezioso
9556634ee7
Revert 1c0617c504
.
2012-11-07 18:34:25 +01:00
Edoardo Prezioso
061a5e1ad7
Run astyle.
2012-11-07 02:24:46 +01:00
Edoardo Prezioso
1c0617c504
change some Token::Match patterns used in code:
...
replace '||' with '%oror%', where possible.
2012-11-07 02:23:09 +01:00
PKEuS
aa2ad41629
Print message "Found calculation inside sizeof()" also for increment/decrement operator.
2012-11-06 11:39:47 -08:00
PKEuS
bbe06c65c0
Added support for wide-strings (wcs* functions, std::wstring, std::*wstringstream) at many places.
2012-11-06 10:54:52 -08:00
Zachary Blair
51d128c918
Fixed #2029 (free invalid address) by reporting previously-unreported errors as "inconclusive"
2012-11-05 21:02:51 -08:00
Edoardo Prezioso
ca2a6e6054
Add '%char%' as a CheckInternal known pattern.
2012-11-05 17:25:36 +01:00
Edoardo Prezioso
63307c5db2
Remove the now useless fix for #4245 .
...
The fix for #4276 made completely useless that branch, so remove it until someone shows a testcase which breaks this commit.
2012-11-05 00:13:04 +01:00
Edoardo Prezioso
7293fcfa9b
Remove redundant code in simplifyVarDecl:
...
TokenList::insertTokens adds the missing braces links when needed. The function does not add links to '<>', though, hence the TODO.
2012-11-05 00:12:22 +01:00
Edoardo Prezioso
4e25ffa948
Remove unexecuted branch in duplicateTypedef:
...
If the code is intended to be used, please revert + provide a valid testcase.
2012-11-04 23:03:14 +01:00
Edoardo Prezioso
333711ae4f
Remove dead branch in simplifySizeof:
...
the code in that branch won't ever be executed because simplifySizeOf is called after arraySize, which adds the string length inside the '[]' parenthesis.
2012-11-04 22:41:38 +01:00
Edoardo Prezioso
24bf6f99e1
More simplifyRedundantParenthesis changes:
...
simplify also '( var . var . ... . var )' parenthesis.
2012-11-04 22:38:18 +01:00
Edoardo Prezioso
b6b359d1c6
Tokenizer::simplifyRedundantParenthesis refactor:
...
Change useless 'while' to 'if' where possible; unify duplicate 'delete [| ]| var' handling code.
2012-11-04 20:51:40 +01:00
Edoardo Prezioso
93f1fed205
Tokenizer '?:' handling code refactorization:
...
move '=|,|(|[|{|}|;|case|return (%bool%) ?' code handling from simplifyConditionOperator in simplifyConstTernaryOp in order to use a more efficient code, thus to remove code duplication.
2012-11-04 19:18:11 +01:00
Edoardo Prezioso
18e1eb7c70
Add missing hunks in the previous commit.
2012-11-04 19:08:54 +01:00
Edoardo Prezioso
c54eafdf69
Use '%char%' matching in the tokenizer file.
2012-11-04 17:22:38 +01:00
Edoardo Prezioso
87c931b74b
Add '%char%' as pattern to match in Token::Match.
...
All and only those single characters enclosed in "'" are accepted.
2012-11-04 16:58:18 +01:00
Andrew Martin
7c370ec873
Fixed #4305 (improve check: 'vector.size() < 1' should result in 'inefficient checking for '...' emptiness.')
2012-11-04 16:15:26 +01:00
PKEuS
dc3eba964b
Incremented version to "1.58 dev" (1.57.99)
2012-11-04 15:49:18 +01:00
Daniel Marjamäki
3a44a5ca3c
1.57: Setting version
2012-11-04 13:50:23 +01:00
PKEuS
4cd96158ae
Fixed parsing of "__asm__ volatile {""};"
2012-11-04 12:21:34 +01:00
PKEuS
b0c1c2c819
Don't suggest using initialization list for static variables ( #4332 )
2012-11-04 11:59:09 +01:00
PKEuS
e44ee280bc
Fixed handling of pointers to functions in namespace as template parameters ( #4172 )
2012-11-04 11:15:03 +01:00
PKEuS
9cb9388e49
Fixed handling of pointers in templates ( #4319 )
2012-11-04 10:49:25 +01:00
PKEuS
6122819832
Message refactorization: Changed expression "0-terminate" to "null-terminate" as discussed on 24b98feadb
2012-11-03 21:21:19 +01:00
PKEuS
1c399c86ca
Improved fix for #4311 ; Added back support for "this." (fixes again #4291 )
...
Added TODO unit test for missing varid.
2012-11-03 21:16:05 +01:00
PKEuS
c84857fc7e
Fixed compilation as shared lib with PCRE: Ensure that sizeof(Settings) is the same with and without HAVE_RULES
...
Fixed VS10 solution when TinyXml is included (define TIXML_USE_STL).
2012-11-03 20:37:23 +01:00
Daniel Marjamäki
6c2563c467
Fixed #4311 (False positive: warning (selfAssignment): Redundant assignment of 'm_bar' to itself.
2012-11-03 13:18:43 +01:00
Daniel Marjamäki
24e71c479c
Fixed #4301 (htmlreport broken)
2012-11-03 11:25:40 +01:00
PKEuS
a36e008967
Fixed #4314 : Using CheckNullPointer::isPointerDeRef() here is overkill and doesn't work as intended, since this function is designed to return 'false' if it isn't sure.
2012-11-03 10:25:32 +01:00
Edoardo Prezioso
c9e0089546
Change Tokenizer member function name.
...
From 'simplifyQuestionMark' to 'simplifyConstTernaryOp' (the older name was not clear). Adjusted the doxy comment.
2012-11-02 14:57:12 +01:00
PKEuS
24b98feadb
Message refactorization: checkuninitvar.cpp, checkunusedfunctions.cpp, checkunusedvar.cpp
2012-11-01 18:40:20 +01:00
Robert Reif
d7b658a5aa
speed up checks by caching commonly looked up stuff in the symbol database (checkio)
2012-10-30 15:52:45 +01:00
Robert Reif
8e14d7682c
Symbol database: fix some function prototype bugs that were found during check conversions. Ticket: #4266
2012-10-30 15:48:06 +01:00
Daniel Marjamäki
e1dce66494
tweaked message
2012-10-28 13:03:40 +01:00
Daniel Marjamäki
38213f1f2f
Fixed #4237 (False positive: (error) Memory Leak: data (assign reference variable value to a shadow variable in inner scope))
2012-10-27 16:36:14 +02:00
Daniel Marjamäki
863441afe8
Fixed #4236 (False positive: pointer free()d twice - neglecting call to other function)
2012-10-25 19:41:18 +02:00
Edoardo Prezioso
39a5768e9d
Fixed cppcheck message found in lib:
...
[lib/checkmemoryleak.cpp:869]: (style) The scope of the variable 'realloc' can be reduced.
And since realloc is never used, for now I commented all the lines where 'realloc' is declared/used.
2012-10-25 14:05:53 +02:00
Edoardo Prezioso
8271d63744
Forgot to fix another clang analyzer message.
...
I don't understand why here there is a loop 'break' after a token stepping forward and a bool assignment.
2012-10-24 15:30:40 +02:00
Edoardo Prezioso
99777671e5
Related to commit 11b00470637ed119140fb6257a5552f13f010d85: fix copy-paste mistake.
2012-10-24 03:27:15 +02:00
Edoardo Prezioso
11b0047063
Fix some clang analyzer messages.
...
CheckMemoryLeak: two redundant assignments, should be clarified;
TemplateSimplifier: same;
Tokenizer: same.
2012-10-24 03:17:56 +02:00
Edoardo Prezioso
b50e1f4451
Attempt to fix all doxygen warnings.
2012-10-24 01:32:07 +02:00
Daniel Marjamäki
e7483af028
Opposite inner conditions - made check 'experimental' because there are unsolved false positives.
2012-10-21 18:18:29 +02:00
Robert Reif
d1fad4b762
speed up checkmemoryleak by caching commonly looked up stuff in the symbol database ( #4266 )
2012-10-21 09:07:51 +02:00
Robert Reif
9bc2a62c1e
speed up checkio by caching commonly looked up stuff in the symbol database ( #4266 )
2012-10-21 09:05:01 +02:00
Baris Demiray
0e100f7563
Fixed #4189 (Improve check (printf('%l') not detected))
2012-10-21 08:50:29 +02:00
Edoardo Prezioso
f0f216390e
Fixed #4276 (segmentation fault of cppcheck (invalid code))
2012-10-20 21:40:51 +02:00
Edoardo Prezioso
4ddcde1e6f
CheckMemoryLeak: add '?1:0' to clarify the value of the argument to 'deleteNext'; Tokenize.cpp: in simplifyCompoundAssignment(), remove ':' odd code used to fix a weird test case ('case' code not inside a function body), remove useless 'tok->next() != NULL' check (already true by previous condition); in simplifyConditionOperator(), handle better the parenthesis skipping code and remove useless ')'check; in simplifyQuestionMark(), remove useless 'tok->tokAt(-2)' check (Token::Match returns false if the token is NULL), add more patterns to Token::Match to handle more test cases; in simplifyBitFields(), add 'const' to 'offset' bool. RedirectOutputError: style nitpick change to declaration of a pointer.
2012-10-19 14:19:52 +02:00
PKEuS
e44e6837c2
Fixed several doxygen-comments in lib and gui
2012-10-19 11:29:05 +02:00
Baris Demiray
d84d360afc
Fixed #4291 (Variable ID is not set when variable is accessed through 'this')
2012-10-19 06:18:13 +02:00
Edoardo Prezioso
c1718ae38d
Fixed g++ -Wshadow warning message.
2012-10-17 00:29:06 +02:00
Edoardo Prezioso
61365ea0e5
Fixed #4293 (FP: Variable is not simplified, causing a false positive).
2012-10-17 00:25:20 +02:00
Daniel Marjamäki
b591097c87
Revert "Fixed #3190 (SymbolDatabase: Parse of sub class constructor fails)"
...
This reverts commit 1ee980184e
.
2012-10-16 19:12:27 +02:00
Robert Reif
1ee980184e
Fixed #3190 (SymbolDatabase: Parse of sub class constructor fails)
2012-10-16 06:11:28 +02:00
Daniel Marjamäki
562291477d
Fixed #4226 (False positive: Uninitialized variable (problem with namespace ::rtl))
2012-10-15 06:53:38 +02:00
Daniel Marjamäki
be174d6266
TemplateSimplifier: Fixed bad pattern that was detected by CheckInternal and pointed out by edward-san. The handling of recursive templates is better now.
2012-10-14 19:48:53 +02:00
Robert Reif
3064b48156
speed up checks by caching commonly looked up stuff in the symbol database (checkexceptionsafety)
2012-10-14 17:40:17 +02:00
Robert Reif
cf7996e299
SymbolDatabase: Improved find function functionality. Taking arguments into account
2012-10-14 17:34:09 +02:00
Robert Reif
0d4b87c71e
SymbolDatabase: Improved find function functionality. Taking arguments into account
2012-10-14 17:30:37 +02:00
Robert Reif
2a2366b258
Fixed #4226 (False positive: Uninitialized variable (problem with namespace ::rtl))
2012-10-14 17:25:29 +02:00
PKEuS
f4a06133a3
New attempt on properly fixing Unicode characters in version resource.
2012-10-14 16:00:58 +02:00
PKEuS
2aae8381cc
Message refactorization: checkstl.cpp
2012-10-14 11:16:48 +02:00
PKEuS
fc53b15fa4
Refactorized resource files:
...
- Stored global information about cppcheck version and copyright string in a single resource.h file.
- Use macros of windows.h instead of numeric values for filetype, etc.
- Added versioninfo metadata to lib (#4275 )
- Removed VS resource editor code from resource files - these files shouldn't be modified with it to avoid information loss
- Renamed files to version.h/rc
- Encoded files as ANSI again - use escape sequences for unicode characters in literals (#4281 )
2012-10-14 10:21:22 +02:00
Edoardo Prezioso
8324de1dc0
Fixed 'tokAt(-2)->link() -> linkAt(-2)' thanks to cppcheck internal check.
2012-10-13 14:59:34 +02:00
Edoardo Prezioso
64b4960acc
Tokenizer: simplify GCC '({ %var%|%num% ; })' to '%var%|%num%'.
...
Remove useless brace around condition in simplifyFlowControl.
2012-10-13 13:24:41 +02:00
Robert Reif
0f8db28d30
speed up checks by caching commonly looked up stuff in the symbol database (CheckBufferOverrun, CheckBoost)
2012-10-13 11:16:48 +02:00
Edoardo Prezioso
1951d1cdc5
Tokenizer: improve the new 'skipTernaryOp' function by supporting GCC '{(var|num;)}' statement expression extension; improve 'Tokenizer::simplifyQuestionMark' by supporting simplification with 'case' before ternary operation, using skipTernaryOp to get colon and, most importantly, supporting indented '?:' operations.
2012-10-13 02:32:43 +02:00
Edoardo Prezioso
d4a3c1617a
Fixed: Tokenizer::simplifyLabelCaseDefault was careless with '?:' operator near 'case' adding the semicolon after the ternary colon.
2012-10-12 20:51:13 +02:00
XhmikosR
8d08c3b58b
pro and pri files: remove unneeded empty lines, use spaces for consistency
2012-10-12 17:46:57 +02:00
Edoardo Prezioso
c42facae1f
Tokenizer::simplifyLabelsCaseDefault: jump '(' and '[' parenthesis.
...
TestTokenizer: add simple test cases with some correct and wrong syntax concerning 'case'.
2012-10-12 17:08:21 +02:00
Robert Reif
5a7aae31f3
speed up checkautovariables by caching commonly looked up stuff in the symbol database ( #4266 )
2012-10-12 06:15:46 +02:00
Daniel Marjamäki
dd906a86a6
astyle formatting
2012-10-12 06:12:52 +02:00
Robert Reif
0c731cfa9b
speed up check64bit by caching commonly looked up stuff in the symbol database ( #4266 )
2012-10-12 06:12:21 +02:00
Edoardo Prezioso
1e4b080737
Fixed #4278 (syntax error).
2012-10-11 13:35:20 +02:00
Robert Reif
c7961b147d
speed up checks by caching commonly looked up stuff in the symbol database
2012-10-11 06:12:24 +02:00
Robert Reif
bbfd676b4e
speed up checks by caching commonly looked up stuff in the symbol database
2012-10-10 20:42:07 +02:00
Edoardo Prezioso
e62e03ab31
Fixed #4267 (segmentation fault of cppcheck (invalid code)).
2012-10-09 20:44:30 +02:00
Edoardo Prezioso
3703e71f82
Related to previous commit: if the '{}' parenthesis are found after 'case', don't skip them after continuing to the main loop or it will cause indentlevel mismatching.
2012-10-09 18:24:21 +02:00
Edoardo Prezioso
9668508b32
Tokenizer::simplifyLabelsCaseDefault:
...
use more efficient check for 'const' token;
remove redundant NULL checks thanks to commit e3bbcf501f
.
2012-10-09 17:52:20 +02:00
Ettl Martin
2cf75d5339
astyle run
2012-10-08 21:50:21 +02:00
Ettl Martin
0879bb5825
#4245 : Segmentation fault (invalid code); Applied patch from amai.
2012-10-08 21:49:25 +02:00
Daniel Marjamäki
f74c30e116
Fixed #4231 (False positive: (error) Returning/dereferencing 'ptr' after it is deallocated / released (ignoring goto))
2012-10-08 17:23:47 +02:00
Robert Reif
8ccbde117a
Fixed #4261 (CheckOther::checkComparisonOfFuncReturningBool using wrong function scope test)
2012-10-08 16:15:07 +02:00
Daniel Marjamäki
fefd8529c6
Fixed #4007 (False positive: 'Possible null pointer dereference' when using short-circuit evaluation)
2012-10-07 19:06:49 +02:00
Daniel Marjamäki
6a37942431
Fixed #3935 (False report for accessing array out of bounds after casting to short)
2012-10-07 18:38:05 +02:00
Alexander Mai
3656366c7e
Fixed #4257 (False Positive: String literal compared with variable - for non-pointer variable)
2012-10-07 16:26:03 +02:00
Daniel Marjamäki
0115bb8d24
Fixed #4102 (False positive: 'find('=') + 1U' can't be replaced with compare)
2012-10-07 12:43:14 +02:00
Daniel Marjamäki
4c1abde48e
Reverted 107b3b44
. Write syntax error for 'if MACRO()'. We can't know if MACRO() is supposed to be used in the condition or if it is some annotation that should be removed. Ticket #4171
2012-10-06 19:12:39 +02:00
Edoardo Prezioso
e3bbcf501f
Fixed #4234 (segmentation fault of cppcheck in Tokenizer::simplifyFlowControl() (invalid code))
2012-10-06 13:37:44 +02:00
Daniel Marjamäki
c2b61030a8
Fixed #4254 (Tokenizer::simplifyIfAssign: varids not preserved)
2012-10-06 12:49:24 +02:00
Daniel Marjamäki
10c11ec9dd
more java/c# cleanup
2012-10-03 19:51:09 +02:00
Daniel Marjamäki
dbddbe75bf
Path: Removed java/c# handling. Thanks amai.
2012-10-03 19:47:14 +02:00
Daniel Marjamäki
1e024a9abc
cleanup more java/c# code. Thanks amai for telling me about this.
2012-10-03 19:19:49 +02:00
Daniel Marjamäki
2f069f550f
Removed Java/C# handling
2012-10-02 18:44:36 +02:00
Edoardo Prezioso
72666e10d1
Related to previous commit: reduce scope level, remove the now redundant check.
2012-10-02 15:19:29 +02:00
Edoardo Prezioso
60de3e75af
CheckOther::checkComparisonOfBoolWithBool,checkComparisonOfFuncReturningBool: use symbolDatabase to check only tokens in executable code.
2012-10-01 15:38:31 +02:00
Daniel Marjamäki
9a462d8a0a
Fixed #4225 (False positive: uninitialized variable (assignemnt in ternary expression with cast))
2012-09-30 18:49:25 +02:00
Daniel Marjamäki
a64669b1ec
Fixed #4203 (Don't warn about setting NULL value for pointers and not using that value)
2012-09-30 17:22:35 +02:00
Daniel Marjamäki
c65ac603e9
Fixed #3837 (False positive: national locale inline asm comments are reported as unsupported)
2012-09-30 09:35:32 +02:00
Daniel Marjamäki
4e1bef5535
AssignIf: better handling of function calls
2012-09-29 19:22:34 +02:00
PKEuS
c4b881f844
Refactorizations in tokenize.cpp and testsimplifytokens.cpp:
...
- Avoid const_cast in testsimplifytokens.cpp
- Removed redundant null-check (VS11 code analysis)
- Fixed MSVC compiler warning
- Replaced some indentation counters
2012-09-29 14:10:41 +02:00
PKEuS
5980eb81d1
Fixed cppcheck message in checkclass.cpp
2012-09-29 12:19:30 +02:00
PKEuS
7a1e64fdd4
Replaced unsafe local isFunction() function by symboldatabase.
2012-09-29 11:32:11 +02:00
PKEuS
c17853949d
Fixed scope handling problems with CheckOther::checkComparisonOfFuncReturningBool(), removed its experimental status.
2012-09-29 11:23:30 +02:00
Daniel Marjamäki
10aa667648
assignif: Fixed testcase. parse while loops if variable is local and not external.
2012-09-29 10:54:09 +02:00
Daniel Marjamäki
b6153a00ee
assign-if: Fixed token match
2012-09-29 10:41:34 +02:00
Daniel Marjamäki
12cfdee61b
AssignIf: Check into scopes recursively
2012-09-29 10:33:54 +02:00
Daniel Marjamäki
52be4a5925
Disabled checkComparisonOfBoolWithBool since there are false positives. Ticket #2617
2012-09-28 19:11:36 +02:00
Daniel Marjamäki
ff4f8b58f3
Disable checkComparisonOfFuncReturningBool check because of false warnings. Ticket #2617
2012-09-28 18:51:10 +02:00
Daniel Marjamäki
bb62325ddb
AssignIf: Better handling of complex conditions with multiple subconditions
2012-09-28 17:03:16 +02:00
Edoardo Prezioso
7362ca9e8f
Fixed #4242 (segmentation fault of cppcheck (invalid code: '<'))
2012-09-28 11:24:35 +02:00
Alexander Mai
074b7781b2
Fixed #4239 (segmentation fault of cppcheck (invalid code))
2012-09-27 06:35:36 +02:00
Daniel Marjamäki
9f7a0146d0
AssignIf: Detect mistake in such code: 'int x=y&4; if ((x==3)||..'
2012-09-26 20:15:46 +02:00
Mohit Mate
9e297c95f2
Fixed #2617 (improve check: comparing boolean with '<')
2012-09-26 18:18:36 +02:00
Daniel Marjamäki
753942df0c
Revert "Fixed #4165 (False positive:(error) Uninitialized variable: here)"
...
This reverts commit 96b1890797
.
2012-09-26 16:15:35 +02:00
Daniel Marjamäki
96b1890797
Fixed #4165 (False positive:(error) Uninitialized variable: here)
2012-09-25 20:45:42 +02:00
Daniel Marjamäki
0ff8105c71
Fixed #4074 (Internal error. Token::Match called with varid 0)
2012-09-24 06:44:51 +02:00
Daniel Marjamäki
990340ba98
Fixed #4072 (False positive: Structure is not initialized in the constructor (1.55))
2012-09-23 18:29:05 +02:00
Daniel Marjamäki
68240fffc6
Fixed #4228 ((error) Internal error. Token::Match called with varid 0 (multiple declarations in for loop))
2012-09-23 17:15:39 +02:00
Daniel Marjamäki
ec01cc811e
Second fix for #4207 (Internal error. Token::Match called with varid 0)
2012-09-23 13:25:28 +02:00
Daniel Marjamäki
865c0205e3
Fixed #4210 (Unmatched suppression warning emitted from disabled check)
2012-09-23 10:56:12 +02:00
Daniel Marjamäki
c9c04f9691
Fixed #4038 (FP: possible null pointer dereference)
2012-09-23 09:20:16 +02:00
Daniel Marjamäki
2e3a7db4eb
Fixed #4115 (Incorrect uninitialized variable error message with realloc macro)
2012-09-22 18:41:33 +02:00
Daniel Marjamäki
37695d44f3
Fixed #4085 (tinyxml2 false positives)
2012-09-22 16:49:28 +02:00
Daniel Marjamäki
a17f37c67d
CheckBufferOverrun: Better handling of functions with variable arguments
2012-09-22 16:19:19 +02:00
Daniel Marjamäki
d3e990b1e5
Fixed #3987 (False positive: Memory leak reported when throwing/catching)
2012-09-22 10:37:27 +02:00
Daniel Marjamäki
6d928a2ff7
Fixed #4119 (false positive with operator= when implemented in terms of swap)
2012-09-22 08:50:36 +02:00
Daniel Marjamäki
a65f427195
Fixed #3836 (False positive: variable not initialized in copy constructor/operator (attached example code)
2012-09-22 08:16:16 +02:00
Daniel Marjamäki
6c25f3662e
Tokenizer::simplifyEnum: Don't simplify enums in function heads. Ticket #3953
2012-09-21 16:17:20 +02:00
Edoardo Prezioso
8e1e8525a3
Partial rewrite of Tokenizer::simplifyComma:
...
skip '= { .. }' where possible;
hence remove '%num% after comma' check because it's redundant now;
replace round braces counter method with faster 'link skip';
if 'endAt' is 'NULL' after finding the ';' token, exit the function;
hence remove redundant 'tok != NULL' check after simplifying 'return' code.
2012-09-20 21:45:16 +02:00
Edoardo Prezioso
406483b618
Fixed valgrind error in #3953 , but there's still the bad enum problem.
2012-09-20 21:07:37 +02:00
Daniel Marjamäki
de8e592d00
Class: Show inconclusive warnings about unknown types that are not initialized in copy constructors. Ticket: #3611
2012-09-20 19:16:26 +02:00
Daniel Marjamäki
07db469c06
cleaned up braces
2012-09-20 16:49:26 +02:00
Daniel Marjamäki
7d3e661774
Fixed #3611 (CheckClass: uninitVar and operatorEqVarError false positives (non-copyable members))
2012-09-20 16:47:01 +02:00
Edoardo Prezioso
eb5a61edfe
Tokenizer: some changes to the code:
...
be sure '?:' ternary operation has whitespaces around the operators;
remove useless loop to get the 6 next tokens, use tokAt(6);
add '?1:0' to bool values when doing a sum with them.
remove useless 'enum' pattern checking in code executed after simplifyEnum;
after being sure the 'tok' is a standard type, begin the loop with the token next to it;
it's possible to remove two tokens before the current one without moving this.
2012-09-20 01:07:50 +02:00
Daniel Marjamäki
aa3cdc6b6f
Fixed #3565 (Variable hides enumerator (attached code example))
2012-09-19 19:19:13 +02:00
Daniel Marjamäki
c3cb6202ed
Fixed #4172 (TemplateSimplifier: Handle 'A<&f> x' template instantiation)
2012-09-19 16:10:13 +02:00
Ettl Martin
3905f4ad7d
fixed #4169 semgentation fault (invalid code); Applied patch from amai and added a unittest.
2012-09-19 11:03:40 +02:00
Ettl Martin
3f89e38275
fixed #4195 segmentation fault of cppcheck (invalid code); Added a testcase
2012-09-19 10:37:30 +02:00
Daniel Marjamäki
07d2935e81
Fixed #4164 (False positive: (error) Uninitialized variable: min)
2012-09-18 20:55:37 +02:00
Daniel Marjamäki
ffd5c82b4f
Fixed #4118 (False null-pointer warning when check is indirect)
2012-09-18 19:16:28 +02:00
Daniel Marjamäki
9a7d09086e
Fixed #3993 (Resource also reported as memory leak)
2012-09-18 16:20:09 +02:00
Daniel Marjamäki
1f7d9ca22c
Fixed #4211 (Tokenizer::simplifyVarDecl: Improved handling of >> in templates)
2012-09-17 19:45:42 +02:00
Daniel Marjamäki
3ff792560f
Deactived bad message. Ticket #4154
2012-09-17 18:10:11 +02:00
Daniel Marjamäki
25befccb26
Revert "CheckClass::copyconstructors: Removed check. Because there is unfixed ticket #4154."
...
This reverts commit 066a1d48fe
.
2012-09-17 17:59:35 +02:00
Daniel Marjamäki
066a1d48fe
CheckClass::copyconstructors: Removed check. Because there is unfixed ticket #4154 .
2012-09-17 16:18:27 +02:00
PKEuS
508e9394d3
Added some nullpointer-checks and removed some redundant ones based on VS2012 code analysis results.
2012-09-17 15:22:51 +02:00
XhmikosR
6e4e3dfbfb
lib: tabs to spaces, remove trailing spaces and extra empty lines at the end of files
2012-09-17 13:51:23 +02:00
PKEuS
5237ed2de9
Message refactorization: checkother.cpp
2012-09-16 19:44:02 +02:00
PKEuS
547d3e94b2
Fixed some sign conversion messages from clang.
2012-09-16 16:41:15 +02:00
Daniel Marjamäki
a99515ca91
Fixed #3933 (Negative array index issue (because sizeof struct is assumed to be 100))
2012-09-16 08:20:43 +02:00
PKEuS
9a624576f4
Revert "CheckOther::clarifyStatement: improved message to show what's the 'bad' and the 'good' expression."
...
This reverts commit f8591f9004
.
2012-09-15 20:19:02 +02:00
Daniel Marjamäki
295ba9cc4f
Fixed #2709 (Negative times in --showtime summary)
2012-09-15 19:49:48 +02:00
Daniel Marjamäki
2f7032a0e6
Cppcheck: Removed redundant code.
2012-09-15 16:00:46 +02:00
Daniel Marjamäki
7ec825cd5d
Cppcheck: Fixed Cppcheck warning about variable scope
2012-09-15 15:54:52 +02:00
Daniel Marjamäki
bd734a9610
Fixed #3684 (Preprocessor: #include handling is searching directories in the wrong order)
2012-09-15 12:53:11 +02:00
Daniel Marjamäki
f1ebd99dc2
Fixed #3507 (false positive: comma-separated statements before return in methods)
2012-09-15 11:55:08 +02:00
Daniel Marjamäki
84c0368bfd
Fixed #3586 (false positive: uninitvar in argument in namespaced function)
2012-09-15 10:48:17 +02:00
Kamil Dudka
b4d78e3d05
Fixed #3651 (Preprocessor: Wrong handling of #elif)
2012-09-15 09:34:41 +02:00
Daniel Marjamäki
329f672334
Preprocessor: Added TODO in code. How can userDefines be empty? It is an inner condition and the outer condition checks that it's not empty.
2012-09-15 08:13:52 +02:00
Daniel Marjamäki
a9c1a052b9
CheckAssignIf: Improved checking for bitwise or
2012-09-14 19:13:44 +02:00
Daniel Marjamäki
9f2e1ab98d
Fixed #4048 (Tokenizer::simplifyVarDecl: Improve handling of 'a::b const * p = 0;')
2012-09-14 16:46:45 +02:00
PKEuS
929f16d892
Fixed hang on garbage code ( #4193 )
2012-09-14 15:32:35 +02:00
Daniel Marjamäki
19fdbf0fd0
Fixed #4185 (Incorrect 'Found duplicate if expressions' for strings with high bit set)
2012-09-13 16:44:10 +02:00
Daniel Marjamäki
a5d32c2665
astyle formatting
2012-09-13 16:43:07 +02:00
PKEuS
e136b59f21
Removed redundant "simplifyTemplates" prefix (information already in class name) from function names in TemplateSimplifier.
2012-09-12 20:46:56 +02:00
PKEuS
d28ceff449
Simplified code in templatesimplifier.cpp
2012-09-12 20:41:10 +02:00
Daniel Marjamäki
6ebfbf42e1
Fixed #4191 (wrong syntax error if 'error' substring of stringification)
2012-09-12 16:10:45 +02:00
PKEuS
2db1dbe2ce
Changed some function prototypes according to cppcheck messages about functions that can be static.
2012-09-11 19:19:11 +02:00
PKEuS
22a8e3f4e6
Replaced Tokenizer::getFunctionTokenByName() by SymbolDatabase::findFunctionByName(), which handles scopes slightly better.
2012-09-11 18:03:47 +02:00
Daniel Marjamäki
64faa780fe
Fixed #4087 (div by zero check is invalid for floats)
2012-09-11 16:50:42 +02:00
PKEuS
1863306198
Fixed false negative in checkunusedvar.cpp and reduced code dupliaction.
2012-09-11 14:24:12 +02:00
PKEuS
623ffe23f0
Fixed #4145
2012-09-11 14:14:35 +02:00
PKEuS
50f9dd52ab
Used enum instead of string in implementation for '--language='.
2012-09-11 08:53:27 +02:00
PKEuS
77b5175ec3
Support 0B... syntax for binary numbers.
2012-09-11 08:39:01 +02:00
PKEuS
95f4bb3e97
Implemented support for binary numbers ( #4113 )
2012-09-10 21:13:32 +02:00
PKEuS
5940d77a62
Disabled C++ specific checks and simplifications when checking a C or non-C++ file.
2012-09-10 19:02:32 +02:00
PKEuS
87131f6105
Added new cmdline option --language= (alias of GCC-like -x) to enforce a specific language. Valid values: c, c++, java, c#. ( #3994 )
2012-09-10 18:51:32 +02:00
PKEuS
88f9e9991d
Fixed compiler warning ( #4136 )
2012-09-10 17:43:19 +02:00
PKEuS
ce9f6bdb56
Fixed segfault #4182
2012-09-10 17:33:52 +02:00
Daniel Marjamäki
54f1771938
Fixed #4082 (Maybe false positive: memleak)
2012-09-10 17:27:41 +02:00
PKEuS
3449684137
Fixed usage of _settigns->isEnabled("style") in CheckIO. Added forgotten test cases.
2012-09-10 16:23:00 +02:00
PKEuS
e9f13e1547
Fixed false positive #4163
2012-09-10 16:14:24 +02:00
PKEuS
1e5d082251
Moved remaining part of c_str() checking to checkstl.cpp. Fixed false positive #4157 .
2012-09-10 15:20:38 +02:00
PKEuS
4e59e55229
Refactorization/Partial rewrite of CheckClass::copyconstructors():
...
- Reformatted check code and some test cases
- Fixed false positives #4148 (non-copyable/unknown base classes) and #4178 (copy ctor implementation not seen)
- Proper usage of STL containers
- Better support for initializer list
- Rephrased error messages
2012-09-10 13:31:30 +02:00
Daniel Marjamäki
d3bdd84d8b
Fixed #4175 (segmentation fault of cppcheck)
2012-09-09 18:56:26 +02:00
Daniel Marjamäki
cf8ac78069
Fixed test assertion failure caused by me
2012-09-09 18:33:41 +02:00
Daniel Marjamäki
7acb04b44c
Tokenizer: improved simplification of numeric calculations
2012-09-09 16:22:39 +02:00
PKEuS
d44f10fc01
Fixed createLinks2() on this code: nvwa<(x > y)>
2012-09-09 15:31:23 +02:00
PKEuS
a748678636
Removed redundant nullpointer checks in token.cpp
2012-09-09 14:34:07 +02:00
Daniel Marjamäki
511c5a62e7
Fixed #4141 (Crash when parsing divide by zero.)
2012-09-09 12:38:15 +02:00
Daniel Marjamäki
107b3b4401
Fixed #4171 (don't choke when parentheses are missing from macros)
2012-09-09 09:48:07 +02:00
Daniel Marjamäki
0c55d5cfa7
Fixed #4002 (syntax error for 'X( typedef, Y)')
2012-09-09 09:14:46 +02:00
Daniel Marjamäki
69a0062177
Tokenizer: don't crash for 'int'. Ralated with tickets #2978 and #3304
2012-09-08 20:59:25 +02:00
Daniel Marjamäki
853c6522dc
Tokenizer::simplifyEnum: Readded refactorings. Tickets 3949,3950,4025,4053 has been solved as far as I see.
2012-09-08 12:42:24 +02:00
PKEuS
78d49ea4b8
Fixed #3732 - properly simplify struct declarations:
...
- Don't replace "{ {" if they are part of an initialization
- Properly split struct definition, variable declaration and variable initialization.
Used std::stack instead of std::list
2012-09-08 10:51:31 +02:00
Daniel Marjamäki
a39b58046f
Tokenizer: Improved simplification of 'a?(1):b'
2012-09-08 10:45:00 +02:00
Daniel Marjamäki
2722f53edd
Fixed #4142 (false positive (error) Uninitialized variable: b)
2012-09-08 10:15:37 +02:00
Daniel Marjamäki
2ce5cb3075
Tokenizer: Simplified parentheses better in such pattern: 'git merge --squash 4142 operator git merge --squash 4142 (%var%|)) ( %num%|%bool% ) %op%|;|,|)'
2012-09-08 07:01:35 +02:00
Daniel Marjamäki
6b56b4a9d3
Show that inconclusive message is inconclusive
2012-09-07 16:11:15 +02:00
PKEuS
e87ebcc602
Added support for std::unique and std::remove_if to CheckStl::uselessCalls().
2012-09-07 14:23:32 +02:00
PKEuS
a4b5824dec
New internal check: checkRedundantNextPrevious().
...
Fixed findings by new internal check
2012-09-07 12:36:40 +02:00
PKEuS
e4a693eaab
Refactorizations:
...
- Fixed several findings of CheckInternal.
- Removed some debug code from CheckOther::checkRedundantAssignment().
2012-09-07 11:59:20 +02:00
PKEuS
489df29346
Moved Tokenizer::typeConstToConstType() to Tokenizer::simplifyConst()
2012-09-07 11:41:41 +02:00
Ettl Martin
9a375744a4
fixed a wrong spelled word in comments
2012-09-07 11:34:58 +02:00
PKEuS
c2d4afc525
Support default arguments in symboldatabase for arguments without name ( #4055 )
2012-09-06 20:50:46 +02:00
PKEuS
0c812c5ac3
Throw an InternalError when trying to divide (or modulo) by zero in MathLib.
2012-09-06 20:15:32 +02:00
PKEuS
20f989b6c4
Skip code in brackets in default argument declaration ( fixes #4057 )
2012-09-06 20:02:53 +02:00
PKEuS
31e7e41098
Fixed and refactorized broken CheckNullPointer::CanFunctionAssignPointer():
...
- return true if parameter is passed by reference (fixes #4111 )
- Use symboldatabase
- Improved handling of inconclusive
2012-09-06 18:33:15 +02:00
Edoardo Prezioso
097d0816d0
Fixed #4150 (new ineffective statement check warning wrong).
2012-09-06 17:48:30 +02:00
PKEuS
e2bc381550
Don't shift by a negative value in TemplateSimplifier::simplifyNumericCalculations()
2012-09-06 17:02:20 +02:00
PKEuS
a8cdd15738
Fixed false positive #4077 .
2012-09-06 16:30:10 +02:00
Daniel Marjamäki
1c7027140a
Tokenizer: Improved simplifyRedundantParanthesis
2012-09-06 16:16:29 +02:00
PKEuS
6edec7bdce
Fixed false positive #4123 .
2012-09-06 16:10:51 +02:00
Arpit Chaudhary
67e40a85e5
Improved check for shifting by negative values and removed false positives
2012-09-05 16:09:40 +02:00
PKEuS
536492d5f0
Applied two suggestions of XhmikosR:
...
- Added UTF8 signature to VS10 solution
- Prefer prefix operator++ (cppcheck catch)
2012-09-05 15:34:37 +02:00
PKEuS
f969530e1f
Revert "Fixed #4087 " which was committed by accident.
...
This reverts commit 0bbef8d803
.
2012-09-05 13:57:57 +02:00
Nilesh Kumar
c7633fc73c
Fixed #3645
2012-09-05 13:48:00 +02:00
gaurav kaushik
9ad7dfd5fd
Fixed #211 and #214
2012-09-05 12:58:09 +02:00
PKEuS
e5b1a6ceb1
Merge branch 'master' of github.com:danmar/cppcheck
2012-09-05 12:18:11 +02:00
Zachary Blair
8546bcc94e
Fixed #2029 (new check: free invalid address)
2012-09-04 23:31:23 -07:00
PKEuS
0bbef8d803
Fixed #4087
2012-09-04 21:50:50 +02:00
Daniel Marjamäki
2197b84d78
astyle formatting
2012-09-04 16:29:23 +02:00
PKEuS
8c70778b70
Refactorization: Fixed several messages when self-checking cppcheck
2012-09-04 15:29:51 +02:00
PKEuS
8924e8af43
Fixed #4143 : Give correct line numbers in checkunusedvar.cpp
2012-09-04 14:53:24 +02:00
anuraggarg011
913670d254
Fixed #3304 (simple cases)
2012-09-04 13:41:14 +02:00
kbajaj91
be716e81d3
Fixed #4138 - False positive about variable assigned a value that is never
...
used in loops
2012-09-04 13:06:04 +02:00
Edoardo Prezioso
f8591f9004
CheckOther::clarifyStatement: improved message to show what's the 'bad' and the 'good' expression.
2012-09-04 02:07:55 +02:00
Edoardo Prezioso
6fd60eebb0
Tokenizer: added a workaround for #3690 (Support MSVC's 'for each').
2012-09-03 20:23:53 +02:00
Edoardo Prezioso
6100776847
Tokenizer: remove unneeded initialization of strings explicitely with "".
2012-09-03 20:22:27 +02:00
anuraggarg011
bf11248a09
Fixed #1620 (tokenizer: simplify well known math functions)
2012-09-03 18:51:15 +02:00
anuraggarg011
b156c727b0
Fixed #3939 : Support ****foo++;
2012-09-03 17:10:27 +02:00
Ankita Gupta
c3a65dca40
Fixed #3793 (improve check: calculation in sizeof)
2012-09-03 15:56:10 +02:00
Edoardo Prezioso
804fbe3f8f
Tokenizer::simplifyEmptyNamespaces: remove useless condition.
...
Token::deleteThis handles the !tok->next situation well.
2012-09-03 14:22:31 +02:00
PKEuS
27cafd495a
Don't bailout for noreturn functions in checkRedundantAssignments outside switch.
2012-09-03 12:03:30 +02:00
PKEuS
d98ee357d4
Fixed crash #4135 when using Q_DECLARE_METATYPE
2012-09-03 11:30:36 +02:00
PKEuS
2be2738c6e
Moved duplicate code into function in CheckOther::checkRedundantAssignment()
2012-09-03 10:46:51 +02:00
Kartik Bajaj
ea0cbbcf78
Fixed #1481
2012-09-02 18:50:17 +02:00
PKEuS
81ff721113
Fixed variable shadow warning
2012-09-02 17:00:16 +02:00
PKEuS
7bd732efe4
Invented a fix that compiles on GCC and doesn't crash.
2012-09-02 16:53:38 +02:00
PKEuS
794a491515
Fixed two other compilation errors on GCC.
2012-09-02 16:42:38 +02:00
PKEuS
8a474add19
Fixed compilation error - added missing function in symboldatabase.
2012-09-02 14:30:00 +02:00
deepak gupta
24659dee92
Fixed #4087
2012-09-02 14:26:39 +02:00
PKEuS
2d64b69cf4
New check: Detect redundant assignment to a variable and redundant copying to a buffer
...
This check partially replaces the check for redundant assignments in switch
2012-09-02 13:09:32 +02:00
Deepak Gupta
4202866100
Fixed #4096 (Improve check: Buffer overrun in for loop, postfix increment in array access)
2012-09-01 19:17:28 +02:00
pranav1509
6f6baa67e4
Added more patterns to redundant condition check.
2012-09-01 13:39:32 +02:00
PKEuS
c20adf91bf
Moved simplification of wide character string literals (L"foo") to tokenize(). Token::isLong flag used to indicate that string is a wchar_t literal.
2012-09-01 13:12:47 +02:00
PKEuS
dcf997007b
Incremented version numbers to 1.57 dev
2012-09-01 13:04:09 +02:00
Daniel Marjamäki
b8db27fcd1
1.56: Set versions
2012-09-01 10:54:15 +02:00
Daniel Marjamäki
d7e521845b
SymbolDatabase: Made function static after self-check suggestion
2012-09-01 10:46:09 +02:00
Daniel Marjamäki
769cd4503d
Preprocessor: Made function static after self-check suggestion
2012-09-01 10:32:27 +02:00
Daniel Marjamäki
15bc552b37
Tokenizer: Fixed possible NULL pointer dereference
2012-09-01 10:11:18 +02:00
Daniel Marjamäki
a8d419820b
Tokenizer: removed unused variable
2012-09-01 09:57:48 +02:00
Ankita-gupta
ff7373f46f
Fixed bug in Token::Match ( #3720 )
2012-08-30 13:33:19 +02:00
Edoardo Prezioso
0d26a79f2c
Tokenizer::simplifyEmptyNamespaces: new function.
...
It removes from the token list, if found, the following tokens: 'namespace %var% { }'. It won't involve C code.
2012-08-28 22:40:25 +02:00
PKEuS
bbce79d7b3
Small refactorization: Handle std::map more efficient in setVarIdStructMembers()
2012-08-28 12:57:11 +02:00
PKEuS
ea85dd305a
Fixed #4086 : Set varId in initialization list.
2012-08-28 12:44:40 +02:00
Daniel Marjamäki
9fe9944adb
Fixed #4034 (false positive:(error) Dereferencing 'cfileP' after it is deallocated / released)
2012-08-28 06:38:38 +02:00
Daniel Marjamäki
a7e67ac379
CheckObsoleteFunctions: asctime and ctime are not posix functions
2012-08-27 18:49:48 +02:00
Daniel Marjamäki
03f6a19dbd
astyle formatting
2012-08-27 15:52:03 +02:00
Daniel Marjamäki
0d82b08080
Fixed #4040 (false positive: (error) Uninitialized variable: iter)
2012-08-27 15:48:21 +02:00
PKEuS
671f1b83d9
Fixed false positive: Return value of std::remove() ignored when std::remove(char*) is called ( #4093 )
2012-08-27 14:28:16 +02:00
Daniel Marjamäki
263e13e924
astyle formatting
2012-08-27 06:33:56 +02:00
PKEuS
4bab7f0ee2
Removed unused and obsolete functions Tokenizer::getParameterName() and Tokenizer::getNameForFunctionParams()
2012-08-26 16:53:40 +02:00
PKEuS
046712aaec
Removed --doc formating hack that removes more than three newlines and added format testing of Check::classInfo instead.
...
- Fixed test failures shown by new test.
Use const_iterator instead of iterator in testcppcheck.cpp when possible
2012-08-26 16:22:46 +02:00
PKEuS
4b1075b34b
Fixed #3729 : Don't suggest recursive call to optimize away c_str()
2012-08-26 10:56:46 +02:00
PKEuS
839f7a32a4
It is ok to pass a nullpointer as first argument to mbstowcs and wcstombs, which then just return how long the buffer has to be to store the result.
2012-08-26 10:41:48 +02:00
PKEuS
6893948c72
Bugfix: Reset property info when Token::link() is set (< can be a bracket or a comparison operator). Fixes #4075 .
2012-08-26 10:23:16 +02:00
PKEuS
8301b5d4d6
Bugfix for bugfix of Token::varId - Change Token::type also if varId is set to 0
2012-08-26 10:04:22 +02:00
PKEuS
662b0d2dbe
Simplify 0[foo] to *(foo) ( fixes #4083 )
2012-08-26 10:03:05 +02:00
PKEuS
9fa7e15fb4
Fixed setVarId for nested templates ( #3976 , #3769 ) and support C++11 right angle brackets in TemplateSimplifier::templateParameters()
2012-08-26 09:49:38 +02:00
Reijo Tomperi
7ddd564ad6
Change file encoding to UFT-8 like it is for other files.
2012-08-26 00:12:38 +03:00
Daniel Marjamäki
f127728582
Enable --std=c11 and --std=c++11 by default
2012-08-25 21:57:45 +02:00
Daniel Marjamäki
41797d409d
Fixed #4036 (cppcheck hangs with 100% cpu load)
2012-08-25 13:24:17 +02:00
Daniel Marjamäki
7975ffba21
Fixed #3980 (Variable not assigned a value)
2012-08-25 13:07:33 +02:00
PKEuS
bb068d2f78
Fixed false positive #4039 : Handle operator precedence in CheckStl::size()
2012-08-25 12:36:13 +02:00
Daniel Marjamäki
985ac662ee
Fixed #4035 (False positive: Memory leak: pTempFile)
2012-08-25 12:00:25 +02:00
Daniel Marjamäki
5051837c1a
Reverted last commit. I pushed it by mistake.
2012-08-25 11:00:51 +02:00
Daniel Marjamäki
5e1ccfaf90
Fixed #4035 (False positive: Memory leak: pTempFile)
2012-08-25 10:55:20 +02:00
PKEuS
808c3468c9
New check: detect suspicious comparison of string literal with char* variable
...
Bugfix: Update Token type when varId is set
2012-08-24 14:25:17 +02:00
PKEuS
76fbcce13f
Restored (intentional) content of screwed up commits 1bcdf4ce3d
and 674f7980d519712ff16d8f874dfe55a84deb4b5b:
...
- New check (Inconclusive): Array filled incompletely with memset/memcpy/memmove
-- This check only warns if the number of elements is given as size in bytes to memset, memcpy or memmove and if the size of an element is larger than 1 Byte. It does not warn for random numbers
- New check: Detect ineffective statements like '*foo++;' (Should be: '(*foo)++;')
Sorry for the inconveniences.
2012-08-24 11:28:50 +02:00
Edoardo Prezioso
0f1accc2da
Revert latest two commits as they break the compilation and the style. PKEuS???
2012-08-24 00:10:19 +02:00
PKEuS
1bcdf4ce3d
New check: Detect ineffective statements like '*foo++;' (Should be: '(*foo)++;')
2012-08-23 12:28:40 -07:00
PKEuS
674f7980d5
New check (Inconclusive): Array filled incompletely with memset/memcpy/memmove.
...
This check only warns if the number of elements is given as size in bytes to memset, memcpy or memmove and if the size of an element is larger than 1 Byte. It does not warn for random numbers
2012-08-23 11:27:00 -07:00
Daniel Marjamäki
d24badbfda
Fixed #4068 (Endless loop inside MathLib::add())
2012-08-22 20:50:39 +02:00
Daniel Marjamäki
f133c9e8ec
Fixed #4020 (false positive: (style) Variable 'dst' is assigned a value that is never used)
2012-08-22 19:47:46 +02:00
PKEuS
4fb464982c
Fixed crash reported in #4076
2012-08-22 10:17:23 -07:00
PKEuS
f238f3fad5
Support sizeof in preprocessor directives
...
Applied "patch" provided by michaeln123 in #4071
2012-08-22 17:28:06 +02:00
PKEuS
43e01a2b1a
Ran AStyle, removed redundant tokAt(0)
2012-08-22 16:51:44 +02:00
SAndeep
0600b0be8f
sprintf changes
2012-08-22 16:46:14 +02:00
Arpit Chaudhary
7c8da17c44
Added check for detecting if a variable or number is shifted by negative right operand. Statements like:
...
int i = -1;
a << i;
would result in an error message stating undefined behavior.
2012-08-22 15:44:20 +02:00
Kumar Ashwani
afe030ce9b
Fixed #2628 : Detect redudant usage of operator++/-- in switch.
2012-08-22 14:40:57 +02:00
PKEuS
e05a597066
Fixed false negatives in checkautovariables.cpp:
...
- Detect returning temporary instances (#4076 )
- Added support for returning user defined types
2012-08-22 04:08:32 -07:00
PKEuS
00f6c635b8
Detect functions returning a template type in SymbolDatabase
...
Fixed comment
2012-08-22 03:37:50 -07:00
Edoardo Prezioso
2b5cd2effc
Fixed G++ [-Wparentheses] warning. This also fixed #4073 (Crash on self assignment).
2012-08-21 20:15:04 +02:00
Daniel Marjamäki
41b624230f
Fixed #3942 (false positive: (error) Memory leak: keyword)
2012-08-21 17:02:11 +02:00
PKEuS
b4b5c80db9
Improved check: Added message when checking sign of a pointer.
2012-08-21 03:28:02 -07:00
PKEuS
a5bca705a5
New check: Ensure that the return value of std::remove() is used.
2012-08-21 02:30:27 -07:00
PKEuS
b641a10e35
Fixed false negative: memset(foo, 0, sizeof(&foo)); is as suspicious as memset(foo, 0, sizeof(foo));
2012-08-20 10:08:18 -07:00
Daniel Marjamäki
9ffc7f4c2d
Fixed #3964 (False positive: Expressions in array declarations are not simplified 'char mac[17+1];')
2012-08-20 18:10:32 +02:00
PKEuS
a243983242
Refactorized type handling in CheckIO and CheckOther:
...
- Added several types (std::) to isComplexType
- Types in namespace std:: are considered to have no side-effects (solved one TODO)
- Scope of a pointer can be limited without side effects
2012-08-20 08:57:28 -07:00
PKEuS
4550cd2cd6
Refactorizations:
...
- Removed unnecessary 'if'
- Use symboldatabase instead of tokenizer to detect references and pointers
2012-08-20 08:27:43 -07:00
PKEuS
c537a86363
Fixed false negative in unused variable checking when class without side effects inherits from another one.
2012-08-20 07:55:39 -07:00
PKEuS
c7e2490f2b
Refactorized iterator check:
...
- Handles reassignment (fix for #4062 )
- Better support of execution paths
- Use symboldatabase for better performance
2012-08-20 04:57:24 -07:00
Daniel Marjamäki
7786e12ba2
Fixed #3922 (false positive: (error) null pointer dereference)
2012-08-18 22:11:48 +02:00
Daniel Marjamäki
6a5cc4727d
Fixed #4019 (false positive: (style) Variable 'dest' is assigned a value that is never used)
2012-08-17 16:37:25 +02:00
Daniel Marjamäki
1601baa974
Fixed #4016 (false positive: incorrectLogicOperator)
2012-08-14 16:17:18 +02:00
Daniel Marjamäki
e534ee0426
Fixed #3706 (cppcheck 1.53 hangs when processing a certain template with specializations)
2012-08-13 16:17:33 +02:00
Daniel Marjamäki
8afdde0b5e
Fixed #3931 (FP: Buffer access out-of-bounds)
2012-08-12 17:06:54 +02:00
Edoardo Prezioso
358fb9a284
Fixed the GCC Wshadow warnings introduced recently.
2012-08-12 17:04:37 +02:00
Daniel Marjamäki
4368f66a00
Fixed #4018 (false positive: Dereferencing 'foo' after it is deallocated / released)
2012-08-12 16:18:07 +02:00
PKEuS
2ac2674f67
Fixed #4000 , added support for function prototypes to TemplateSimplifier::templateParameters()
2012-08-12 05:19:56 -07:00
PKEuS
a15e307df0
Replaced two more indentation counters
2012-08-12 04:12:17 -07:00
PKEuS
c8773b891d
Refactorization: Make use of Token::scope() replacing certain indentation counters
2012-08-12 03:13:07 -07:00
PKEuS
35d94c26d5
Changed creation of SymbolDatabase. Database always created after Tokenizer::tokenize() and Tokenizer::simplifyTokenList() instead of on-demand creation by Tokenizer::getSymbolDatabase.
...
-> With Token::scope() it is possible to access the symboldatabase without having to call getSymbolDatabase(). The change increases safety because it is guaranteed that the database is available in all checks, even if the specific check doesn't call getSymbolDatabase
- Tokenizer::_symbolDatabase does no longer have to be mutable -> Increased const correctness
The change above required two additional changes:
- A bug causing a debug message was fixed in the symboldatabase that became visible in the test suite by the change above.
- Simplify expressions like "struct struct Foo" which might be result of typedef instanciation.
2012-08-12 03:01:24 -07:00
PKEuS
4f68923add
Fixed inverted id and msg of debug messages from symboldatabase
2012-08-12 02:11:54 -07:00
PKEuS
2ab33ef21b
Added Pointer to enclosing scope to class Token (Only available when symboldatabase is created).
2012-08-11 11:47:11 -07:00
PKEuS
45bad7d1b2
Refactorized tokenizer:
...
- Don't run setVarId() twice, keep old varId's while/after simplifyTokenList
-> Modified two test cases in testmemleak.cpp. I consider this to be safe. Feel free to investigate this.
- Fixed two nullpointer issues shown by cppcheck
Ran Astyle on teststl.cpp
2012-08-10 09:31:22 -07:00
Edoardo Prezioso
1d8240356b
Really fixed #4024 . Now the simplification won't be done on non-executive scopes.
2012-08-10 17:43:09 +02:00
PKEuS
70de691551
Fixed false positive #4032
2012-08-10 06:26:07 -07:00
Daniel Marjamäki
0254344df5
Tokenizer::simplifyEnum: Reverted refactorings/optimisations as there were regressions ( #3949 , #3950 , #4025 )
2012-08-10 14:06:24 +02:00
Daniel Marjamäki
ca4ed5e0c3
ErrorLogger: Throw InternalError if given severity is not handled
2012-08-10 12:43:53 +02:00
PKEuS
355c1322d6
Small refactorizations in checkunusedvar.cpp:
...
- Token::Match handles nullpointers
- In chained assignments variables are only written (not read) when assigned
- Fixed crash #4033
2012-08-10 03:36:08 -07:00
Daniel Marjamäki
6ff1760c72
TemplateSimplifier: Improved handling of unknown inner template instantiation inside template instantiation ( #3818 )
2012-08-09 17:19:36 +02:00
Daniel Marjamäki
4ec12209dc
TemplateSimplifier: Fixed wrong match when inner template parameters are wrongly counted ( #3818 )
2012-08-08 06:43:41 +02:00
Edoardo Prezioso
d68d035e22
Tokenizer::simplifyFlowControl: separated the 'throw' case because it's not a reserved keyword in C, hence the function shouldn't simplify in C source files.
2012-08-07 19:38:51 +02:00
Daniel Marjamäki
735c0f5f6b
Fixed #3963 (segmentation fault of cppcheck (invalid typedef code))
2012-08-07 16:39:41 +02:00
Edoardo Prezioso
9e916eec66
Fixed #4024 (Tokenizer::simplifyFlowControl removes pieces of code inside a class if 'exit' is a member function).
2012-08-07 10:59:27 +02:00
Daniel Marjamäki
5ee7758a83
Fixed #4015 (segmentation fault of cppcheck (enum))
2012-08-06 16:21:21 +02:00
Daniel Marjamäki
445fd4e6aa
Fixed #4010 (error (cppcheckError): Internal error. Token::Match called with varid 0)
2012-08-05 17:11:39 +02:00
Daniel Marjamäki
25fd841b5d
Tokenizer: removed redundant include
2012-08-05 16:06:20 +02:00
PKEuS
31129aad40
Refactorizations in checknullpointer.cpp:
...
- Removed CheckNullPointer::nullPointerAfterLoop(), improved CheckNullPointer::nullPointerByCheckAndDeRef() to cover tests
- Enhanced CheckNullPointer::nullPointerByDeRefAndChec() to check also 'else if' and 'while'
2012-08-05 02:07:38 -07:00
PKEuS
25ecd3ed71
Message refactorization: checknullpointer.cpp
...
Removed a duplicate test in checknullpointer.cpp
2012-08-05 01:38:48 -07:00
PKEuS
5e862351e9
Improvements in token.cpp:
...
- Shortened stringify output - 4 or more subsequent empty lines are abbreviated
- Fixed detection of comparision operators
- Make use of _type: Replaced three asserts by one
2012-08-02 11:36:54 -07:00
PKEuS
1b40668e04
Refactorizations:
...
- Made several functions (Check*::myName and others) because they don't touch depend on a specific instance. (cppcheck findings)
- Removed description of a check in CheckConst that has moved to CheckIO
2012-08-02 09:50:48 -07:00
PKEuS
452f95cea0
More robust template detection in clarifyCondition check based on Token::link. ( #3818 )
...
Create links between < and > only on non-C code.
AStyle fix
2012-08-02 04:03:01 -07:00
PKEuS
3b5dabdb14
Clarified errormessage of checkBoost
2012-08-02 02:40:08 -07:00
PKEuS
c8e40773f1
Fixed cppcheck messagesa about functions that can be const/static:
...
- Made Tokenizer::getErrorMessages static - Avoids creation of unnecessary instance of Tokenizer
- Changed Tokenizer::removeExceptionSpecifications to common style for simplification functions. In contrast to the comment, this function doesn't call itself recursivly - fixed comment.
- Made Tokenizer::IsScopeNoReturn static.
2012-08-01 12:04:47 -07:00
PKEuS
88e4794d6e
Refactorized CheckClass::checkConst:
...
- Added checking for functions that can be even declared static (#1971 . Removed fix for #1563 )
- Consistent usage of Function::TokenDef to avoid problems with scope identifiers
- Rewrote parsing of function body making it more generic
- Removed three redundant tests
2012-08-01 10:24:38 -07:00
Ettl Martin
98d608231d
spelling fixes
2012-07-31 23:35:56 +02:00
Ville Skyttä
dce16a970d
spelling fixes
2012-07-31 21:28:42 +02:00
PKEuS
cc1faad34a
Removed bailouts in CheckClass::privateFunctions and CheckUnusedFunctions when checking code with templates (unnecessary after 2c10e9a6ca
)
2012-07-29 08:05:54 -07:00
Daniel Marjamäki
2c10e9a6ca
TemplateSimplifier: Removed unused function
2012-07-29 16:14:26 +02:00
Daniel Marjamäki
435340b463
Fixed #3814 (false positive: missing constructor)
2012-07-29 16:01:05 +02:00
PKEuS
4e2a86260f
Really fixed #3941 .
2012-07-29 06:50:05 -07:00
PKEuS
26a2379f9f
Fixed false positive #3941 .
2012-07-29 06:39:43 -07:00
PKEuS
1ec3c9f634
Fixed hang in libreoffice code (simplification of K&R style function declaration tried to simplify a function with parameters without name whose implementation contained "; {".
...
Test cases of this simplification only need basic simplifications done in Tokenizer::tokenize
2012-07-29 06:11:48 -07:00
PKEuS
6aa7f984cb
Fixed false positives on FILE* arrays. ( #3965 )
2012-07-29 04:04:12 -07:00
PKEuS
2f95b97c66
Message refactorization: checkobsoletefunctions.h and checknonreentrantfunctions.h
2012-07-29 02:30:03 -07:00
Daniel Marjamäki
79c84029fb
Preprocessor: Reduce simplifyVarMap usage to make Cppcheck a bit faster
2012-07-27 12:30:43 +02:00
Daniel Marjamäki
0ead18122d
Fixed #3695 (False positive: memory leak (ptr?free(ptr):0))
2012-07-27 12:25:20 +02:00
PKEuS
643f3890b4
Fixed #4003 : tmpnam may be called with a nullpointer
2012-07-27 01:36:22 -07:00
Daniel Marjamäki
1a6f7ea9a0
Fixed #3998 (Tokenizer::simplifyEnum: wrong handling of expressions => crash)
2012-07-26 11:12:28 +02:00
PKEuS
c11e8cdbfa
Fixed false positive "Variable is not assigned a value" on class types
2012-07-25 00:34:27 -07:00
Daniel Marjamäki
f82e5396c8
Fixed #3999 (Error incorrectly written in XML format)
2012-07-25 06:43:54 +02:00
PKEuS
f5e5d59562
Refactorizations:
...
- Removed redundant newlines at the end of test cases
- Make use of STL algorithms instead of own implementations of std::replace and std::remove+string::erase
- Removed unused variable (found by cppcheck)
- Prefer postfix increment (found by cppcheck)
2012-07-24 12:21:05 -07:00
PKEuS
bb940e4722
Implemented unused variable checking for standard types ( #2851 )
2012-07-24 11:47:29 -07:00
Daniel Marjamäki
e6f761126c
Fixed #2802 (False positive: ::free() is not recognised as free() to release buffers)
2012-07-24 09:28:08 +02:00
PKEuS
5c0cab238f
Fixed useInitializationList false positives ( #3988 )
2012-07-23 08:16:47 -07:00
PKEuS
ae6201d289
Fixed false positive "Parameter 'x' is passed as a value" for types like std::vector<T>::size_type ( #3986 )
2012-07-23 01:41:20 -07:00
Daniel Marjamäki
a733c9b603
Fixed #3914 (false positive null pointer dereference, assignment in conditional)
2012-07-23 10:05:55 +02:00
Zhao Qifa
188d2e143d
add a performance checker for const assignment
2012-07-22 09:17:00 +02:00
Ville Skyttä
7ab2f6a9fa
Spelling fixes.
2012-07-21 18:11:20 +02:00
Daniel Marjamäki
9352e124fe
Auto variables: Speedup my fix. Use the symbol database instead of Token::findmatch.
2012-07-19 16:42:56 +02:00
Daniel Marjamäki
dc6c3228d7
Fixed #3834 (Preprocessor: -U doesn't work)
2012-07-18 20:57:00 +02:00
Daniel Marjamäki
17c27f51ff
Fixed #3791 (False positive: returnTempReference)
2012-07-18 07:22:29 +02:00
Daniel Marjamäki
a768b0e8b2
Fixed #3954 (Pointer reference memory leak false positive)
2012-07-17 16:28:34 +02:00
Daniel Marjamäki
d34924ba6d
Uninitialized variables: Fixed false positive when there is assignment in condition
2012-07-17 07:03:40 +02:00
Daniel Marjamäki
ddfc968028
Fixed #3891 (False positive 'Double deallocation:' due to ((void*)1))
2012-07-16 17:07:51 +02:00
Daniel Marjamäki
a96ec0ad46
Fixed #3804 (False positive: Member not initialized (simplifyTokenList removes const on pointers))
2012-07-16 07:28:59 +02:00
PKEuS
e9182f1fcc
Implemented support for 'using namespace std;': Add std:: prefix to names that are known to be in std namespace. Simplify namespace (std::)tr1:: if C++11 flag is set.
2012-07-15 02:05:19 -07:00
PKEuS
1e704edbd5
Message refactorization: checkio.h/cpp
2012-07-13 10:36:58 -07:00
PKEuS
41fecb2e6d
Fixed evaluation of redundant conditions ( #3972 )
2012-07-13 06:01:19 -07:00
PKEuS
247d820027
Fixed #3972 : Don't issue auto variable error when the address is assigned to a reference to a non-pointer.
2012-07-13 05:21:45 -07:00
PKEuS
4ed15d87b6
Properly fixed test failure and line numbers in uselessCallsEmpty error
2012-07-13 05:15:58 -07:00
Daniel Marjamäki
5645269bbf
Preprocessor: Made proper fix for #3690
2012-07-13 11:36:02 +02:00
Daniel Marjamäki
e4ad193b40
Fixed #3690 (CppCheck is stuck on evaluating false preprocessor expression( = 0))
2012-07-13 11:28:45 +02:00
Daniel Marjamäki
6018bb4636
Fixed #3442 (unmatchedSuppression can't be suppressed)
2012-07-13 08:29:49 +02:00
PKEuS
5a91d6a0f5
Check for useless calls of .empty() ( #3816 )
...
Messages from CheckStl::uselessCalls() only shown when correct severity is enabled.
2012-07-12 03:23:52 -07:00
PKEuS
3523f89917
Added 'char' back where I removed it by mistake.
2012-07-12 01:01:52 -07:00
Daniel Marjamäki
8dd5270be3
Preprocessor: skip preprocessor directives in the Preprocessor::validateCfg function
2012-07-11 21:20:31 +02:00
PKEuS
2bd1f1d8dc
Improved check: Sign checking in printf format string ( #3511 )
...
Removed some redundant code (already covered by token list simplifications and symboldatabase)
2012-07-11 10:46:35 -07:00
Daniel Marjamäki
4f4be79f20
Preprocessor: Fixed bugs in my #3643 fix
2012-07-11 18:29:33 +02:00
PKEuS
e8f4dce25f
Added check to CheckInternal: detect invalid patterns like "%typ%"
...
Replaced some Token::Match by Token::simpleMatch (suggestions of internal checks)
2012-07-11 08:45:16 -07:00
Daniel Marjamäki
17cf24ed34
Fixed #3643 (Preprocessor: Invalid configuration (macro is used in code))
2012-07-10 20:29:04 +02:00
PKEuS
68e19b33ff
Fixed parsing of C++11 initializatation in initializer list ( #3957 )
2012-07-10 06:15:11 -07:00
PKEuS
37d9d6fd7e
Improved parsing of C++11 initializer list ( #3956 ) in CheckClass::initializeVarList.
2012-07-10 05:47:51 -07:00
PKEuS
402a0058e2
Renamed target name in VS10 solution for cppcheck lib to cppcheck-core. This fixes the failure when _re_building cppcheck.
...
Name changes:
cppcheck.dll -> cppcheck-core.dll
cppcheck.lib -> cppcheck-core.lib
cppcheck.pdb -> cppcheck-core.pdb
2012-07-09 10:21:19 -07:00
PKEuS
b5589e41f9
Cleanup of VS10 solutions (As suggested by XhmikosR). Fixed problems:
...
- UNICODE set correctly
- Fixed path to pcre.lib; use external library directories
- Removed several unnecessary and redundant flags from projects
Thank you for your help, XhmikosR!
2012-07-09 08:09:54 -07:00
Edoardo Prezioso
fae40c4782
Change every C version of 'size_t' to C++ 'std::size_t'.
2012-07-09 13:30:18 +02:00
PKEuS
639f15645a
Message refactorization: checkbufferoverrun.cpp (2), checkclass.cpp, checkexceptionsafety.h
2012-07-09 02:11:05 -07:00
Daniel Marjamäki
42e68550fc
fixed doxygen errors
2012-07-08 19:32:33 +02:00
PKEuS
ed7e950671
Message refactorization: checkbufferoverrun.cpp
2012-07-08 06:51:24 -07:00
Daniel Marjamäki
848fd59cbd
Fixed #3913 (boundcheck, false positive continue in loop)
2012-07-08 14:34:47 +02:00
Daniel Marjamäki
bf98e952c1
Fixed #3927 (false positive: (error) Uninitialized variable: new)
2012-07-08 13:59:00 +02:00
PKEuS
f5f63dc4a6
Message refactorization: check64bit.cpp
...
Added two articles in checkautovariables.cpp as suggested by kimmov
2012-07-08 02:38:58 -07:00
PKEuS
0f1cb4c98c
Message refactorization: checkassignif.cpp, checkautovariables.cpp
2012-07-07 11:31:18 -07:00
Daniel Marjamäki
49198f52c4
Fixed #3934 (False positive for logical conjunction with enum and define)
2012-07-07 15:34:26 +02:00
PKEuS
d3c44c20ff
Refactorized checking of scanf field width specifiers ( #3946 ):
...
- Removed duplicate check
- Changed severity to portability, when a crash only happens with certain libc versions
- Fixed handling of * in format string (#3877 )
- Added support for [...] pattern
- Removed garbage from tests
2012-07-07 04:34:37 -07:00
PKEuS
dec4844c10
Define _WIN64 in VS10 solution when compiling for x64
2012-07-07 02:41:41 -07:00
PKEuS
2c9545f603
Fixed #3797 : _ is a valid character in suppression IDs
2012-07-06 09:16:43 -07:00
PKEuS
5caab6ba10
Fixed crash on garbage code ( #3870 )
2012-07-06 09:03:33 -07:00
Daniel Marjamäki
543ccdd4c0
Removed simplifyEnum timer that I didn't intend to include in the previous commit.
2012-07-06 15:48:51 +02:00
Daniel Marjamäki
6ad5fc8456
Refactoring Tokenizer::simplifyEnum. The enum handling is now somewhat faster since all enum values of a enum are simplified at the same time.
2012-07-06 15:43:50 +02:00
Edoardo Prezioso
3c4ce7b43a
Fixed (for real) the preprocessor.cpp(1166) warning in #2123 .
2012-07-06 13:17:08 +02:00
Daniel Marjamäki
f9da83f4b5
Fixed #3926 (false postive: (error) Uninitialized variable: exitpattern)
2012-07-03 18:52:23 +02:00
Robert Morin
25c1cc4c8e
Improve check: warn when comparing boolean value with < <= > >=. Ticket: #2617
2012-07-03 06:39:13 +02:00
Thomas Sondergaard
f72ddbb2e9
Fixed #3912 (Analysis failed)
2012-07-03 06:34:14 +02:00
PKEuS
2de6ea4627
Incremented version to "1.56 dev"
2012-07-02 11:10:07 -07:00
Edoardo Prezioso
fa24fff3dc
Fixed the warning with GCC 4.7.1:
...
cast from type ‘const void*’ to type ‘const char**’ casts away qualifiers.
2012-07-02 19:37:30 +02:00
Daniel Marjamäki
2536746d02
1.55: Set version
2012-06-30 18:08:27 +02:00
Daniel Marjamäki
9716c059f5
updated --doc output
2012-06-30 17:44:05 +02:00
Daniel Marjamäki
7312885c87
updated --doc output from CheckLeakAutoVar
2012-06-30 16:30:56 +02:00
Daniel Marjamäki
325414e354
CheckLeakAutoVar: Updated error messages
2012-06-30 16:23:10 +02:00
Daniel Marjamäki
bb9f114d84
Fixed #3924 (False positive: Uninitialized variable (const pointer))
2012-06-30 12:12:36 +02:00
Daniel Marjamäki
cb7757f650
CheckUnusedVar: dont report false positives for extern variables
2012-06-28 17:22:56 +02:00
Daniel Marjamäki
2e3a08a8c1
Fixed #3916 (false positive: uninitialized variable when using assignment and , in rhs)
2012-06-27 20:44:19 +02:00
Daniel Marjamäki
9da3373876
Fixed #3919 (False positive: uninitialized variable (extern))
2012-06-26 18:28:41 +02:00
Edoardo Prezioso
1ad56a25c6
Fixed the preprocessor.cpp(1166) warning in #2123 .
2012-06-26 12:28:52 +02:00
Daniel Marjamäki
0042ee7bc8
Fixed #3660 (False positive memleak (allocation function uses non-local variable))
2012-06-25 20:00:50 +02:00
PKEuS
f5c42660de
Fixed #3909 : Handle constructor syntax initialization.
2012-06-24 09:57:17 -07:00
Daniel Marjamäki
25b24d149f
Fixed #3910 (False positive: Variable is not assigned a value (pointerArray alias))
2012-06-24 16:54:37 +02:00
Daniel Marjamäki
be464b43b3
Memory leaks: updated configuration handling. it's still not auto-tested.
2012-06-24 15:38:37 +02:00
Daniel Marjamäki
8af044255d
Tokenizer: Added new function isFunctionParameterPassedByValue that check if a parameter is passed by value
2012-06-24 13:40:09 +02:00
Daniel Marjamäki
72d24ab4b4
Fixed #3904 (false positive memory leak with linked list)
2012-06-23 20:15:58 +02:00
Daniel Marjamäki
162a430354
Fixed #3868 (false positive: (style) Same expression on both sides of '|'.)
2012-06-23 19:54:15 +02:00
Daniel Marjamäki
b6f4dbd067
Uninitialized variables: Fixed TODO assertion (related with ticket #3106 )
2012-06-23 16:06:20 +02:00
Daniel Marjamäki
7f5950967e
Reviewed handling of >> in return statements in C files in UninitVar checking
2012-06-23 15:47:48 +02:00
Daniel Marjamäki
f0f69ed818
Reviewed handling of << and >> in C files in CheckUninitVar
2012-06-23 12:41:00 +02:00
Daniel Marjamäki
e2964c0c9e
Uninitialized variables: Fixed false negative when ? operator is used in rhs
2012-06-23 12:19:03 +02:00
Daniel Marjamäki
a15dac9285
simple spell checking 'itis' => 'it is'
2012-06-23 10:08:18 +02:00
Daniel Marjamäki
5de82c1c42
Updated arrayIndexOutOfBounds error message. Thank you Kimmo for the suggestion.
2012-06-23 09:51:32 +02:00
Daniel Marjamäki
4e98cb3ed9
Fixed #3907 (improve check: detect buffer overrun when using && or || in for loop)
2012-06-23 09:23:14 +02:00
Daniel Marjamäki
ac524c56ad
Reviewed handling of unknown types in ExecutionPathBufferOverrun
2012-06-23 08:15:59 +02:00
Robert Reif
dc4982115a
Improved checking of scanf format strings
2012-06-23 07:52:52 +02:00
Daniel Marjamäki
3db58bb57f
Reviewed C handling in CheckOther::clarifyCondition, never treat x<..> as a template in C files.
2012-06-23 07:29:49 +02:00
Daniel Marjamäki
d2dbaca24b
Reviewed handling of unknown types in C files in UninitVar
2012-06-22 19:57:07 +02:00
Daniel Marjamäki
abaa044e03
Reviewed handling of unknown types in CheckUninitVar
2012-06-22 16:39:39 +02:00
Daniel Marjamäki
354406441a
Fixed #3906 (false positive uninitvar for vector pointer)
2012-06-22 16:26:43 +02:00
Daniel Marjamäki
951da02f89
Reviewed handling of unknown types in C files in checkunusedvar
2012-06-22 15:59:41 +02:00
Daniel Marjamäki
8aba801360
Fixed #3800 (False negative: Self-assignement of variable declared as 'extern')
2012-06-22 11:23:50 +02:00
Daniel Marjamäki
d6e2e867ea
refactoring CheckAutoVariables
2012-06-22 11:21:51 +02:00
Daniel Marjamäki
935351c601
Fixed #3895 (Improve check: double deallocation not detected (if-else))
2012-06-22 09:10:30 +02:00
Daniel Marjamäki
195174b69f
astyle formatting
2012-06-21 19:05:14 +02:00
Daniel Marjamäki
edea4ef131
Refactoring: Renamed CheckNullPointer::isPointer to Token::isUpperCaseName
2012-06-21 19:00:53 +02:00
Daniel Marjamäki
956a37a382
Fixed compiler errors
2012-06-20 17:39:31 +02:00
Daniel Marjamäki
3d0e090a13
Fixed #3899 (false positive: (error) Returning/using deallocated pointer fp)
2012-06-20 17:09:41 +02:00
Daniel Marjamäki
180bb00ac6
Merge pull request #74 from kimmov/errorlogger
...
Refactoring information messages.
2012-06-19 11:19:59 -07:00
Daniel Marjamäki
974225626d
Fixed #3901 (false positive: (error) Uninitialized variable: temp)
2012-06-19 20:07:39 +02:00
Daniel Marjamäki
ce5c38f52c
Fixed #3890 (False positive Uninitialized variable on returning default value on a class member)
2012-06-19 20:04:10 +02:00
Kimmo Varis
68c52ddd69
Refactoring information messages.
...
Currently the information severity messages are outputted as error
messages with Severity::Information. This causes constant confusion
as people think it as mildest error severity (and rightfully so).
When it was meant to be for printing messages about the checking
procedure itself (like missing header files etc).
So I'm adding a new function for the ErrorLogger for printing these
informative messages. This makes clear the distinction of errors
found from the code and messages related to the checking itself.
It also makes it easier for clients to handle these separately.
2012-06-19 00:16:20 +03:00
Edoardo Prezioso
57ade25099
Fixed checkio.cpp warning in #2123 .
2012-06-18 13:08:01 +02:00
Daniel Marjamäki
2f280332ef
Merge pull request #99 from kimmov/tests-generate-pri
...
Generate a test file listing with dmake.
2012-06-17 10:49:42 -07:00
Daniel Marjamäki
a37c3144ed
Fixed #3858 (Throw exception in destructor BUT inside a try-catch shouldn't be reported)
2012-06-17 14:33:18 +02:00
Daniel Marjamäki
62f92fe253
Fixed #3866 (false positive: memory leak (UNLIKELY))
2012-06-17 07:54:24 +02:00
Daniel Marjamäki
2481b80875
Code cleanup. Removed CheckLeakAutoVar::doubleDeallocationError since the same checking is already done by CheckOther::checkDoubleFree
2012-06-17 07:22:15 +02:00
Zachary Blair
fa2bca1e09
Ticket #3876 : Improved check by only bailing of loops that contain break or continue
2012-06-16 13:11:09 -07:00
Daniel Marjamäki
2c6c61fb0d
Merge pull request #101 from simartin/clang_warn_fix
...
Get rid of a warning
2012-06-16 08:48:02 -07:00
Daniel Marjamäki
7d59d86ed6
Fixed #3893 (Improve check: Array index out of bounds not detected when down conting)
2012-06-16 17:44:51 +02:00
Simon Martin
459369e3b9
Get rid of a warning
2012-06-16 06:34:18 +02:00
Daniel Marjamäki
89b1b4ea6e
Fixed #3892 (False positive: 'if (var >= 0.0) then if (var >= 0.0) always returns true
2012-06-15 16:54:02 +02:00
Daniel Marjamäki
f967142436
Fixed #3875 (Static member method called with class name is considered unused)
2012-06-14 22:04:21 +02:00
Daniel Marjamäki
5174f7ff5e
Fixed #3723 (Preprocessor evaluation order)
2012-06-14 21:47:03 +02:00
PKEuS
8b294a2d4f
Disabled C4512 in VS10 ( #3882 )
2012-06-14 09:39:31 -07:00
PKEuS
1a6e69a80b
Fix for problem: "Too many #ifdef configurations - cppcheck will only check 12 of 12"
2012-06-13 10:50:50 -07:00
Daniel Marjamäki
4b6e1c6946
Fixed #3855 (false positive: (error) Instance of 'locale' object destroyed immediately)
2012-06-13 19:21:20 +02:00
Daniel Marjamäki
cc5e06b5d2
Fixed #3861 (uninitialized variables)
2012-06-13 19:09:51 +02:00
August Sodora
90f92250dd
Fixed #3618 (segmentation fault of cppcheck)
2012-06-12 21:07:17 +02:00
Daniel Marjamäki
54a66391d8
Fixed #3750 (false positive: C-style pointer casting)
2012-06-12 18:45:31 +02:00
Kimmo Varis
db587794c9
Update Makefile.
2012-06-11 22:16:12 +03:00
Daniel Marjamäki
08a3d0737e
Memory leaks: Write error message when deallocated pointer is returned
2012-06-11 18:28:31 +02:00
Zachary Blair
e2348560e4
Fixed Ticket #3876 (Error (double free) detected that can't possibly happen)
2012-06-10 17:50:31 -07:00
seb777
5b763a9f0a
Fixed #3579 (object destroyed immediately:False positive & negative)
2012-06-10 21:52:32 +02:00
PKEuS
4b80e91145
Implemented support for building cppcheck lib into a dll
...
Updated VS9 solution
New VS10 solution that builds cppcheck into a dll used by cli and testrunner.
Functional changes and advantages of new solution:
- Share code between testrunner and cli; ability to share code with gui as well (not yet implemented)
- Files of /lib are no longer compiled twice (should improve build time on single core machines)
- Added configuration for building with PCRE support
- Executables are build into /bin (/bin/debug in debug mode) folder (Should no longer require rebuild when switching between debug and release)
- Completely x64 compatible (contains also x64-debug configuration now)
2012-06-10 05:19:09 -07:00
Daniel Marjamäki
171f570639
Handle UTF-16 files. Partial fix for ticket #2083
2012-06-10 11:00:27 +02:00
Daniel Marjamäki
905615e991
Fixed #3878 (Sign extension with unsigned char false positive)
2012-06-09 08:43:13 +02:00
PKEuS
e191f0d7d4
Fixed test failures in testio caused by my last commit.
2012-06-08 10:35:08 -07:00
PKEuS
c463d97386
Refactorization:
...
- Implemented consistent behaviour of Variable::typeStartToken/typeEndToken: Skip const and static on all variables.
- Simplified patterns containing "static|" or "const|" when matching typeStartToken.
2012-06-08 09:05:02 -07:00
Daniel Marjamäki
69846b2a06
Fixed #3872 ('char variables in bit operations' warning)
2012-06-08 17:24:54 +02:00
Daniel Marjamäki
c5da030674
Fixed #3869 (References to items in array result it 'Uninitialized variable' errors)
2012-06-08 16:17:55 +02:00
Daniel Marjamäki
2b3e5abef8
Fixed #3865 (Suspicious condition. The result of find is an iterator, but it is not properly checked.)
2012-06-07 19:33:18 +02:00
PKEuS
7c1b0a7602
Issue useInitializationList message only on variables of class types.
2012-06-06 03:03:51 -07:00
Daniel Marjamäki
3c103e520b
Fixed #3854 (false positive: (style) Variable '_S_c_name' is assigned a value that is never used)
2012-06-05 06:37:55 +02:00
August Sodora
e146591b5d
Fixed #3544 (segmentation fault of cppcheck)
2012-06-02 16:15:12 +02:00
Daniel Marjamäki
0cf2c2b327
Fixed #3862 (Double deallocation does not take throws into account)
2012-06-01 19:08:50 +02:00
Daniel Marjamäki
a823d29da3
Fixed #3809 (false positive: memory leak)
2012-06-01 19:01:19 +02:00
Daniel Marjamäki
d1b4bea304
Fixed #3807 (False positive: possible null pointer dereference)
2012-05-31 18:41:00 +02:00
Daniel Marjamäki
cad2e80897
Memory leak: Fixed unit tests that were broken by mistake by my previous commit
2012-05-30 06:43:30 +02:00
Daniel Marjamäki
27003e72b8
Memory leak: minor updates of new leak checking. fixed condition in parseConfiguration. write info message if configuration has been given.
2012-05-30 06:36:59 +02:00
Daniel Marjamäki
2e41510e30
Fixed #3806 (Possible leak in public function. The pointer '' is not deallocated before it is allocated)
2012-05-29 21:13:34 +02:00
Daniel Marjamäki
8d0f315097
Fixed #3851 (False positive memory leak (condition))
2012-05-29 21:10:19 +02:00
Zachary Blair
2bd171dded
Fixed #3794 (New check: Missing break in switch (duplicate bitwise operation))
2012-05-28 21:19:22 -07:00
Daniel Marjamäki
9b2d60bf42
Merge pull request #97 from simartin/clang_warn_fix
...
Get rid of a warning
2012-05-26 12:37:04 -07:00
Daniel Marjamäki
92c5cffeb0
Memory leaks: Fixed false positive when allocated pointer is assigned
2012-05-26 21:28:35 +02:00
Daniel Marjamäki
b8b16172b8
Memory leaks: Added support for a simple configuration file format. This is not supposed to become the official configuration format, it's just a temporary format that we can use to start with.
2012-05-26 18:10:12 +02:00
Simon Martin
cede3fc805
Get rid of a warning
2012-05-26 15:49:40 +02:00
Daniel Marjamäki
bd8fb0a6b5
Memory leaks: Added new checking for memory leaks
2012-05-26 08:53:46 +02:00
PKEuS
f4bf94ca4f
Fixed #3845
2012-05-25 07:28:32 -07:00
PKEuS
79445e52ad
Refactorized CheckUninitVar to use SymbolDatabase
2012-05-25 04:40:18 -07:00
PKEuS
9dc8123151
Refactorizations:
...
- Use const string references instead of const strings copies when possible
- Fixed cppcheck warning about postfix increment in CheckIO
- Use symbolDatabase to detect pointers in CheckOther::checkAssignBoolToPointer
2012-05-25 03:09:41 -07:00
PKEuS
e2bab4b6a3
Implemented Function::nestedIn to be able to identify the scope the function belongs to, even if Function::functionScope.functionOf is not available.
...
Refactorized usage of SymbolDatabase in checkOther:
- Don't copy Function instances in checkExpressionRange
- Simplifications by more accurate usage of information in database
2012-05-24 08:40:43 -07:00
PKEuS
97c4af44ca
Refactorizations in checkOther:
...
- More accurate usage of symbolDatabase to reduce code and false negatives
- Avoided unnecessary construction of pattern string
- Only search for class/struct definition before usage
2012-05-24 06:34:59 -07:00
PKEuS
334fc16f29
Refactorized CheckOther::checkSizeofForArrayParameter: Use symboldatabase to detect arrays.
2012-05-24 00:39:16 -07:00
PKEuS
9ca7f6a8c3
Fixed crashes #3830 and #3832
2012-05-23 01:04:21 -07:00
PKEuS
dc64ac2918
Removed unnecessary variable Function::start - The value is already stored in Function::functionScope->classStart.
2012-05-22 12:58:46 -07:00
PKEuS
26f5f08614
Initialize Function::start when the function is implemented, not when its defined. ( Fixes #3826 )
2012-05-22 12:30:10 -07:00
Daniel Marjamäki
77e9106ec0
Fixed #3634 (False positive: compareBoolExpressionWithInt when using boost::tuples)
2012-05-22 19:01:21 +02:00
Daniel Marjamäki
5b0551054a
varid: better templates handling
2012-05-22 18:58:13 +02:00
Ettl Martin
1fd6d36493
fixed regression with g++-4.6 (Ubuntu Linux, 64 Bit). Moved local struct definition out of function scope. No functional change.
2012-05-22 15:43:40 +02:00
PKEuS
a8382ea553
Implemented file pointer usage checking:
...
- File I/O without positioning function call (#1742 )
- Read/Write to a file that was opened for writing/reading (#463 )
- Operations on closed file
Old fflushOnInputStream check is now part of the new check.
2012-05-22 05:30:22 -07:00
PKEuS
f3f46b4861
Fixed #3820
2012-05-22 02:27:21 -07:00
PKEuS
f5ef6f255e
Hande try and do in initialization list usage check ( #3823 )
2012-05-22 01:35:56 -07:00
PKEuS
e8dfe2407a
Fixed crash in Variable::evaluate ( #3825 )
2012-05-22 01:29:33 -07:00
Andy Maloney
e344653e90
Remove extra semicolon
2012-05-20 11:40:39 -04:00
Daniel Marjamäki
aebedfb123
dmake: updated Makefiles
2012-05-20 12:04:47 +02:00
PKEuS
b81eafe0dc
Splitted CheckIO from CheckOther.
2012-05-20 02:57:07 -07:00
Edoardo Prezioso
892c125ff8
Fixed: lib/checkclass.cpp:538:85: warning: declaration of ‘name’ shadows a member of 'this'.
2012-05-19 21:51:39 +02:00
PKEuS
be7b104a8e
Added missing checks to CheckClass::classInfo()
...
Replaced tokAt(1) with next() in checkother.cpp
2012-05-19 01:51:47 -07:00
Andy Maloney
4686294d7e
Fix compiler warning about empty for body
2012-05-18 14:00:10 -04:00
Andy Maloney
12c5980c01
Fix compiler warning about initialization order
2012-05-18 13:59:19 -04:00
PKEuS
de79a4c84f
Fixed initialization list usage according to cppcheck results
...
Fixed comments mentioning nonexistent parameters
2012-05-18 07:57:11 -07:00
PKEuS
e77f348d82
New check: Suggest to use initialization list instead of assignment in constructor. ( #489 )
2012-05-18 07:54:58 -07:00
PKEuS
77927583f4
Fixed two compiler warnings spotted by edward-san (one of them was a real bug)
2012-05-17 08:29:32 -07:00
PKEuS
a9cfe2814a
Made some functions const according to cppcheck results
2012-05-17 02:54:17 -07:00
PKEuS
4825f78663
Fixed #2477 and #2669
2012-05-17 02:15:21 -07:00
PKEuS
3f5712bfb8
Fixed false positive "Function can be const" when 'this' is passed to a Memberfunction
2012-05-17 01:49:52 -07:00
PKEuS
4bb2a1b27b
Made some functions static or const according to cppcheck results
2012-05-17 01:33:24 -07:00
PKEuS
ea601ef2b0
Fixed false positives about const correctness caused by incorrect handling of default arguments
2012-05-17 01:05:36 -07:00
Daniel Marjamäki
f803a18d50
Fixed #3749 (false positive: same expression on both sides of operator)
2012-05-17 07:26:57 +02:00
Daniel Marjamäki
505aa6e4cc
TestSimplifyTokens::enum29: Fixed crash
2012-05-16 21:39:26 +02:00
PKEuS
6a05ad1cf8
Improved fix for #2698 and added test case
2012-05-16 12:36:05 -07:00
PKEuS
77df633904
Improved handling of function calls in const correctness check: Fixed #2702 , #2698 , #2729 .
2012-05-16 11:57:12 -07:00
Daniel Marjamäki
0bb0fdedc2
Fixed #3747 (False 'boolean result in bitwise' message with 'mask' enums)
2012-05-16 18:48:33 +02:00
Edoardo Prezioso
573256350a
Fixed: mathlib.cpp(258): warning C4702: unreachable code.
2012-05-16 15:26:03 +02:00
PKEuS
279b0c59bb
Don't set Preprocessor::missingIncludeFlag if missingInclude warning is suppressed ( #3487 ).
2012-05-16 02:59:45 -07:00
PKEuS
0157f937bf
Fixed #3760 : Added explicit to C++ keyword list in setVarId
...
Made some constant arrays static
2012-05-16 01:59:52 -07:00
PKEuS
e8cd119ebd
Improved parsing of functions that accept nullpointers but no uninitialized data ( Fixed #3811 )
2012-05-16 00:56:39 -07:00
PKEuS
132a95b5f2
Fixed bug in symboldatabase: Don't ignore const or static on variables declared that are declared with both keywords. ( Fixes #3805 )
2012-05-15 12:03:43 -07:00
Daniel Marjamäki
4ae8e4f382
Tokenizer::setVarId: Minor fix of sizeof handling
2012-05-15 18:40:24 +02:00
Daniel Marjamäki
a0e5fad6a9
Fixed #3776 (Tokenizer::setVarId: No varid set when unknown macro is used before variable declaration)
2012-05-15 07:17:31 +02:00
PKEuS
42fd19fb37
Refactorization in checkclass.cpp:
...
- Improved handling of pointers and constants in constructor checking (-> Fixed #3801 )
2012-05-14 12:50:23 -07:00
PKEuS
1dee3b04b9
Bugfixes in SymbolDatabase:
...
- Constant pointers are now detected as variable declarations
- Probably fixed #3802
2012-05-14 12:47:02 -07:00
Edoardo Prezioso
eacf74be8d
Changed the order of some structures in order to improve, even if for a bit, their padding.
2012-05-14 20:49:03 +02:00
Daniel Marjamäki
fc7f78244e
Fixed #3708 (False positive: uninitialized variable (allocation, unknown nonpointer type))
2012-05-14 18:34:39 +02:00
Daniel Marjamäki
62f9875f90
Fixed #3799 (Bug: Function gets varId)
2012-05-13 07:55:35 +02:00
PKEuS
06a77679d4
Refactorizations:
...
- Added support for pointers in self assignement check
- Removed redundant for loop in checknullpointer.cpp
- Fixed warning about signed/unsigned mismatch in cppcheck.cpp by making Settings::_maxConfig unsigned
2012-05-11 10:38:19 -07:00
PKEuS
0452b03f53
Refactorizations in SymbolDatabase:
...
- Moved complete evaluation of variables type into one function executed when the variable is constructed
- Moved SymbolDatabase::ArrayDimensions to Variable::ArrayDimensions
2012-05-11 17:56:47 +02:00
PKEuS
11a296cb02
Fixed #2708 : Print message before checking and after checking is interrupted if there are too many preprocessor configurations
...
Removed redundant suppression check because the same check is done inside reportErr again.
2012-05-09 09:54:43 -07:00
Daniel Marjamäki
8236cd4d50
Fixed #3785 (false positive: (style) Variable 'dinv' is assigned a value that is never used)
2012-05-08 12:04:54 -07:00
Daniel Marjamäki
dad2fb6db1
Fixed #3737 (Preprocessor: __cplusplus always defined for c++ code)
2012-05-08 11:49:43 -07:00
Daniel Marjamäki
99a29eafc9
Fixed #3691 (Tokenizer::simplifyKnownVariables: continue in switch)
2012-05-07 12:11:23 -07:00
Daniel Marjamäki
2fbd77c5a1
Fixed #3715 (false positive checking a map bounds)
2012-05-07 12:03:33 -07:00
PKEuS
db914d7185
Fixed compiler errrors and warnings mentioned in #3783
2012-05-07 06:34:47 -07:00
PKEuS
ec00824fd3
Fixed #3357 :
...
- Print "inconclusive" tag in cli
- Fixed inconclusive handling in checkbufferoverrun.cpp
- Merged reportInconclusiveError into reportError by adding an additional parameter "bool inconclusive" which is false per default
2012-05-06 10:37:41 -07:00
PKEuS
6ef92c4fd7
Use recently implemented new constructor of ErrorLogger::ErrorMessage in checkmemoryleak.cpp and symboldatabase.cpp
...
Fixed test failure introduced in f105bf75a6
2012-05-06 04:01:56 -07:00
PKEuS
28f6e2f4a9
Resolved cyclic dependency between Tokenizer and TemplateSimplifier
2012-05-06 01:38:55 -07:00
PKEuS
f105bf75a6
Refactorizations in ErrorLogger:
...
- Implemented constructor for ErrorLogger::ErrorMessage that takes a callstack of tokens -> replaced duplicate code in Check and Tokenizer
- Implemented strigify() for ErrorLogger::ErrorMessage::FileLocation to replace two identical implementations of it.
2012-05-06 01:17:15 -07:00
Daniel Marjamäki
58bee0afde
Makefile: generated new Makefiles since the Tokenizer has been split up
2012-05-05 18:39:29 +02:00
PKEuS
1a5fbd61d2
Splitted class TokenList from Tokenizer
2012-05-05 09:33:26 -07:00
Ettl Martin
5d088aa99c
fixed wrong spelled words in comments. No function change.
2012-05-05 15:21:27 +02:00
Daniel Marjamäki
11614021e8
Fixed #3768 (Tokenizer::setVarId: no varid for 'std::string' parameter after a 'std::string' parameter called 'string')
2012-05-05 09:59:43 +02:00
Daniel Marjamäki
005ce81689
Fixed #3640 (False positive: statement begins with numeric code)
2012-05-04 17:53:47 +02:00
Daniel Marjamäki
119b24e363
Fixed #3756 (False positive: uninitvar in malloc)
2012-05-03 19:10:51 +02:00
PKEuS
aec57db9b2
Fixed #3778 : Added missing function Function::getArgumentVar
2012-05-03 13:29:41 +02:00
PKEuS
04704ac5fa
Refactorizations in checkmemoryleak.cpp:
...
- Use symbolDatabase more often to increase performance and accuracy.
- Replaced indendation counter
- Replaced custom stringify implementation
Benchmark results (sqlite checking):
4% complete, 7% on "Memory leaks (function variables)", 9% on "Memory leaks (address not taken)" and 82% on "Memory leaks (struct members)"
2012-05-03 10:43:47 +02:00
Daniel Marjamäki
d5442280b1
Fixed #3597 (Errors in evaluation of chained assignment operators)
2012-05-01 07:06:14 +02:00
PKEuS
8e362ad5f7
Fixed #3771
...
Stronger testing for false positives in inconclusive checking in checknullpointer.cpp
2012-04-30 12:36:41 +02:00
Edoardo Prezioso
5d6a257c86
Fixed #3770 (Segmentation fault in K&R function parameters simplification)
2012-04-29 12:58:52 +02:00
Daniel Marjamäki
082e6d506b
#3744 (Unexpected unused value warning for char ptr types set in switch)
2012-04-28 15:43:42 +02:00
PKEuS
a0d92f5ed9
Refactorizations in SymbolDatabase:
...
- Skip struct keywords in argument list so that Variables declared like "Struct Foo bar" get a type
- Remvoved redundant argument from Function::addArguments
- Set Function::functionScope for global functions
- Replaced some indendation counters by Token::findClosingBracket
2012-04-27 21:51:13 +02:00
Edoardo Prezioso
6fd6f0998b
Improvement to 5b8840c6b02bd648dc2b75e60145474ae12f8e67: handle also 'const struct|union' types as template parameters.
2012-04-27 20:51:55 +02:00
Daniel Marjamäki
5b8840c6b0
Fixed #3764 (Tokenizer::setVarId: no varid for templated variables with const/struct/union types)
2012-04-27 18:02:07 +02:00
PKEuS
f1511dd795
Fixed #3766
2012-04-27 10:17:07 +02:00
Edoardo Prezioso
bc8de44ddd
Fixed one of the warnings with GCC: variable shadows a member of Token class.
2012-04-27 02:41:46 +02:00
Ettl Martin
bb8342fbb4
fixed misspelled word 'Comparision' --> 'Comparison'
2012-04-26 23:04:55 +02:00
PKEuS
0d5198ffb9
Refactorization in checkmemoryleak.cpp:
...
- Fix #347 : Added support for vasprintf
- Use %varid% instead of the variable name
2012-04-26 18:56:58 +02:00
Daniel Marjamäki
df6f88b4fe
Fixed #3755 (Tokenizer::setVarId: improve varid inside class for struct/class variables)
2012-04-26 18:38:47 +02:00
PKEuS
c3578e88b6
Reverted erroneously committed lines at the end of nullpointer. Sorry for that
2012-04-26 17:55:31 +02:00
PKEuS
ddca2e2f85
Added a lot of functions of the C standard library to nullpointer/uninitialized buffer checking.
2012-04-26 17:53:21 +02:00
PKEuS
746beb98bf
Added support for delete and delete[] in invalidDeallocation check ( fixes #1773 )
2012-04-26 16:44:33 +02:00
PKEuS
dee5568853
Fix bug in class Token that causes recently added modulo-check to fail.
2012-04-26 16:39:16 +02:00
PKEuS
92737578ac
Refactorizations:
...
- removed unused function CheckOther::concatNames
- Replaced one indendation counter by Token::link() in checkother.cpp
- Forward declaration of Settings in threadexecutor.h
2012-04-26 15:29:39 +02:00
PKEuS
5ac7552e4e
New check: Comparision of modulo results that are always true/false.
2012-04-26 15:23:47 +02:00
PKEuS
2a2d76749e
Improve check: Check for 64-bit portability issues when returning pointers/integers
2012-04-26 13:39:19 +02:00
PKEuS
30e8e389a7
Fixed #2980
2012-04-26 10:58:35 +02:00
PKEuS
1e708e10d0
Fixed #2875
2012-04-26 10:35:40 +02:00
PKEuS
ebf89aa229
Fixed #3725 : Associate functions with correct parent scope when definition doesn't directly follow declaration.
2012-04-25 20:52:59 +02:00
PKEuS
31a252b057
Fixed #3746 : Issue operatorEqToSelf error only if the operator takes an object of the class as argument.
2012-04-25 20:25:51 +02:00
Daniel Marjamäki
f84a4344ae
Fixed #3754 (Tokenizer::simplifyKnownVariables: wrong for loop simplification)
2012-04-25 19:23:17 +02:00
Edoardo Prezioso
08ae15e42d
Fixed the grammar in some reportError messages in the Tokenizer class, thanks to kimmov's suggestion.
2012-04-25 15:09:46 +02:00
PKEuS
dd5e9aa454
Make use of recently implemented Token::type() functionality
2012-04-25 09:56:07 +02:00
Daniel Marjamäki
fb6c7f33f0
Fixed #3707 (Uninitialized variable with operator >> and templates)
2012-04-24 19:50:54 +02:00
PKEuS
e0a3ca0845
Refactorizations in class Token: changed handling of different types of tokens.
...
- Replace _isNumber, _isName, _isBoolean attributes by a single _type attribute (enum Token::Type), because not two of the old booleans could be true at the same time.
-> Add support for lots of different other kinds of tokens. (More precise checking of token type possible)
-> Replaced instant checking of type for Operators, etc. by a value calculated at creation time. (Faster checking)
2012-04-23 21:05:26 +02:00
PKEuS
8cbed66089
Changed relationship between templatesimplifier and tokenizer:
...
- Pass a tokenizer to templatesimplifier to reduce code duplication (Make use of Tokenizer::reportError; remove redundant TemplateSimplifier::addtoken2) and amount of arguments passed to functions
Removed ctor and dtor implementation from TemplateSimplifier: This class shouldn't be instanciated.
2012-04-23 20:45:36 +02:00
Daniel Marjamäki
6ae135124e
Tokenizer::setVarId: better handling of initializer lists
2012-04-23 18:26:27 +02:00
PKEuS
5086ae7c31
Refactorizations in CheckMemoryLeakInClass::variable
...
- Bailout for functions that are not implemented (should fix performance downgrade introduced in fb4709f
)
- Jump behind arguments
- Removed unnecessary pop_back operations - container gets destroyed after it.
2012-04-23 15:23:01 +02:00
Daniel Marjamäki
706631f527
Fixed #3748 (False positive out of bounds with postincrement)
2012-04-22 12:22:49 +02:00
Daniel Marjamäki
d5f6cfcfa8
Tokenizer: Use new setVarId function. Removed the old one.
2012-04-22 11:36:31 +02:00
PKEuS
3d2b5a30fe
Implemented generic reportError functions in tokenizer (similar to Check::reportError) to reduce code duplication
2012-04-22 11:28:46 +02:00
Daniel Marjamäki
8c8c9d5e5b
Tokenizer::setVarIdNew: don't treat '(sizeof *p)' as a variable declaration
2012-04-22 11:06:56 +02:00
Daniel Marjamäki
d63093d9bb
Tokenizer::setVarIdNew: Fixed issue found through TestUnusedVar tests
2012-04-22 10:59:58 +02:00
Daniel Marjamäki
871823e9c6
Tokenizer::setVarId: fixed problem for classes with inheritance
2012-04-22 10:38:06 +02:00
Daniel Marjamäki
e39b7f1bfd
Tokenizer::setVarIdNew: Fixed TestTokenizer::varid38
2012-04-22 10:24:19 +02:00
Daniel Marjamäki
e745d971c8
Tokenizer::setVarIdNew: Fixed test case TestTokenizer::varid27
2012-04-22 10:19:29 +02:00
Daniel Marjamäki
b4ffb5e0cf
Tokenizer::setVarIdNew: Fixed TestTokenizer::varid39 test case
2012-04-22 09:51:00 +02:00
Daniel Marjamäki
ed6673a9aa
Tokenizer::setVarIdNew: Fixed TestTokenizer::varid44
2012-04-22 09:18:27 +02:00
Daniel Marjamäki
71050bc586
Tokenizer::setVarIdNew: fixed TestTokenizer::varid_in_class2 test case
2012-04-22 08:51:19 +02:00
Ahti Legonkov
79af6f65d7
Fixed #3699 (cppcheck hangs with 100% cpu load on parsing preprocessor code)
2012-04-22 06:49:42 +02:00
Edoardo Prezioso
be5a61b794
Fixed ticket #3721 (false positive: syntax error on valid C code ( K&R function style )).
2012-04-22 01:56:40 +02:00
PKEuS
710fefeef0
Refactorizations:
...
- Replaced some indendation counters by Token::link() or usage of symbolDatabase
- Use Token::nextArgument() to jump to target parameter
2012-04-21 23:05:37 +02:00
Daniel Marjamäki
6d9b4a8032
Tokenizer::setVarIdNew: Fixed TestTokenizer::varid_operator test case
2012-04-21 19:29:24 +02:00
Daniel Marjamäki
1cc256339c
Tokenizer::setVarIdNew: Fixed TestTokenizer::varid19 test case
2012-04-21 18:22:18 +02:00
Daniel Marjamäki
42a95c9202
Tokenizer::setVarIdNew: Fixed segfault when using new setVarId on invalid code
2012-04-21 18:02:26 +02:00
Daniel Marjamäki
bd60dd46d0
Tokenizer::setVarIdNew: handle special case when there is an unknown macro. Ticket #2638
2012-04-21 17:57:20 +02:00
Daniel Marjamäki
b86295fbcd
Tokenizer::setVarIdNew: Improved C++ handling. All the TestTokenizer::varidclass?? tests pass now.
2012-04-21 17:25:44 +02:00
Daniel Marjamäki
6071a5afc3
Tokenizer::setVarIdNew: Fixed varidclass9
2012-04-21 13:39:43 +02:00
Daniel Marjamäki
85b470c41b
Tokenizer::setVarIdNew: Better C++ handling (varidclass5 and varidclass13)
2012-04-21 13:11:30 +02:00
Daniel Marjamäki
1492d8990f
Tokenizer::setVarId: better C++ handling
2012-04-19 20:58:52 +02:00
PKEuS
af80344ab7
Refactorizations in checkclass.cpp:
...
- Removed local isVirtual implementation in checkclass.cpp, use Function::isImplicitlyVirtual instead
- Don't bailout when we see C++-style casts in checkConst
- Don't bailout for this pattern "any << member << any"
- Improved/Fixed some test cases (-> #1305 )
2012-04-18 18:51:38 +02:00
PKEuS
6a37c36ee8
Fixed #3741
...
Removed redundant nullpointer check (cppcheck catch)
2012-04-18 16:35:04 +02:00
PKEuS
cb7537418a
Make use of Token::findClosingBracket in templatesimplifier.cpp
2012-04-18 16:16:06 +02:00
PKEuS
cb064dc20e
Implemented generic mechanism for '<'-'>' "linkage" before link() works (Taken from Scope::findClosingBracket, but C++11 right angle bracket support added): Token::findClosingBracket
...
-> Replaced several indendation-counting mechanisms in tokenize.cpp
Fixed build failure in checkclass.cpp
2012-04-18 16:02:03 +02:00
PKEuS
f6fd44910a
Refactorizations in SymbolDatabase:
...
- Replaced Scope::access by a locally stored std::map, because its a temporary status variable that is only necessary when creating the symboldatabase
- Moved SymbolDatabase::argsMatch to Function::argsMatch, because its function specific
- Improved Scope::findClosingBracket: Improved reliability, made it static and faster
2012-04-18 13:00:34 +02:00
PKEuS
1793bf8928
Fixed false positive in stlBoundries check ( #3740 )
2012-04-18 10:08:59 +02:00
PKEuS
c6f6194008
Added Function::isImplicitlyVirtual to symboldatabase.cpp
...
Made SymbolDatabase::argsMatch static because its possible and necessary for Function::isImplicitlyVirtual
2012-04-17 19:50:44 +02:00
Daniel Marjamäki
bb4184ca03
Tokenizer::setVarIdNew: better handling of class variables
2012-04-17 19:06:00 +02:00
PKEuS
8e5949c6ce
Added several C++11 algorithms and containers to CheckStl
...
Added pattern "> %varid%" to CheckStl::stlBoundries()
Fixed message in checkOther (#1320 )
2012-04-17 12:54:01 +02:00
PKEuS
82cd022646
Refactorized CheckStl::mismatchingContainersError:
...
- Improved error message
- Made patterns more generic by using Token::nextArgument()
2012-04-17 12:21:41 +02:00
Ettl Martin
09d41b2f84
ticket 2669: added todo testcase
2012-04-17 00:31:32 +02:00
Reijo Tomperi
4e2946a8d0
Fix spelling error: unecessary unnecessary
2012-04-16 21:33:16 +03:00
PKEuS
bac8ed7127
Refactorized stringification of tokens:
...
- Function that stringifies one token: Token::stringify()
- Functions that stringify a list of tokens: Token::stringifyList()
-- Single and powerful "base" function, used by several "light" functions
Refactorized
- testtokenize.cpp and testsimplifytokens.cpp: Use improved stringification functions instead of several local implementations
- Avoided redundand creation of std::string when using TestTokenizer::tokenizeAndStringify and in cmdlineparser.cpp
2012-04-16 19:51:07 +02:00
Daniel Marjamäki
5ad1840120
Tokenizer::setVarIdNew: Copied code from Tokenizer::setVarIdOld that sets varid in member functions
2012-04-16 19:48:58 +02:00
PKEuS
1c3c94dc67
New simplification: Remove 'extern "C"' from C++ code.
...
Refactorization in cppcheck.cpp: Catch exception as const reference instead of non-const reference.
2012-04-16 16:25:04 +02:00
PKEuS
8cb904feaa
Refactorizations in class Token:
...
- Added support for < and > in nextArgument()
- Made isStandardType inline by writing its implementation to token.h (like other bool is*() functions)
- Made firstWordEquals return bool instead of integer (only 0 and 1 were returned)
- Use std::string::empty() instead of operator==(""); Use character literals instead of string literals for single characters printed.
2012-04-16 15:28:38 +02:00
PKEuS
66d947675f
Refactorizations in tokenize.cpp:
...
- Removed a few indendation counters
- Removed unnecessary pattern "- >" because this code is simplified to "." before.
- Generalized pattern of simplifyFunctionReturn()
- Simplified removeExeptionSpecification, no longer recursive (-> #3385 )
2012-04-16 10:49:09 +02:00
Daniel Marjamäki
8f866c6e4c
Tokenizer::setVarIdNew: handle c++ keyword 'using'
2012-04-15 18:29:35 +02:00
Daniel Marjamäki
c58d02f146
Tokenizer::setVarIdNew: in C code, allow that variable declaration starts with delete and throw
2012-04-15 18:23:12 +02:00
Daniel Marjamäki
ea148173bb
TemplateSimplifier: Allow that template parameter starts with ::
2012-04-15 18:15:36 +02:00
Daniel Marjamäki
b0dc708b4d
Tokenizer::setVarIdNew: variable declarations dont start with NOT/goto/return/delete/etc
2012-04-15 18:02:49 +02:00
Daniel Marjamäki
46bfe27831
Tokenizer::setVarIdNew: Better handling of function calls
2012-04-15 17:44:51 +02:00
Daniel Marjamäki
31f8a71f84
Tokenizer::setVarIdNew: Better handling for catch-exception-by-reference
2012-04-15 17:39:22 +02:00
Daniel Marjamäki
3c1dfc658c
Tokenizer::setVarIdNew: use the new setVarId with a few more test cases. Improved setVarId: references in executable scopes must be initialized.
2012-04-15 14:32:47 +02:00
Daniel Marjamäki
27c37896a0
Tokenizer::setVarIdNew : use new setVarId function in TestTokenizer::varidReturn2.
2012-04-15 14:19:17 +02:00
Daniel Marjamäki
95dafd30dd
Tokenizer::setVarIdNew : enable more testcases. better handling of unions and struct members.
2012-04-15 13:42:13 +02:00
PKEuS
a420a36606
Removed deprecated cmdline options -s, --style, -a, --all, --auto-dealloc, --test-2-pass
2012-04-15 13:10:41 +02:00
Daniel Marjamäki
7669abb170
Tokenizer::setVarId : Starting to rewrite Tokenizer::setVarId. The purpose of the rewrite is to make this function faster.
2012-04-15 11:47:22 +02:00
PKEuS
f1692cdefe
Set version to "1.55 dev"
2012-04-15 11:40:14 +02:00
Daniel Marjamäki
3ddbcc7fbe
1.54: updated version numbers
2012-04-15 07:23:26 +02:00
Daniel Marjamäki
c6ba3ba3ca
Fixed #3714 (segmentation fault of cppcheck checking libtiff)
2012-04-14 18:36:19 +02:00
PKEuS
9f054fbb3c
Fixed crash when "-rp=" or "--relative-paths=" is given - print Error.
2012-04-14 14:44:15 +02:00
PKEuS
62d5069387
Fixed #3722 : Handle associative law correctly for operator*
2012-04-13 11:55:09 +02:00
PKEuS
05a6638468
Removed code that became unnecessary after 7be01da8e9
.
...
Fixed wrong comment in cli/pathmatch.h (doxygen warning)
2012-04-13 11:08:46 +02:00
Edoardo Prezioso
51789d8e20
Fixed ticket #3712 (false positive: syntax error on valid C code ( K&R function style ))
2012-04-13 00:39:40 +02:00
Ettl Martin
7be01da8e9
fixed ticket 3693. Added modulus operator to Mathlib + unittests. Added a test to checkother to ensure the testcase of ticket 3693 does not trigger an error message.
2012-04-12 14:02:09 +02:00
Daniel Marjamäki
8e3f1702fd
Reverted 81318b3f
to get rid of #3669 false positives
2012-04-10 13:58:59 +02:00
Daniel Marjamäki
23c71daf37
astyle formatting
2012-04-10 13:45:56 +02:00
Daniel Marjamäki
c7093ca5d6
Tokenizer: allow that time is measured for certain slow simplifications
2012-04-10 13:45:34 +02:00
Daniel Marjamäki
6bae724cb6
Fixed #3705 (cppcheck crash (null pointer exception))
2012-04-09 15:06:06 +02:00
Daniel Marjamäki
bbdeebafda
Fixed #3700 (false positive: (style) Variable 'H' is not assigned a value)
2012-04-09 12:55:26 +02:00
Daniel Marjamäki
26a9a1b571
Fixed #3661 (False positive: unusedPrivateFunction)
2012-04-09 11:19:19 +02:00
PKEuS
c12d82aeb9
Fixed false negative in unused functions check when function returns reference
...
Removed some unnecessary loops
2012-04-09 11:00:31 +02:00
Daniel Marjamäki
b8d233f1a2
false poitive - invalid iterator after break
2012-04-09 07:19:39 +02:00
Daniel Marjamäki
66227c4da0
Fixed #3609 (clarifyCondition delivers false positives when using Windows-Traits as a template)
2012-04-08 18:07:11 +02:00
PKEuS
772108374e
Removed unused variable CppCheck::_errout.
2012-04-08 14:18:13 +02:00
Daniel Marjamäki
6360afdcfa
CheckOther: Use reportInconclusiveError to report inconclusive error
2012-04-08 10:47:01 +02:00
Simon Martin
3ccdd16b01
Avoid clang warning.
2012-04-07 15:36:45 +02:00
PKEuS
7de545f0fe
Refactorizations:
...
- Added forgotten initialization of Settings::_relativePaths
- Some PCRE-Rules specific code hidden behind HAVE_RULES
- Use initialization list in ErrorLogger::ErrorMessage::ErrorMessage() and CppCheck::CppCheck
- Avoided unnecessary copies of std::strings in cppcheck.cpp
- Moved "// Alert only about unique errors"-code to make it work in debugFalsePositive mode
2012-04-06 18:16:59 +02:00
PKEuS
6643e14d3c
Avoid copying Settings in CppCheckExecutor
2012-04-06 14:19:26 +02:00
PKEuS
25167b58a9
Implemented #2990 : Print relative paths if -rp or --relative-paths is given
2012-04-06 10:49:21 +02:00
PKEuS
b0f571b25c
Fixed #3383 : If there is an empty line between subsequent break statements, only issue a message for inconclusive checking
2012-04-05 10:38:29 +02:00
PKEuS
425cbea6b1
Improvements in checkclass.cpp:
...
- Generalized CheckClass::noMemset:
-- Checking for all three mem...-functions for all patterns, generalized them so that we need less patterns
-- Use nextArgument() to jump over irrelevant arguments
- Replaced CheckClass::hasDeallocation by CheckClass::hasAllocation:
-- Reduced number of false negatives by returning also true whenever a member variable is allocated (also without previous deallocation)
-- Reduced code duplication
- Removed indendation counter and redundant variable in CheckClass::initializeVarList
2012-04-05 09:43:40 +02:00
Daniel Marjamäki
823fc9ac04
Fixed #3650 (Variable declaration: Doesn't handle template usage well)
2012-04-05 08:53:10 +02:00
Stefan Weil
37b98c2a56
Fix compiler warning
...
gcc warning:
lib/checkclass.cpp: In member function ‘void CheckClass::checkConst()’:
lib/checkclass.cpp:1197: warning: declaration of ‘name’ shadows a member of 'this'
Rename local variable 'name' to 's'.
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2012-04-04 20:39:11 +02:00
PKEuS
d6cfbc6483
Improved checks in CheckStl:
...
- Generalized check for inefficient emptiness check to detect !%var%.size() calls also outside of if and while; detect it also for %var%.size() when linked with && or ||.
Refactorizations in CheckStl:
- Removed an indendation counter and an offset variable
- Reduced distance given to tokAt calls in CheckStl::redundantCondition
- Rearranged code in CheckStl::missingComparison to use more efficient comparision of varIds instead of variable names. Use varId in pattern instead of variable name.
2012-04-04 19:44:57 +02:00
PKEuS
bef2caf489
Improved checks in CheckStl:
...
- Improved message of stlIfStrFind according to discussion on github (77d9ed1877
)
- Generalized pattern for substr in CheckStl::uselessCalls; added check for substr calls like ".substr(%any%,0)" which result in an empty string.
2012-04-04 19:40:28 +02:00
Edoardo Prezioso
b90d9c8a19
Make 'const' the new variable 'funcName'.
2012-04-03 22:51:56 +02:00
PKEuS
77d9ed1877
Fixed #3162 : Check whole condition for suspicious find calls.
2012-04-03 20:59:45 +02:00
Edoardo Prezioso
ecc5dea113
Fixed ticket #3703 (false positive: syntax error on valid C-code ( K&R - style )).
2012-04-03 20:12:34 +02:00
Edoardo Prezioso
5d91ef76fe
Fixed ticket #3701 (false positive: syntax error on valid C code ( K&R function style ).
2012-04-03 19:49:58 +02:00
PKEuS
c1fc7a2218
Improved CheckOther::checkComparisonOfBoolWithInt and CheckOther::checkComparisonOfBoolExpressionWithInt:
...
- Added support for comparision of bool constant with number constant (-> fixed #1877 ) and integer variable with boolean expression
- Moved a check from checkComparisonOfBoolWithInt to checkComparisonOfBoolExpressionWithInt
- Generalized some patterns
- Made error message more accurate concnerning the "neither 0 nor 1" part.
- Reduced number of Token::Match calls
2012-04-02 15:45:51 +02:00
PKEuS
fc8749e952
Improved nullpointer check:
...
- Fixed #3673
- Fixed potential issue with constructor calls (like #3697 )
- Added support for operator+ on std::string
2012-04-02 12:12:02 +02:00
PKEuS
033e4a2c1f
Fixed #3676 .
2012-04-02 11:21:04 +02:00
PKEuS
8492685531
Fixed #3697 .
2012-04-02 11:02:41 +02:00
Edoardo Prezioso
af02908d42
Fixed ticket #3580 (syntax error in multi variable declaration header).
2012-03-31 18:45:29 +02:00
PKEuS
8949464ed6
Fixed another memory leak in executionpath.cpp
2012-03-31 15:03:11 +02:00
Pierre Schweitzer
72c2f400b1
Fix a memory leak and a performance issue in checkExecutionPaths()
2012-03-31 13:14:24 +02:00
Daniel Marjamäki
68e6511c87
Fixed #3532 (false positive : missing constructor)
2012-03-31 11:30:26 +02:00
Daniel Marjamäki
1309825bf1
Merge pull request #91 from HeisSpiter/e46c7eb32033b520374e9df8c13bc8589c0602d0
...
Handle Rtl memory functions in Tokenizer::simplifyMicrosoftMemoryFunctions()
2012-03-28 09:43:14 -07:00
Daniel Marjamäki
e6dc901761
Fixed #3574 (false positive: check sign of unsigned variable (type cast))
2012-03-28 18:33:34 +02:00
Daniel Marjamäki
abcbe2e49f
Fixed #3594 (false positive: returning reference to auto variable)
2012-03-28 18:21:06 +02:00
PKEuS
4f1f6e1824
Improved simplification of calculations:
...
- Use more generic patterns
- Look on operator precedence more consequently
-> Made a TODO test case from a test case that worked previously, because the calculation is simplified so that the problem isn't detected any more.
Changed comment "Coding style checks" to "Checks", because it didn't fit
2012-03-27 21:29:50 +02:00
Pierre Schweitzer
e46c7eb320
Add the RTL memory functions for the simplifications on Windows code.
2012-03-27 21:24:46 +02:00
PKEuS
b37cf11d20
Refactorizations:
...
- Increased encapsulation by making some functions private
- Removed redundant function CheckBufferOverrun::ArrayInfo::declare
- Avoided copy of ArrayInfo object
- Removed unnecessary and suspicious "if(sizeof(int) == 4)"
2012-03-27 19:40:39 +02:00
Daniel Marjamäki
01ddfb6f80
Fixed #3534 (Broken support for dollar signs in identifiers)
2012-03-27 19:35:41 +02:00
PKEuS
782cd5d228
Fixed #3687 : Don't treat catched variables as local ones.
2012-03-26 21:19:42 +02:00
Daniel Marjamäki
c07044b3d3
Fixed #3573 (Preprocessor: handle '!(X)' the same as '!X')
2012-03-26 19:01:45 +02:00
PKEuS
989ac449e4
Made invalidPointerCast message inconclusive for casting from floating point type* to char* ( Fixed #3639 )
2012-03-25 12:55:39 +02:00
Daniel Marjamäki
4773384ff4
xml: Add attribute 'inconclusive' to the xml (format version 2)
2012-03-25 11:59:30 +02:00
Daniel Marjamäki
1d95416840
astyle formatting
2012-03-25 11:51:59 +02:00
Daniel Marjamäki
ca6a93816b
Merge pull request #89 from HeisSpiter/master
...
Merged two checks to get a better one regarding sizeof
2012-03-25 02:38:04 -07:00
PKEuS
e4d92055e7
Improved sizeofCalculation check:
...
- Bailout on expanded macros for conclusive checking
- Support for more operators
- Removed indendation counter
Improved checkSignOfUnsignedVariable:
- Made the patterns more generic
- Improved verbose error message (-> Fixed #3080 )
2012-03-25 11:32:00 +02:00
August Sodora
fe9d491aae
3619 Check that tok2->next() exists before using
2012-03-25 10:24:29 +02:00
Edoardo Prezioso
28431da0ae
Nitpicky style change: use 'for(;;)' construct instead of 'while(true)' in the code.
2012-03-24 21:50:09 +01:00
PKEuS
e6bcab7c35
Fixed #3360 : "type const* var;" is now recognized as variable declaration.
2012-03-24 15:10:06 +01:00
PKEuS
b964551424
Fixed #3252
...
Make use of std::isupper instead of custom implementation
2012-03-24 13:48:33 +01:00
PKEuS
8c657872d1
Check for unused private functions now handles overloads - removed redundant and less powerful duplicate of CheckClass::isVirtualFunc.
...
CheckClass::initializerList does now also check copy constructors
Started fix for #3682 : use reportInconclusiveError
2012-03-24 10:50:19 +01:00
Daniel Marjamäki
4076c46a33
Merge pull request #88 from leg0/ticket_3675
...
Fixed ticket #3675 .
2012-03-24 00:36:37 -07:00
Pierre Schweitzer
2b5ddb7858
Merge the strncmp & malloc sizeof checks into a more generic test that handles several cases where sizeof is misused, or could be misused
2012-03-23 21:47:13 +01:00
PKEuS
e938235385
Store functions which are declared but not implemented in the function list of the containing scope -> Fixed #3679
...
Refactorizations:
- Simplified some code
- Improved condition in findVariableType to reduce unnecessary comparisions of empty strings.
2012-03-23 17:59:51 +01:00
Ahti Legonkov
780481e82a
Fixed ticket #3675 .
2012-03-23 01:45:47 +02:00
Daniel Marjamäki
d04698df13
Merge pull request #87 from HeisSpiter/master
...
Fix a bug introduced with a previous commit and add a new check
2012-03-21 13:20:39 -07:00
Pierre Schweitzer
ec44967e13
Add a new test to check improper sizeof usage. It's for the moment limited to malloc calls.
2012-03-21 21:13:09 +01:00
PKEuS
002389f836
Fixed #3677
...
Added forgotten testcase for #3672
2012-03-21 18:40:32 +01:00
Pierre Schweitzer
9d002916f4
Fix line number displayed on leakNoVarr error
2012-03-20 22:28:56 +01:00
Daniel Marjamäki
a2351ba44f
Fixed #3648 (Internal error: Token::Match called with varid 0)
2012-03-20 19:05:24 +01:00
Daniel Marjamäki
d6c8de104c
Revert "Fixed #3648 (Internal error: Token::Match called with varid 0)"
...
This reverts commit 1fa1ddccba
.
2012-03-20 19:00:16 +01:00
Daniel Marjamäki
1fa1ddccba
Fixed #3648 (Internal error: Token::Match called with varid 0)
2012-03-20 18:58:27 +01:00
PKEuS
cb2a754983
Implemented support for C++11 right angle brackets (>>)
...
Implemented support for linkage between < and > (Information: It is possible that under certain circumstances comparision operators are linked, since its sometimes difficult to separate between them.)
2012-03-19 18:45:47 +01:00
PKEuS
7055526f4a
Fixed #3672 : bitwise and operator in if/while does no longer confuse setVarId code
...
Improvements to CheckUnusedVar:
- Improved handling of arrays of struct/class instances
- Differ between addressof and bitwise-and operator
- Made some members private to improve encapsulation
- Replaced some simple patterns by direct function calls
- Removed an unnecessary condition
2012-03-19 17:41:16 +01:00
Pierre Schweitzer
544a1f714e
Updated error message about not taking return value from function that returns allocated memory
2012-03-18 13:45:50 +01:00
Daniel Marjamäki
1e125dc017
Fixed #3671 (False positive: Resource leak: fd)
2012-03-18 11:54:09 +01:00
Daniel Marjamäki
29063098bf
Fixed #3670 (false positive: Allocation with open never assigned)
2012-03-18 07:49:22 +01:00
PKEuS
e3b3b7b62f
Refactorizations on buffer overrun check:
...
- Replaced a few indendation counters by smaller and faster code
- Make use of safer nextArgument() function instead of some local implementations
- Replaced some simple patterns by direct function calls
- Made a strncpy/strncat search pattern more generic
- Replaced offset variable by incrementation of Token* to avoid subsequent calls to tokAt
- Increased data encapsulation in header
2012-03-17 21:55:08 +01:00
PKEuS
3af32b0da2
Refactorizations in tokenizer:
...
- getSourceFilePath returns a const reference now
- Replaced some simple patterns by string comparisions/direct function calls
- Replaced a few indendation counters by easier code
- Replaced one offset variable by token pointer to avoid subsequent calls to tokAt with the same number
2012-03-17 11:48:40 +01:00
PKEuS
60cc8296c3
Fixed crash in checkmemoryleak.cpp reported by HeisSpiter
2012-03-17 11:34:27 +01:00
PKEuS
fb4709f1be
Refactorizations in checkmemoryleak:
...
- Replaced two indendation counters and one variable storage by symboldatabase functions
- Removed zero-element at end of two static arrays
- More accurate algorithm for finding a parameter by varid
- Replaced some simple tokens by direct string comparision
- Made some functions in checkmemoryleak.h private to improve encapsulation
2012-03-16 19:52:18 +01:00
Daniel Marjamäki
2757229064
Fixed #3666 (False positive: Uninitialized variable (taking address))
2012-03-16 17:28:05 +01:00
PKEuS
0340764726
Improved nullpointer check: Detect dereferences by streams ( #410 )
...
Refactorizations:
- Replaced || by %oror% in Token::Match patterns
- Replaced some simple patterns by direct comparisions, replaced Match call with simpleMatch
- Increased data encapsulation by making more members private in CheckNullpointer
2012-03-16 17:24:03 +01:00
PKEuS
4587a1a06c
Fixed recently introduced assertion failure in debug mode
2012-03-15 21:06:24 +01:00
PKEuS
b6057a1148
Improved CheckOther::checkIncorrectLogicOperator:
...
- Added a lot of additional pattern
- Rewrote error messages to make them more understandable and better fitting to the situation. (Fixed #3664 )
- Cleanup in unit tests
Improved message of static string comparision check
2012-03-15 20:38:28 +01:00
Daniel Marjamäki
fc84f55f80
Fixed #3536 (Preprocessor #if fails to correctly compare two #defined values)
2012-03-15 20:04:34 +01:00
Daniel Marjamäki
813a193bb6
Merge pull request #84 from HeisSpiter/master
...
Fix for bug #3439
2012-03-15 11:37:42 -07:00
Daniel Marjamäki
555e8c6efc
Fixed #36221 (Input streams: Wrong token list simplification)
2012-03-15 19:09:36 +01:00
Pierre Schweitzer
e9a696f70e
Set back getErrorMessages() as private
2012-03-15 18:52:51 +01:00
Pierre Schweitzer
f3b1c46c7d
Define error messages for --errorlist for CheckMemoryLeakNoVar class
2012-03-14 23:44:04 +01:00
Pierre Schweitzer
81318b3f4a
Detect and display an error on leaks due to return of a function that allocates something is ignored.
...
This fixes #3439
2012-03-14 22:24:43 +01:00
Daniel Marjamäki
45759f6f7d
CheckMemoryLeak: report debug warning when variable id is 0. Ticket #3527
2012-03-14 18:54:34 +01:00
Daniel Marjamäki
4f3878eb1e
Fixed #3569 (false negative: buffer access out of bounds)
2012-03-13 21:30:03 +01:00
Daniel Marjamäki
a9480ca0c1
CheckBufferOverrun: move condition before loop
2012-03-13 21:19:10 +01:00
PKEuS
7cfffc9c9d
Improved CheckOther::checkIncorrectLogicOperator:
...
- Implemented automatic swapping of conditions and operands
- Added several patterns
- Added support for conditions outside of if/while
2012-03-12 19:06:30 +01:00
Daniel Marjamäki
a9d56f2738
Tokenizer: simplify known variable value inside conditional block
2012-03-12 17:32:30 +01:00
PKEuS
533db6421f
Renamed ID uninitialized member variables in constructors to "uninitMemberVar" to avoid ambiguity ( #2715 )
...
Refactorizations:
- Replaced another single-token-pattern
- Replaced a "continue" with a "break" statement, because its safe to assume that only one variable with a specific ID can exist in a scope
2012-03-11 14:29:00 +01:00
PKEuS
6f164de609
Improved static string comparision check: Implemented #3214
...
Fixed false negative on argument count of fnprintf/snprintf when first variable argument is a string. (#3655 )
Uncommented call of virtualDestructorError in getErrorMessages in checkclass.h
Refactorizations:
- Rearranged code in checkother.h to make ordering more consistent and to increase encapsulation of private data
- Replaced some single-token-patterns
2012-03-11 11:01:39 +01:00
Daniel Marjamäki
3f1ab5af9b
charvar: dont write warning about char type array index when array is small and the full valid range is accessible with the char type. If there are out of bounds access then, it is not because the type of the variable.
2012-03-10 12:19:28 +01:00
Simon Martin
190cba519d
Fixed shadowing warning
2012-03-09 08:06:58 +01:00
August Sodora
e0bee0e037
Fixed #3567 (False positives in boolean expressions)
2012-03-07 20:31:23 +01:00
Daniel Marjamäki
680883a6a7
fixed #3649 (False Positive: Uninitialized variable using operator assignment)
2012-03-06 18:51:50 +01:00
PKEuS
ef6e381d47
Improved bitwise on boolean check to make it working on more code patterns
...
Refactorizations in checkother.cpp:
- Make use of symboldabase instead of: indentation counters, manual detection of variable declarations
- Removed some indexing variables to reduce calls to tokAt and the numbers given to this function
- Use tok->nextArgument() to jump to a specific argument
2012-03-03 21:14:20 +01:00
Stefan Weil
2ce5b80599
Fix compilation with HAVE_RULES=yes
...
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2012-03-01 20:07:00 +01:00
PKEuS
1ef99e2f21
Improved checkautovariables:
...
- Added support for checking a few more code patterns
- Simplified code by using more information from the symboldatabase
- Moved redundant part of c_str-check to checkstl
Two fixes according to output of pvs studio in testsimplifytokens.cpp
2012-03-01 18:38:20 +01:00
PKEuS
c61762f454
Refactorized doAssignement:
...
- Enhanced performance by directly iterating through the token list instead of index access
- Added more allocation functions
- Simplified code
Replaced avoidable strlen call in cppcheckexecutor.cpp
2012-02-29 20:57:48 +01:00
Daniel Marjamäki
db1205cdb3
Preprocessor: better handling of '#if A==1'
2012-02-29 19:08:01 +01:00
Daniel Marjamäki
527d3791e6
Fixed #3596 (memory leak false positive on libedit sources)
2012-02-27 18:55:36 +01:00
Ettl Martin
2ac907b40a
fixed compiler warning (gcc-4.6.1)
2012-02-27 14:13:34 +01:00
Ettl Martin
013ef6157d
fixed regression
2012-02-26 13:35:35 +01:00
PKEuS
1747813a8b
Added check for invalid pointer casts ( #1255 )
...
Detect sign extension problems when variable is a reference (#3637 )
Refactorizations:
- Tokenizer::getFiles returns a reference instead of a pointer, because its guaranteed that no nullpointer is returned
- Remove signed/unsigned in one step for "%type% signed|unsigned"
- Fixed recently introduced compiler warning in symboldatabase.cpp
2012-02-26 11:56:32 +01:00
Daniel Marjamäki
385c9d341d
Fixed #3633 (False positive: struct array not assigned a value)
2012-02-26 08:29:02 +01:00
Edoardo Prezioso
4d3013d43d
Improve 'Tokenizer::elseif' code in order to not touch 'else if' inside a macro parenthesis.
2012-02-26 02:50:48 +01:00
Daniel Marjamäki
bbfae8e3ae
Fixed #3583 (False positive Variable X is assigned a value that is never used)
2012-02-25 12:56:33 +01:00
PKEuS
9431fb1b7e
Improved STL checks:
...
- Added performance checking for .c_str() for return values and function parameters (#1079 )
- Added more containers (basic_string, C++11 containers) and more functions to checking (.at, .resize, .reserve, ...)
- Make use of symboldatabase in missingComparision check
2012-02-25 12:43:27 +01:00
PKEuS
9a5f66030c
Improved unused private function check:
...
- Fixed #3628
- Added support for friend
Improved symbol database:
- friend scopes are now set
- Added findScopeByName function
Refactorizations:
- Removed some unnecessary "virtual" keywords
- Removed unnecessary _filename member variable, pass it as argument instead
- Made CppCheck::replaceAll static, since it is independant from a specific CppCheck instance, Pass string to be modified by reference
2012-02-24 20:45:56 +01:00
PKEuS
9f42ce91a1
Refactored STL container usage in CLI.
...
Pathmatcher masks are converted to lowercase only once when instance is created
2012-02-19 17:22:59 +01:00
Daniel Marjamäki
39b0f1ba95
Fixed #3608 (unreadVariable when variable used in inline assembly)
2012-02-19 16:04:35 +01:00
Daniel Marjamäki
69d03bac34
Fixed #3603 (False Positive: Variable is assigned a value that is never used)
2012-02-19 15:25:46 +01:00
PKEuS
b1ff900aaa
Some refactorizations
2012-02-18 23:43:51 +01:00
Edoardo Prezioso
d7a918e549
Fixed ticket #3616 (segmentation fault of cppcheck).
2012-02-18 17:58:50 +01:00
Daniel Marjamäki
a118f82ca7
Tokenizer::simplifyVarDecl: Don't simplify inside parenhteses
2012-02-18 15:05:29 +01:00
PKEuS
4b52df675a
Some refactorizations
2012-02-18 14:44:04 +01:00
Daniel Marjamäki
0705dbd34a
Tokenizer::simplifyCasts: don't simplify 'f((double)(v1)*v2)' to 'f(*v2)'
2012-02-18 14:26:00 +01:00
PKEuS
2ba2a4e6ae
Some refactorizations
2012-02-18 11:55:05 +01:00
Daniel Marjamäki
bfb4dd6425
Fixed #3529 (False 'Boolean result is used in bitwise operation' in a template)
2012-02-18 08:51:09 +01:00
Edoardo Prezioso
a08dab3776
Fixed warning about order of variable initialisations in Settings constructor.
2012-02-17 21:22:42 +01:00
Edoardo Prezioso
17cd5ec906
Fixed ticket #3604 (cppcheck(1.53) crash).
2012-02-17 21:14:38 +01:00
PKEuS
485e836535
Refactorizations in MathLib.
...
Fixed recently introduced bug on floating point numbers with multiple preceding zeros (for example 004.123)
2012-02-17 19:54:53 +01:00
PKEuS
8ea5df62c4
- Improved support for numbers in code:
...
-- Use MathLib::toLongNumber for conversion in tokenizer (Fix #3610 )
-- Handle octal numbers in tokenizer
- Refactorizations in MathLib::toLongNumber and Settings
2012-02-17 15:47:08 +01:00
Zachary Blair
9d75641ef8
Fixed #3598 (false positive: (error) Memory pointed to by 'a' is freed twice.)
2012-02-16 21:03:38 -08:00
Ettl Martin
d8c24c3afc
fixed wrong spelled word.
2012-02-15 22:57:20 +01:00
Daniel Marjamäki
04e4b5d14d
lib: fix for my previous commit. If there are no dependencies then don't insert dependencies
2012-02-15 08:13:42 +01:00
Daniel Marjamäki
8f3d511871
lib: allow that file dependencies are taken from Cppcheck after a check
2012-02-15 08:08:28 +01:00
PKEuS
2e13a51d08
Fixed #3591
2012-02-13 19:46:45 +01:00
PKEuS
df0cb89a40
Fixed compiler error
2012-02-13 18:48:44 +01:00
PKEuS
bb319c1c96
Improved Tokens and Tokenizer:
...
- Better handling of deleteThis() as last element of token list
- Code simplified
2012-02-13 17:44:08 +01:00
Daniel Marjamäki
da8abeb63c
Fixed #3584 (2 internal errors : Token::Match called with varid 0)
2012-02-12 17:30:47 +01:00
Erik Lax
f1dbd1a89a
Fixed #3518 (False negative: Possible null pointer dereference (in the same condition))
2012-02-11 16:15:38 +01:00
PKEuS
42f418db54
- Improved nullpointer check: Fixed #1171
...
- Improved accuracy of function analysis in symboldatabase
- Code cleanups
2012-02-11 12:26:48 +01:00
Daniel Marjamäki
c33dbb80fb
1.53: Updated version info
2012-02-11 08:17:07 +01:00
Daniel Marjamäki
4511d0fe5f
fixed cppcheck inconclusive warning, possible null pointer dereference otherwise condition is redundant
2012-02-11 08:07:19 +01:00
Daniel Marjamäki
bbb707c460
Fixed #3587 (Wrong tokenizer simplification - variable assigned by operator>>)
2012-02-07 08:05:50 +01:00
Daniel Marjamäki
47c7e346aa
Uninitialized variables: Another fix for false positives when it's known that inner conditions are true
2012-02-06 19:26:28 +01:00
Daniel Marjamäki
d6a887e1f9
Uninitialized variables: Fixed false positives when goto is simplified and inner condition is known to be true/false
2012-02-06 07:32:29 +01:00
Daniel Marjamaki
fbb5ebe3c6
Fixed #3577 (Preprocessor: Defines given on command line are not used in the code)
2012-02-05 20:48:28 +01:00
Zachary Blair
8f827aa65f
FIxed #3581 (double free false positive when exception rethrown)
2012-02-04 11:24:40 -08:00
PKEuS
d5c2c7db88
- Moved checkCatchExceptionByValue from CheckOther to CheckExceptionSafety
...
- Fixed false positive: throw outerCatchVar; in inner catch is now correctly handled
- Added eTry and eCatch to Scope::isLocal -> Scopes inside catch are now detected by symbol database
2012-02-02 16:17:42 +01:00
Daniel Marjamäki
2be85e9d37
Fixed #3538 (false positive caused by bad tokenizer simplification)
2012-02-01 21:13:26 +01:00
Daniel Marjamäki
036b2a84bf
Fixed #3570 (False Postive for 'nullPointer' check)
2012-02-01 20:38:47 +01:00
Edoardo Prezioso
f9ade9562c
Fixed ticket #3572 (segmentation fault).
2012-01-31 22:32:28 +01:00
Edoardo Prezioso
bc034095f1
Fixed ticket #3543 (segmentation fault of cppcheck).
2012-01-31 19:34:55 +01:00
Edoardo Prezioso
66e1761ffe
Fixed ticket #3571 (segmentation fault of cppcheck while scanning gcc-testsuite).
2012-01-31 18:42:19 +01:00
PKEuS
22c1ce8a68
Fixes for #3480 and #3568 .
2012-01-31 15:49:34 +01:00
Edoardo Prezioso
9f81b48dc1
Fixed ticket #3558 (Tokenizer: improve simplifyVarDecl to take count of undefined size VLA's).
2012-01-30 23:41:43 +01:00
Edoardo Prezioso
0fd7504295
Related to ticket #3560 (conditional pointer user): remove also dead code in the lower scope if the actual scope isn't special.
2012-01-30 21:43:23 +01:00
Edoardo Prezioso
11e724df46
Tokenizer::simplifyTypedef: some optimizations on new code.
2012-01-30 17:08:35 +01:00
Edoardo Prezioso
7cd36f44b6
Tokenizer::simplifyTypedef: 'tokAt(offset)=>tokOffset': finished.
2012-01-30 16:38:04 +01:00
Edoardo Prezioso
67d095a10e
Tokenizer::simplifyTypedef: 'tokAt(offset)=>tokOffset': work in progress..
2012-01-30 16:20:15 +01:00
Edoardo Prezioso
7c596a2b90
Tokenizer::simplifyTypedef: 'tokAt(offset)=>tokOffset': work in progress..
2012-01-30 16:18:42 +01:00
Edoardo Prezioso
187c463475
Tokenizer::simplifyTypedef: 'tokAt(offset)=>tokOffset': work in progress..
2012-01-30 16:17:57 +01:00
Edoardo Prezioso
b366bf69ad
Tokenizer::simplifyTypedef: 'tokAt(offset)=>tokOffset': work in progress..
2012-01-30 16:16:08 +01:00
Edoardo Prezioso
fa077ede94
Tokenizer::simplifyTypedef: 'tokAt(offset)=>tokOffset': work in progress..
2012-01-30 15:08:01 +01:00
Edoardo Prezioso
9438d1c2d0
Tokenizer::simplifyTypedef: 'tokAt(offset)=>tokOffset': work in progress..
2012-01-30 15:04:41 +01:00
Edoardo Prezioso
fe3fd1a073
Tokenizer::simplifyTypedef: redundant assignment to 'offset'.
2012-01-30 13:33:27 +01:00
Edoardo Prezioso
5a1585dcfb
Tokenizer::simplifyTypedef: 'tokAt(offset)=>tokOffset': work in progress..
2012-01-30 13:24:31 +01:00
Edoardo Prezioso
d9e9c0aceb
Tokenizer::simplifyTypedef: 'tokAt(offset)=>tokOffset': in progress..
2012-01-30 13:15:25 +01:00
Edoardo Prezioso
017f0090fa
Tokenizer::simplifyTypedef: 'tokAt(offset)=>tokOffset': begin conversion.
2012-01-30 13:10:50 +01:00
Edoardo Prezioso
e530d770e1
Tokenizer::simplifyTypedef: to be sure there are no problems, promote to 'int' the variable 'offset'.
2012-01-30 13:04:10 +01:00
Edoardo Prezioso
a93af0dba6
Tokenizer:: Use 'link' instead of 'parens' variable.
2012-01-30 12:22:37 +01:00
Daniel Marjamäki
9df6088ddd
Revert "really fix #3527 (Internal error. Token::Match called with varid 0. Please report this to Cppcheck developers)"
...
This reverts commit a37031944e
.
I don't want this hard coding of macro names. Feel free to come with a more generic solution if you want.
2012-01-30 06:15:41 +01:00
Robert Reif
415aaca6dd
Merge branch 'master' of git://github.com/danmar/cppcheck
2012-01-28 20:59:51 -05:00
Robert Reif
a37031944e
really fix #3527 (Internal error. Token::Match called with varid 0. Please report this to Cppcheck developers)
2012-01-28 20:58:51 -05:00
Edoardo Prezioso
697af4f7be
Improve 'CheckMemoryLeakInClass::check'.
2012-01-28 23:24:00 +01:00
Edoardo Prezioso
fa77f98b1c
Tokenizer: it's possible to set null lower bound for eraseDeadCode when used inside simplifyFlowControl.
...
Remove now unused 'beginindent' and moved 'goto' simplification together with 'return' group.
2012-01-28 21:37:30 +01:00
Edoardo Prezioso
bb703f4d0b
Fixed: (warning) Found simple pattern inside Token::Match() call.
2012-01-28 20:31:12 +01:00
PKEuS
91a01a0a0d
- checkUnsignedDivision checks for variable/variable (inconclusive). General bailout for if-statements.
...
- Make use of recently implemented symboldatabase functions (catch-support, reference-support)
- Other refactorizations
2012-01-28 12:32:28 +01:00
Daniel Marjamäki
46b8dc5e16
Fixed #3527 (Internal error. Token::Match called with varid 0. Please report this to Cppcheck developers)
2012-01-28 10:00:41 +01:00
Daniel Marjamäki
01f6bbda62
Null pointers: fixed false positive when '?' is used in return statement. Ticket: #3560
2012-01-28 08:06:03 +01:00
Robert Reif
42afd2d63a
fix #3561 (SymbolDatabase: throw foo; creates a variable with type throw)
2012-01-27 19:24:01 -05:00
Edoardo Prezioso
8289e2428d
Tokenizer: Stylish change to condition.
2012-01-27 17:12:28 +01:00
Edoardo Prezioso
0dd4b9ad3a
Temporary workaround to ticket #3459 (Simplify goto before loop) :
...
don't simplify code which contains the label pointed by 'goto'.
2012-01-27 16:56:12 +01:00
Edoardo Prezioso
6314d04a04
Tokenizer: Add 'BOOST_FOREACH' pattern where it was missing.
2012-01-27 16:47:26 +01:00
Edoardo Prezioso
ca8e8d26c7
Tokenizer: extract realloc simplification and simplify also when each argument is done by more than one token.
...
Restyling of a comment in tokenize.h.
2012-01-27 13:56:06 +01:00
Edoardo Prezioso
421ae9df03
simplifyCondition: handle also '( a || true || b)' -> '(true)' and '( a && false && b)' -> '(false)'.
...
Clarify a comment about previous commit.
2012-01-26 23:14:44 +01:00
Edoardo Prezioso
0f1f3c0f5f
Tokenizer::removeRedundantCondition: refactoring due to various reasons.
...
1) Remove the dead code with 'eraseDeadCode', not with 'eraseTokens' because of the possible presence of labels.
2) It's impossible that in tokenizer there is pattern like 'if (true|false) {code;} else if (cond) {code_cond;}' because the function 'Tokenizer::elseif' adds '{' between 'else' and 'if', hence a code path is redundant, so it's removed from code.
2012-01-26 22:32:11 +01:00
Edoardo Prezioso
b6763313c5
Tokenizer::simplifyQuestionMark: use links instead of indentation level number.
2012-01-26 17:55:22 +01:00
Edoardo Prezioso
6e164ae7ed
Fixed ticket #3557 (Tokenizer: simplification of '[]' doesn't work well):
...
extract undefined size array simplification and handle multiple arrays and combos between pointers and arrays, don't handle the definitions as arguments of function.
2012-01-26 17:25:52 +01:00
PKEuS
6906001366
Added support for references to symboldatabase
2012-01-26 17:04:25 +01:00
PKEuS
5c2af0b2e3
- initialising std::string with 0 in initialisation list is partially detected in nullpointer check ( #3520 )
...
- executionpath checking makes use of symboldatabase
- CheckExceptionSafety::checkRethrowCopy makes use of symboldatabase
2012-01-26 16:50:59 +01:00
Edoardo Prezioso
f428a29d8e
Improve simplifyReturnStrncat when each argument is not composed by one token.
2012-01-26 16:09:32 +01:00
Edoardo Prezioso
20372eecfa
Fixed gcc warning: variable which shadows a member of 'this'.
2012-01-26 15:20:20 +01:00
Edoardo Prezioso
b6a0896ce6
Change 'simplifyReturn' to 'simplifyReturnStrncat' because it's not clear what this function does.
2012-01-26 11:49:08 +01:00
Robert Reif
4d56395504
symbol database: add simple try/catch tests
2012-01-25 22:48:18 -05:00
Robert Reif
6b0aff487f
symbol database: add preliminary support for throw/catch block scopes. Just like the rest of cppcheck, ... is not handled properly for variables. Deep namespaces are also not handled properly yet. This is not an issue because this new capability is not used by any checks so it should be harmless.
2012-01-25 22:05:29 -05:00
PKEuS
42a75692d4
Improved nullpointer check:
...
- More accurate checking for dereferences and non-dereferences
- improved checking for nullpointer dereferences after return statement
- Supports pointer dereferences by std::string
- Code optimization/refactorization
2012-01-25 15:16:22 +01:00
Zachary Blair
589a2461bd
Fixed ticket #3550 (false positive: (error) Memory pointed to by 'pxpm' is freed twice)
2012-01-24 22:43:44 -08:00
Robert Reif
b6afa8a025
symbol database: add missing variable flag debug printing
2012-01-24 20:45:38 -05:00
Daniel Marjamäki
8e2c40b4b3
Fixed #3323 (#undef needs different handling)
2012-01-24 07:43:26 +01:00
Edoardo Prezioso
5953ed7318
Fixed ticket #3528 (Tokenizer: improve simplifyFunctionParameters to take count of square brackets)
2012-01-23 16:10:15 +01:00
Daniel Marjamäki
9f139cf414
Fixed #3509 (FP: Variable 'itemList' is not assigned a value, when << operator is used)
2012-01-23 08:02:59 +01:00
Daniel Marjamäki
9eb1a5864b
Fixed #3502 (segmentation fault of cppcheck (struct{x y:};))
2012-01-23 07:39:31 +01:00
Robert Reif
e39b70c1be
symbol database: add missing endl in debug dump
2012-01-22 22:32:53 -05:00
Daniel Marjamäki
f81557da50
Fixed #3508 (Symbol database: mixing up constructors and destructors)
2012-01-22 19:48:36 +01:00
Edoardo Prezioso
6cac600d37
Token::replace: Little style change.
2012-01-22 00:03:33 +01:00
Edoardo Prezioso
3a2ba173ac
Token::move|replace: update progressValues correctly.
2012-01-21 21:06:30 +01:00
Daniel Marjamäki
b8faee9d30
Fixed #3497 (False positive: Uninitialized variable)
2012-01-21 20:42:41 +01:00
PKEuS
36479499e7
- Solved FIXME: Made detection of code that is no pointer-dereference more robust, uncommented code (checknullpointer.cpp)
...
- Removed more indendation level counters
- Make use of symbol database more often
- Other refactorizations
2012-01-21 19:55:32 +01:00
PKEuS
87e19d2552
Refactorized check for dead pointers after throw:
...
- Less bailouts for inconclusive checking
- Support for static variables
- Changed severity to warning (error is not certain)
2012-01-21 19:11:06 +01:00
Edoardo Prezioso
b0dac2fa2e
Tokenizer::copyTokens: add optional parameter which preserve the line number differences between tokens to be copied.
2012-01-21 17:18:16 +01:00
Ahti Legonkov
78461093f0
Fixed #3531 (When macro definition contains parenthesis, the #defined symbol does not get #defined.)
2012-01-21 12:51:54 +01:00
PKEuS
96ae010e48
- Correctly set Scope::function variable in symboldatabase
...
- Refactorizations
- Fixed some cppcheck warnings
2012-01-21 10:08:09 +01:00
Zachary Blair
0415444e28
Merge branch 'master' of github.com:danmar/cppcheck
2012-01-19 23:02:33 -08:00
Zachary Blair
b89adff9fd
Fixed Ticket #3300 (false negative: doublefree of pointer)
2012-01-19 22:59:54 -08:00
seb777
9be2d1cc62
It is a good practice to clear container after deleted all the items
2012-01-19 12:41:14 +01:00
Daniel Marjamäki
525e7fba20
Fixed #3490 (False positive: sscanf with %c)
2012-01-18 23:57:08 +01:00
Stefan Weil
7607e4c68d
Fixed #3519 (Wrong line number in warning charBitOpError)
2012-01-18 13:09:46 +01:00
seb777
0be8af5214
Fix ticket #3530 (Add some windows data types to tokenizer)
2012-01-18 12:57:41 +01:00
Edoardo Prezioso
9019190a37
Tokenizer: various improvements to code.
2012-01-17 11:51:11 +01:00
Edoardo Prezioso
40739eb3fb
Reverted some changes in commits 4b05c3e19f
and 4b08b13845
.
2012-01-16 11:44:31 +01:00
Edoardo Prezioso
4b05c3e19f
Tokenizer::simplifyIfAddBraces: improve comments; handle independently 'a = { .. };'; reduce use of 'Token::(simple)Match' functions.
2012-01-15 19:53:11 +01:00
Edoardo Prezioso
4b08b13845
Tokenizer: reduce usage of Token::Match in some cases.
2012-01-15 15:00:52 +01:00
Edoardo Prezioso
963f6ce3ef
Tokenizer: report syntaxError if there's nothing after 'if|for|while ()' and if there's nothing inside round brackets;
...
TestTokenizer: change test cases accordingly;
TestSimplifyTokens: ditto.
2012-01-15 14:50:01 +01:00
Daniel Marjamäki
a6d96f5b72
Fixed #3496 (false positive: syntax error)
2012-01-15 14:33:53 +01:00
PKEuS
461565c50a
Fixed #3517 and #3513
2012-01-15 12:32:02 +01:00
PKEuS
c294b15360
Removed more indendation counters.
2012-01-15 12:31:49 +01:00
Daniel Marjamäki
d891d1ce5d
Fixed segfault in TestTokenizer::cpp0xtemplate3
2012-01-15 12:14:47 +01:00
Daniel Marjamäki
7e3735988d
TemplateSimplifier : Fixed bug in recent commit.
2012-01-15 11:58:07 +01:00
Edoardo Prezioso
4399fca769
Code style: Use 'linkAt' instead of 'tokAt(..)->link'.
2012-01-14 15:21:45 +01:00
Reijo Tomperi
dd18f595b1
Fix #3516 (inaccurate warning: "An unsigned variable will always be positive" (unsigned n; if (n >=0);))
...
http://sourceforge.net/apps/trac/cppcheck/ticket/3516
2012-01-14 12:50:09 +02:00
Edoardo Prezioso
6a248c35b5
Fixed ticket #3512 (segmentation fault of cppcheck ( 1 *p = const))
2012-01-14 00:43:58 +01:00
Edoardo Prezioso
37f3aa1528
Fixed ticket #3486 (segmentation fault of cppcheck)
2012-01-13 23:53:53 +01:00
Daniel Marjamäki
0648b3ed5e
Fixed #3504 (segmentation fault of cppcheck)
2012-01-13 07:57:12 +01:00
Daniel Marjamäki
47716ee4ca
Fixed #3497 (False positive: Uninitialized variable)
2012-01-13 07:26:56 +01:00
seb777
8754caa36d
Fix ticket #3483 (POSIX.1-2008 - obsolete functions)
...
From POSIX.1-2008 specification (see http://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xsh_chap01.html#tag_22_01_01_04 ):
- remove obsolete functions ctime, asctime, rand, tmpnam (non reentrant functions check)
- add obsolete base functions (obsolete functions check):
- rand_r
- tmpnam, tmpnam_r
- utime
- asctime, asctime_r
- ctime, ctime_r
- update unit tests (non reentrant function)
- update messages (cosmetic) (obsolete functions check)
2012-01-12 22:28:12 +01:00
Robert Reif
6f3807d915
add some more windows types
2012-01-10 21:55:24 -05:00
Reijo Tomperi
be7691c7b4
Refactoring: Move rest of the template simplification into TemplateSimplifier
...
simplifyCalculations() was temporarily moved into TemplateSimplifier also, it should be moved to a better place.
2012-01-09 21:33:11 +02:00
Reijo Tomperi
756b8762ab
Catch InternalError by reference instead of creating a copy of it.
2012-01-09 18:30:36 +02:00
Edoardo Prezioso
2dd53ec966
Fixed ticket #3485 (segmentation fault of cppcheck ( {a:1;}; ))
2012-01-09 16:24:11 +01:00
Edoardo Prezioso
54f54761b4
Fixed ticket #3482 (segmentation fault of cppcheck ( switch(){case} ))
2012-01-09 14:37:20 +01:00
Edoardo Prezioso
57fcde8090
Fixed ticket #3481 (segmentation fault of cppcheck)
2012-01-09 13:39:02 +01:00
Edoardo Prezioso
a951d34aa8
Fixed ticket #3480 (segmentation fault of cppcheck)
2012-01-09 12:48:52 +01:00
Reijo Tomperi
194327048a
Add InternalError and change MathLib to throw it in case of an error.
...
- Previously MathLib errors did not provide a filename, but after this change at least source file name should be printed
and if token is provided, also line number should be printed.
- Change also Token to use InternalError
- Modify Cppcheck-class to catch InternalError instead of Token
- Run dmake to update Makefile
2012-01-08 22:19:44 +02:00
PKEuS
c273d6d31d
Refactorized checkautovariables.cpp. Removed indendation counters.
...
Fixed #3478
2012-01-08 15:32:22 +01:00
Kamil Dudka
e09b0330e4
Class: Don't warn about uninitialized union members because they are often combined with a second variable
2012-01-08 12:17:55 +01:00
Daniel Marjamäki
65ce55e675
Fixed #3472 (false positive: (error) Passing value 0 to log() leads to undefined result)
2012-01-08 12:07:25 +01:00
Daniel Marjamäki
ee55d3294a
Refactoring. Assume that .C files contain C code on case insensitive filesystems.
2012-01-08 10:34:31 +01:00
Daniel Marjamäki
304980848f
Fixed #3473 (False positive: variable is assigned value that is never used (used in return statement))
2012-01-08 08:44:18 +01:00
Daniel Marjamäki
70c83d9ca9
Fixed #3467 (False positive: Variable is not assigned a value (new))
2012-01-08 08:31:00 +01:00
Reijo Tomperi
3c0ada52e6
Refactoring: Extract sizeof simplifying from template simplifying
2012-01-08 00:21:12 +02:00
Reijo Tomperi
93e3e7361e
In unix .C is considered C++. Changed isC() and isCPP() to work like they were before refactoring.
2012-01-07 10:47:15 +02:00
Daniel Marjamäki
6a63104743
Fixed #3320 (False positive: Member variable is not initialized in the constructor (namespaces).)
2012-01-07 09:28:26 +01:00
Daniel Marjamäki
a5264f6395
Symbol database: dump if --debug and --verbose is given
2012-01-07 08:21:34 +01:00
Reijo Tomperi
2a79399a53
astyle fix
2012-01-06 21:57:59 +02:00
Reijo Tomperi
e91d239ea5
Refactor: Move file extension checks from Tokenizer to Path class. This has also functional change as now also file.JAVA is considered a Java file.
2012-01-06 21:56:28 +02:00
PKEuS
8378153669
Fixed missing include
2012-01-06 18:11:06 +01:00
Daniel Marjamäki
de4a64332e
Refactoring: Copy FileLister::acceptFile to Path::acceptFile. Use Path::getFilenameExtension and Path::acceptFile in Tokenizer. Use Path::acceptFile in CppCheck::processFile instead of hardcoded handling.
2012-01-06 17:31:10 +01:00
Daniel Marjamäki
9a102702cb
Refactoring: Disable debug warnings when file extension is neither .c nor .cpp. To somewhat prevent that people fix java/c# specific debug warnings.
2012-01-06 16:08:08 +01:00
Edoardo Prezioso
05f16a25af
Fixed ticket #2405 (debug messages provide incorrect file:line information)
2012-01-06 15:15:52 +01:00
Daniel Marjamäki
bd8c21fc6b
Refactoring: Made Preprocessor::simplifyCondition nonstatic
2012-01-06 08:42:07 +01:00
Daniel Marjamäki
66472b09c0
Refactoring: Made Preprocessor::match_cfg_def nonstatic
2012-01-06 08:15:48 +01:00
Daniel Marjamäki
e4875178fa
Refactoring: Removed redundant settings parameter for Preprocessor::removeComments
2012-01-06 08:09:53 +01:00
Daniel Marjamäki
94d220e370
Refactoring: Made Preprocessor::getcode nonstatic
2012-01-06 08:01:50 +01:00
Reijo Tomperi
eda04ad906
Refactoring: Move template code into templatesimplifier: simplifyTemplatesExpandTemplate()
2012-01-05 22:45:19 +02:00
Daniel Marjamäki
07776e90ad
Preprocessor: cleanup
2012-01-05 18:37:15 +01:00
Daniel Marjamäki
c5f62c19d6
astyle formatting
2012-01-05 18:24:27 +01:00
Daniel Marjamäki
56a5e08f6b
Use symbol database dump code written by Robert Reif. The symbol database is dumped if --debug is used.
2012-01-05 18:22:54 +01:00
Edoardo Prezioso
a7029291fd
Tokenizer::simplifyGoto: process also derived class/structs.
2012-01-04 17:08:53 +01:00
Edoardo Prezioso
b0e4dc3ab8
Refactoring: replace forgotten code with function call 'simplifyRedundantConsecutiveBraces'.
2012-01-04 16:47:36 +01:00
Edoardo Prezioso
6f9cd110d0
Improve Tokenizer: improve 'simplifyDoublePlusAndDoubleMinus' when there are negative numbers.
2012-01-04 13:45:27 +01:00
Edoardo Prezioso
75fbe310ff
Extract various functions inside the Tokenizer class and fix tokenization of 'return __LINE__ ;'.
2012-01-04 12:57:58 +01:00
PKEuS
eabdc9082e
Fixed false positives related to %*[] in scanf format string ( #3468 )
2012-01-04 11:22:42 +01:00
Reijo Tomperi
0369681a2c
Refactoring: Move template code into templatesimplifier: simplifyTemplatesGetTemplateNamePosition()
2012-01-03 23:49:50 +02:00
Reijo Tomperi
ac290b1a8a
Refactoring: Move template code into templatesimplifier: simplifyTemplatesUseDefaultArgumentValues(), simplifyTemplatesInstantiateMatch()
2012-01-03 23:35:06 +02:00
PKEuS
756ee800b0
Use std::stack instead of std::vector Tokenizer::createTokens. Removed #pragma warning(disable: 4503)
2012-01-03 11:46:35 +01:00
Edoardo Prezioso
c76f06c01b
Fixed ticket #3447 (Improve void CheckStl::if_find())
2012-01-02 23:12:59 +01:00
Reijo Tomperi
16fb1801e1
Refactoring: Move template code into templatesimplifier: simplifyTemplatesGetTemplateDeclarations(), simplifyTemplatesGetTemplateInstantiations()
2012-01-02 23:05:27 +02:00
Reijo Tomperi
37269d0c28
Refactoring: Move template code into templatesimplifier: simplifyTemplatesExpandSpecialized()
2012-01-02 22:53:13 +02:00
Reijo Tomperi
8084bc80fc
Refactoring: Move template code into templatesimplifier: removeTemplates()
2012-01-02 22:46:43 +02:00
Reijo Tomperi
e9071a8bb6
Refactoring: Move code into templatesimplifier: templateParameters()
2012-01-02 22:43:38 +02:00
Reijo Tomperi
d26bcfe8d5
Refactoring: Move code into templatesimplifier
2012-01-02 22:37:32 +02:00
Daniel Marjamäki
e4f3f91c18
Reverted 9aa8a496
. I don't know why I made this fix.
2012-01-02 19:45:20 +01:00
Edoardo Prezioso
94a2287370
Revert 'using' changes as it was until some time ago.
2012-01-02 19:27:32 +01:00
PKEuS
9c423b82c1
Refactorizations in preprocessor.cpp
2012-01-02 15:52:19 +01:00
PKEuS
621d43e9e4
Fixed #3461 : Support for %m* on scanf-functions
2012-01-02 14:05:58 +01:00
Daniel Marjamäki
906c2b70ac
Fixed #3445 (Problems with lib/standards.h)
2012-01-02 13:36:17 +01:00
PKEuS
08805dd9fe
Fixed compiler errors with GCC
2012-01-02 13:10:35 +01:00
PKEuS
38ddcde7b0
- Refactorizations in preprocessor.cpp and tokenizer.cpp
...
- Bugfix: tok->stringify(tok) returns now "".
- Removed most of the inline-asm handling in preprocessor; improved the remaining handling of #asm/#endasm: Simplified to "asm(...);" statement
2012-01-02 12:58:34 +01:00
PKEuS
064e0ea0d0
Revert "- Refactorizations in preprocessor.cpp and tokenizer.cpp"
...
Committing with subversion seems to have issues. Sorry for that. I'll the changes again, now using git.
This reverts commit 69498de6ca
.
2012-01-02 12:10:53 +01:00
Philipp K
69498de6ca
- Refactorizations in preprocessor.cpp and tokenizer.cpp
...
- Bugfix: tok->stringify(tok) returns now "".
- Removed most of the inline-asm handling in preprocessor; improved the remaining handling of #asm/#endasm: Simplified to "asm(...);" statement
2012-01-02 03:15:02 -08:00
Daniel Marjamäki
01759b03f9
Fixed #3463 (Uninitialized variable variable pointer)
2012-01-02 11:25:13 +01:00
Daniel Marjamäki
112873e876
Revert "Fixed #3450 (CLI --report-progress is currently useless)"
...
This reverts commit e769fe6294
.
2012-01-02 07:42:39 +01:00
Daniel Marjamäki
e769fe6294
Fixed #3450 (CLI --report-progress is currently useless)
2012-01-02 07:27:45 +01:00
Edoardo Prezioso
b24e6e659e
C# simplification: remove 'using var;' code from the tokenizer.
2012-01-02 00:53:20 +01:00
Edoardo Prezioso
eb657034ba
Handle also C# multidimensional arrays with no specified dimension.
2012-01-02 00:22:45 +01:00
Reijo Tomperi
aa927d5aa3
Refactoring: Add new file lib/templatesimplifier.cpp
...
The plan is to move template simplification into this new class to take some lines from 10 000 line tokenizer.
2012-01-01 22:55:05 +02:00
PKEuS
f4703e026a
Refactoring various issues in cmdlineparser, cppcheckexecutor, check64bit and tokenize.
2012-01-01 21:17:16 +02:00
Reijo Tomperi
8cae17fda8
Update year to 2012
2012-01-01 01:05:37 +02:00
Erik Lax
3d0c1a3301
Fix #3457 (Statement following goto can be executed)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/3457
2012-01-01 00:11:03 +02:00
Edoardo Prezioso
38e0e25ce0
Fixed ticket #3448 (segmentation fault of cppcheck).
...
Add testcase related to previous commit (add 'A f(&x);' as declaration of variable).
2011-12-31 21:44:07 +01:00
Edoardo Prezioso
b9c796d9f8
- Re-elaborate 'using' keyword skipping in Tokenizer::setVarId and
...
Scope::getVariableList;
- Improve setVarId: add possible declaration: 'A f(&x);' and change from:
'if (...){}else{ continue; };' to: 'if (!...) continue;';
- Little refactoring of 'Tokenizer::removeTokens()'.
2011-12-31 21:36:19 +01:00
Daniel Marjamäki
8a6b1dc1c9
Fixed #3449 (segmentation fault of cppcheck)
2011-12-31 12:08:49 +01:00
Reijo Tomperi
0e1fb5f75b
astyle fix
2011-12-30 21:01:33 +02:00
Edoardo Prezioso
8f2ad53332
Add testcase for previous commit.
2011-12-30 18:47:42 +01:00
Edoardo Prezioso
0d3bf5340d
Improve varId and getVariableList filter, related to previous commit.
2011-12-30 18:13:42 +01:00
Edoardo Prezioso
8c68b811f3
Fix debug message "Scope::checkVariable found variable '%var%' with varid 0." in C# code with 'using %var%;'.
2011-12-30 13:01:09 +01:00
Edoardo Prezioso
873572d489
Improve C# simplification code with arrays of arrays.
2011-12-30 12:26:28 +01:00
Edoardo Prezioso
d0a3560c92
Rewrite Tokenizer::hasEnumsWithTypedef by using 'findmatch' in order to shorten the code.
2011-12-30 11:38:18 +01:00
Daniel Marjamäki
6a0c463ebd
#3382 (Clarify error message 'invalid deallocation')
2011-12-30 10:32:55 +01:00
Daniel Marjamäki
2ae48c7aef
Fixed #3454 (false positive: (style) Variable 'iFaktor' is assigned a value that is never used)
2011-12-30 09:47:15 +01:00
Reijo Tomperi
65b58bcb99
Partial fix to #3452 (ErrorLogger: complain/raise assertion when error message has extra newlines etc)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/3452
Add assert for newlines.
2011-12-30 01:22:16 +02:00
Marek Zmysłowski
dd8316474a
Fixed #3335 (new check: warn about potential missuse of isgraph-like functions)
2011-12-29 08:08:37 +01:00
Daniel Marjamäki
6d98406d71
Fixed #3444 (False positive using putenv)
2011-12-29 07:35:27 +01:00
Reijo Tomperi
90e1a397a2
Refactoring: Remove duplicate function from tokenizer: code_is_c() -> isC()
2011-12-29 00:36:16 +02:00
Reijo Tomperi
614c90b156
astyle fix
2011-12-28 23:57:54 +02:00
Edoardo Prezioso
09bfa66536
Always by pressing request, oops.
2011-12-28 22:51:13 +01:00
Edoardo Prezioso
ec0badb651
By pressing request, extract method: simplifyJavaAndCSharp.
2011-12-28 22:44:53 +01:00
Edoardo Prezioso
f9dd927ff4
Move non-C++ simplification outside big loop.
...
Related to commit b2f8161862
.
2011-12-28 22:12:54 +01:00
Reijo Tomperi
0a588496a0
Fix astyle and test failures.
2011-12-28 22:05:10 +02:00
Edoardo Prezioso
bbac4f1faf
Fix ticket #3451 (A (style) type warning witout message text).
2011-12-28 17:15:04 +01:00
Edoardo Prezioso
b2f8161862
Rewrite fix of ticket #3415 (Segmentation fault in new check for uninitialized variables):
...
new simplify: 'code ; ({ some_code ; });' to 'code ; some_code ;';
remove the sanity check in checkunusedvar, so when it crashes again it's easy to spot a bigger problem;
'internal' reported 'Token::Match' with simple pattern.
'Tokenizer::tokenize()' refactorings:
make one loop with many simple simplifications instead of many loops with one simplification.
some style changes.
2011-12-28 16:55:59 +01:00
Daniel Marjamäki
379440e2a4
CheckNullPointer: Use Tokenizer::IsScopeNoReturn
2011-12-28 08:17:58 +01:00
Daniel Marjamäki
7f42300c18
Null pointer: Removed old code for handling exit(). No testing affected.
2011-12-28 08:07:21 +01:00
Reijo Tomperi
1afd923d34
Fix bug in C# detection code. The test had a bug also, so it was not detected by the test.
2011-12-27 22:50:56 +02:00
Jonathan Neuschäfer
f10d314391
checkmemleak.h: use Tokenizer::isJavaOrCSharp()
2011-12-27 18:01:39 +01:00
Jonathan Neuschäfer
7a5627029f
tokenizer: proper checks for Java and C#
2011-12-27 18:01:39 +01:00
Jonathan Neuschäfer
103588c5bc
Refactoring: tokenizer: factor out fileExtension
2011-12-27 18:01:39 +01:00
Daniel Marjamäki
91874214d8
Refactoring: Added utility function that determine if scope ends with a call to a noreturn function
2011-12-27 18:00:12 +01:00
Daniel Marjamäki
32ed84f4c5
Uninitialized variables: Fixed false positives when using typeof()
2011-12-27 17:03:48 +01:00
Daniel Marjamäki
7c606c4e3b
Uninitialized variables: Fixed false positives for such code: 'if (cond1) { a=0; } if (cond1) { if (cond2) { use_a; } }'
2011-12-27 13:16:16 +01:00
Daniel Marjamäki
987392f254
Tokenizer: Better handling of array of function pointers
2011-12-27 11:56:40 +01:00
Daniel Marjamäki
0bf8e6206c
STL: Fixed false positive when using string::find
2011-12-27 11:02:43 +01:00
Daniel Marjamäki
f6b201bb3b
Uninitialized variables: Fixed false positives when pointer is dereferenced in unexpanded macro
2011-12-27 10:18:49 +01:00
Daniel Marjamäki
9593e14d72
Removed debug variables
2011-12-27 09:27:46 +01:00
Daniel Marjamäki
fdb6ee2ad7
Uninitialized variables: Fix false positives related to for loop
2011-12-27 08:18:05 +01:00
Daniel Marjamäki
5bac8eca37
Uninitialized variables: Fixed false positives (caused by my 'check more variables' commit)
2011-12-26 22:14:52 +01:00
Daniel Marjamäki
5aaec7adc5
Uninitialized variables: Better handling of variable usage in condition
2011-12-26 18:56:40 +01:00
Daniel Marjamäki
59cd099ba7
Uninitialized variables: Fixed false positives caused by recent commit when potentially uninitialized variable is read in condition
2011-12-26 18:32:42 +01:00
Daniel Marjamäki
481fa532a8
Uninitialized variables: Fixed false positives caused by recent improvement when variable is potentially initialized in else block.
2011-12-26 18:17:13 +01:00
Daniel Marjamäki
c56e2e7cf9
Uninitialized variables: Fixed false positives for unconditional inner scopes
2011-12-26 17:52:32 +01:00
Daniel Marjamäki
025518c474
Uninitialized variables: Fixed false positives when goto is used.
2011-12-26 16:46:10 +01:00
Daniel Marjamäki
8eb067358c
Uninitialized variables: check more variables
2011-12-26 14:01:46 +01:00
Daniel Marjamäki
f48edb63a3
Uninitialized variables: Improved checking when there are multiple if/else and a certain path causes an error
2011-12-26 12:36:35 +01:00
Daniel Marjamäki
2d05cae13b
Fixed #3201 (Checking iterators from different objects)
2011-12-26 10:30:39 +01:00
Daniel Marjamäki
fd4bc12ed3
Fixed #3438 (false positive: (style) Variable 'dBuf' is not assigned a value)
2011-12-26 08:12:23 +01:00
Daniel Marjamäki
fd3f384e24
astyle formatting
2011-12-26 07:58:02 +01:00
Daniel Marjamäki
096b22c46e
#3434 (False positive Returning reference to auto variable)
2011-12-26 07:44:16 +01:00
Daniel Marjamäki
385afffb14
Null pointers: show inconclusive errors if functions are called. Assume they won't assign the pointer. Ticket: #3443
2011-12-26 07:13:10 +01:00
Edoardo Prezioso
293437bdfc
Fixed ticket #3416 (segmentation fault of cppcheck)
2011-12-26 03:21:23 +01:00
Reijo Tomperi
e112bfdd47
Refactoring: Rename some variables and funtions in tokenizer.
...
Small logic change also for count variable to make new name more logical.
2011-12-26 00:06:27 +02:00
Daniel Marjamäki
b742c03b65
Fixed #3443 (false positives: possible null pointer dereference (calling unknown function))
2011-12-25 17:01:45 +01:00
Daniel Marjamäki
a4dcf8feea
Fixed #3435 (False positive: (warning) Member variable 'A::m_Vec' is not initialized in the constructor.)
2011-12-25 11:05:06 +01:00
Reijo Tomperi
347982a347
Refactoring: Extract several methods from tokenize()
2011-12-24 23:23:08 +02:00
Reijo Tomperi
8e6ebd4a22
Refactoring: Extract method: simplifyDoublePlusAndDoubleMinus()
2011-12-24 22:51:55 +02:00
Daniel Marjamäki
c81a055caa
C++ Builder: Fixed compiler error (weird error)
2011-12-24 08:10:16 +01:00
Reijo Tomperi
6155932207
Refactoring: Rename some variables with too short names, such as "s".
2011-12-24 00:25:03 +02:00
Reijo Tomperi
00cbf02d84
Refactoring: Rename variable used -> templateInstantiations
2011-12-24 00:03:03 +02:00
PKEuS
dca03c3ce2
Remove unnecessary includes
...
Also add a unit test related to #3427
Also improve the description text in checkclass and remove unused variable.
2011-12-23 23:31:48 +02:00
Daniel Marjamäki
8e94e2261b
Comparing bool with int: Fixed false positives
2011-12-23 19:11:51 +01:00
PKEuS
8213a15b2a
improving checkSizeofForStrncmpSize
2011-12-23 18:11:34 +01:00
Daniel Marjamäki
e9d697b636
Fixed #3419 (false positive: (style) Same expression on both sides of '&'.)
2011-12-23 16:08:53 +01:00
PKEuS
409364747c
Fixed #3441 (segmentation fault of cppcheck (%: return ; ()))
2011-12-23 12:46:59 +01:00
Daniel Marjamäki
df8504f0ea
Clarify calculation: Fixed false positives when there are various function calls
2011-12-23 12:13:39 +01:00
Daniel Marjamäki
ba5558748d
Uninitialized variables: Fixed false 'dangerous usage of strncpy' positive when resulting string is used by strncpy
2011-12-23 08:44:28 +01:00
Reijo Tomperi
70c4bb54b4
Refactoring: Split long function in tokenizer.
...
simplifyTemplatesInstantiate()
2011-12-22 23:13:45 +02:00
Reijo Tomperi
1c12d04d0d
Refactoring: Make a 300 line function a little smaller.
...
simplifyTemplatesInstantiate()
2011-12-22 22:39:15 +02:00
Marek Zmysłowski
4b4f201b79
Fixed #3437 (segmentation fault of cppcheck)
2011-12-22 07:28:28 +01:00
Daniel Marjamäki
deccb1df06
Fixed #3433 (False positive: Same iterator is used with both myVector and myMap)
2011-12-21 06:16:06 +01:00
Daniel Marjamäki
fd0d9c8694
CheckOther: Added line break to make the code more readable
2011-12-20 20:54:14 +01:00
Daniel Marjamäki
f8181df340
Fixed #3410 (Comparing bool against bool produces false positive)
2011-12-20 06:38:05 +01:00
PKEuS
6dc2a6e7ab
Refactorized CheckUnusedVar
2011-12-18 20:15:41 +01:00
PKEuS
b6b97fa43d
Fixed #3427 (False positive: (error) Dangerous usage of c_str(). The returned value by c_str() is invalid after this call.)
2011-12-18 19:44:38 +01:00
PKEuS
0205582161
Fixed #3327 (printf with std::string as parameter)
2011-12-18 19:41:21 +01:00
Daniel Marjamäki
1ba1be4b8d
Fixed #3428 (false negative: array bounds errors not found when duplicate class names present)
2011-12-18 16:35:51 +01:00
Daniel Marjamäki
2bb5de4c89
Fixed #3425 (False positive: Null pointer dereference (pointer is checked in macro))
2011-12-18 13:33:23 +01:00
Daniel Marjamäki
772b8cc37d
Array index out of bounds: Avoid false positives when there are duplicate names for structs
2011-12-18 08:12:42 +01:00
Daniel Marjamäki
83cdf734fe
Tokenizer: The tokenizer didn't handle '0x0E-7' correctly
2011-12-18 07:37:20 +01:00
Daniel Marjamäki
5f712cc213
Array index out of bounds: Fixed false positive when taking address beyond array using calculated array index
2011-12-17 21:35:12 +01:00
OGAWA KenIchi
3e9d8e6ae1
Fixed #3422 (Internal error in exceptRethrowCopy check)
2011-12-17 20:00:15 +01:00
Daniel Marjamäki
d21ca7881c
Fixed #3424 (Tokenizer: doesn't tokenize if-if-else-else correctly)
2011-12-17 19:05:14 +01:00
PKEuS
f306246c7f
Improved support for references and pointers in SymbolDatabase
...
Replaced several isPointer functions by Variable::isPointer function
Refactorizations & Make use of symbolDatabase more often
2011-12-17 19:04:03 +01:00
Daniel Marjamäki
f09a5b408b
Uninitialized variables: Fixed false positives when sizeof is used in condition. Ticket: #3369
2011-12-17 16:08:55 +01:00
Daniel Marjamäki
322f46c761
Fixed #3426 ((error) Invalid number of character ({) when these macros are defined:)
2011-12-17 15:23:55 +01:00
Daniel Marjamäki
95123854ba
Array index out of bounds: Fixed false positive when size is not known.
2011-12-17 13:20:42 +01:00
Daniel Marjamäki
e008a0508b
Null pointers: Fixed false positive when sizeof without parentheses are used
2011-12-17 12:44:11 +01:00
PKEuS
4abee3a345
Refactorings. Use reportError instead of reportInconclusiveError.
2011-12-17 11:39:20 +01:00
PKEuS
009471f4ee
Refactorizations for executionpath.cpp (rearranged code, added some else before if)
2011-12-17 11:26:20 +01:00
PKEuS
2fa0168e55
Patch that improves STL checking: Make use of SymbolDatabase, solved TODO (about returning .c_str() value), check for deleting iterators by value.
2011-12-17 11:21:34 +01:00
Daniel Marjamäki
fe8393aafc
Uninitialized variables: Fixed false positives in sizeof. Ticket: #3369
2011-12-17 09:51:45 +01:00
Daniel Marjamäki
dfedb920f8
Uninitialized variables: Fixed false positive when address of variable is taken inside = { .. }. Ticket: #3369
2011-12-17 07:56:46 +01:00
Daniel Marjamäki
0572321572
Fixed #3423 (Uninitialized variable in operator>>)
2011-12-16 20:34:44 +01:00
Daniel Marjamäki
5f1fadec7b
Uninitialized variables: Fixed false positives when many 'if' are used. Ticket: #3369
2011-12-16 19:56:32 +01:00
PKEuS
a311904a0f
Patch that fixes some bailouts for isEnabled('style') in both directions. Improved checkSizeofForNumericParameter's error message, made it 'warning', made it non-experimental.
2011-12-16 19:21:14 +01:00
Daniel Marjamäki
1f329d7b41
Uninitialized variables: Fixed false positive for x 'a[x=1]'. Ticket: #3369
2011-12-16 18:12:47 +01:00
Daniel Marjamäki
e723ef0569
Uninitialized variables: Fix false positives for '= { .. }'. Ticket: #3369
2011-12-16 18:04:10 +01:00
Daniel Marjamäki
d2d7e25f3f
Uninitialized variables: Fixed false positive in for condition. Ticket: #3369
2011-12-15 20:48:26 +01:00
Daniel Marjamäki
40f2f4f7f6
Uninitialized variables: Fixed false positives when there are assembler code. Ticket: #3369
2011-12-15 20:29:57 +01:00
PKEuS
e5427fe487
Fixed #3048 , further improvements to const correctness check.
2011-12-15 20:18:52 +01:00
Daniel Marjamäki
167530bf60
Uninitialized variable: Fixed test failure. Ticket: #3369
2011-12-15 20:15:37 +01:00
Daniel Marjamäki
f797307edc
Uninitialized variables: Fix false positive if variable is used after return (goto). Ticket: #3369
2011-12-15 20:05:11 +01:00
Daniel Marjamäki
10228881c7
Uninitialized variables: Fixed false positives when taking address. Ticket: #3369
2011-12-15 19:38:06 +01:00
Daniel Marjamäki
fd78816181
Fixed #3418 (preprocessor define assignment not propagated)
2011-12-15 18:49:35 +01:00
Daniel Marjamäki
6221145be8
Fixed #3414 (false positive: (error) Uninitialized variable: SOutput)
2011-12-15 18:30:59 +01:00
Daniel Marjamäki
005b1cff61
Fixed #3417 (False positive: Uninitialized variable when conditionally set)
2011-12-15 18:15:58 +01:00
Daniel Marjamäki
9e54714894
CheckNullPointer::isPointerDeref: better checking if pointer is not dereferenced
2011-12-15 17:01:39 +01:00
Daniel Marjamäki
3a432fa959
Uninitialized variables: better handling of initialization with >>. Ticket: #3369
2011-12-15 16:55:55 +01:00
Daniel Marjamäki
b3c35d4b32
Fixed #3415 (Segmentation fault in new check for uninitialized variables)
2011-12-15 16:49:14 +01:00
PKEuS
00d6a0e877
refactorizations for CheckClass and for less false negatives related to derived classes
2011-12-14 21:11:40 +01:00
Daniel Marjamäki
295f486cde
Uninitialized variables: Detect more errors when variable is given as array index. Ticket: #3369
2011-12-14 19:56:58 +01:00
Daniel Marjamäki
63e2f64b9c
Uninitialized variables: Fixed false positives for loops. Ticket: #3369
2011-12-14 18:54:03 +01:00
Daniel Marjamäki
8e3e634ce0
Uninitialized variables: Detect more errors. Ticket: #3369
2011-12-14 18:28:30 +01:00
Daniel Marjamäki
419ae2a135
Uninitialized variables: Fixed false positive in new checking when variable is initialized in condition
2011-12-14 17:17:24 +01:00
Daniel Marjamäki
6a4b1127aa
astyle formatting
2011-12-14 17:07:06 +01:00
PKEuS
8ed8206b44
Fixed #3296 (false positive (inconclusive): 'C::operator=' should return 'C &')
2011-12-14 15:37:43 +01:00
Daniel Marjamäki
ba463295c2
Uninitialized variables: improved check to detect more errors. Ticket: #3369
2011-12-14 06:00:17 +01:00
Daniel Marjamäki
c7ce87d060
Uninitialized variables: Fixed false positives for break/continue/throw
2011-12-14 05:45:52 +01:00
Edoardo Prezioso
40aa326065
Tokenizer: remove redundant 'done' condition, related to ticket #3409 .
...
Add more possible letters to simplifyInitVar patterns.
Replace 'tokAt(1)' with 'next()' and 'linkAt(1)' with 'next()->link()'.
Little optimizing improvements to simplifyAsm.
2011-12-13 22:41:38 +01:00
Daniel Marjamäki
458fa0874a
Uninitialized variables: Started writing a new check. Ticket: #3369
2011-12-13 21:57:27 +01:00
PKEuS
c9f5117cf5
Fixed #3407 (False positive: (inconclusive) Found duplicate branches for if and else. (inline assembler))
2011-12-13 21:42:38 +01:00
Daniel Marjamäki
34fba9e1ea
Fixed #3405 ((error) Invalid number of character ({) when these macros are def ined: 'WIN32'.)
2011-12-13 21:14:41 +01:00
Edoardo Prezioso
4cad5d4df4
Workaround fixes to shut up some cppcheck '--inconclusive' whinings.
2011-12-13 00:24:34 +01:00
Edoardo Prezioso
81a2e62abd
Tokenizer::simplifyGoto: fix another memory read error reported by Valgrind.
...
Also improvements to Tokenizer are done.
2011-12-12 22:03:25 +01:00
Edoardo Prezioso
79b82f115f
Tokenizer: some changes to line numbers of some tokens:
...
simplifyAsm: change line number of newly added 'asm ( )' in order to be the same as next ';'.
simplifyIfAddBraces: Change line number of newly added '}' in order to be the same as next 'else', except for '{ ; } else'.
2011-12-12 20:55:25 +01:00
Reijo Tomperi
dc59fc4391
astyle fix
2011-12-12 21:27:48 +02:00
Daniel Marjamäki
c8f497a9b3
Fixed #3405 ((error) Invalid number of character ({) when these macros are def ined: 'WIN32'.)
2011-12-12 19:35:25 +01:00
Edoardo Prezioso
626f13ae7e
Tokenizer: Fix another Valgrind error in simplifyErrNoInWhile. Add more jumping patterns to simplifyIfAddBraces and simplifyDoWhileAddBraces.
2011-12-12 13:15:35 +01:00
Daniel Marjamäki
5f5c912f3f
temporary fix for inconclusive false warnings. there is not sufficient logic for determining when there is NOT a pointer dereference.
2011-12-12 07:43:33 +01:00
Daniel Marjamäki
2dbe7ca196
CheckNullPointer::isPointerDeRef: Skip inconclusive checking when --inconclusive hasn't been given.
2011-12-12 07:35:53 +01:00
Edoardo Prezioso
99d8ce3732
Fix Valgrind error in arraySize():
...
if there's code like: 'int [ ] a = { 1 , 5 , }', 'end' is last '}', when 'tok2' arrives to second ',' and cppcheck finds out that next token to 'tok2' is '}', remove this ',' with 'tok2->deleteThis()' but it causes (maybe) a memory corruption to 'end' which will gave problems later because 'tok' will be assigned to it or its next token.
2011-12-12 02:23:49 +01:00
Edoardo Prezioso
52620e6493
Tokenizer::simplifyDoWhileAddBraces:
...
1)rewrite fix for ticket #988 (just don't simplify inside macro parenthesis);
2)use a different organization of the code: start from last token and proceed backwards. This way 'simplifyDoWhileAddBracesHelper' can be called just once, hence the 'Helper' code can be improved and moved in the main function.
2011-12-12 00:20:46 +01:00
Edoardo Prezioso
cf574072b6
Tokenizer::arraySize(): improve code structure, fixed 'tok2' for-looping which didn't stop to the ending '}' parenthesis.
2011-12-11 23:13:37 +01:00
Edoardo Prezioso
3c098839d1
simplifyIfAddBraces: Remove restriction for jumping opening parenthesis '(' as a fix to #2873 , because even without this the original test case doesn't crash anymore. Add more jumping patterns.
...
simplifyFunctionParameters: Add more jumping patterns and an observation related to error message for equal parameter names, help needed.
Fix grammar mistake in comment.
2011-12-11 13:07:13 +01:00
Daniel Marjamäki
ffb5d107be
CheckNullPointer::isPointerDeRef: Tweaks to reduce false warnings when inconclusive is used.
2011-12-11 08:48:55 +01:00
Daniel Marjamäki
497c54a1a7
Fixed #3168 (false negative: buffer overflow in subfunction)
2011-12-11 08:16:58 +01:00
Edoardo Prezioso
27801b35eb
Other improvements to tokenizer code.
...
Handle SQL code better, even when there's no ';' after 'EXEC SQL'.
simplifyVarDecl: Check with 'Token::Match' once when you have to check a pattern inside which there should be a number or a variable. Use '%any%' and after that check if that string is a number or a variable name later.
simplifyGoto: process also anonymous structs and unions which should have 'indentspecial' incremented, skip code like 'var = { ... }'.
2011-12-11 02:02:38 +01:00
Edoardo Prezioso
5134964026
Fix code in commit 5f522fb841
and reapply it again.
2011-12-10 23:49:56 +01:00
Daniel Marjamäki
04159b81b8
reverted 5f522fb841
, to avoid hang in TestBufferOverrun::arrayInfo
2011-12-10 20:51:36 +01:00
Daniel Marjamäki
ee39f6402c
reverted fix for #3168 , I'll rewrite it
2011-12-10 20:46:10 +01:00
Daniel Marjamäki
897e8637b4
Fixed #3168 (false negative: buffer overflow in subfunction)
2011-12-10 19:26:12 +01:00
Edoardo Prezioso
5f522fb841
Tokenizer: improve code and remove redundant checks.
...
In particular: improve 'double sharp' concatenation by handling also code which begins without the [{};]. Do the same with C# code. Also, in the labels simplification function, skip also '{}' when the open bracket is after a '='.
2011-12-10 18:45:27 +01:00
Daniel Marjamäki
e870c68978
Check64BitPortability: Wiki formatting update
2011-12-10 18:41:09 +01:00
Daniel Marjamäki
c5a1b5ecab
--doc : don't write internal checks in the doc output
2011-12-10 18:39:25 +01:00
Edoardo Prezioso
bf815ac1e4
Improve labels simplification code, remove redundant checking.
2011-12-10 14:13:48 +01:00
Daniel Marjamäki
93b447f7f6
1.52: Updated version
2011-12-10 12:55:40 +01:00
PKEuS
9fc7453917
Memory leaks: Code cleanups
2011-12-10 11:55:14 +01:00
Daniel Marjamäki
8624c0b9fd
Merge pull request #67 from makulik/master
...
Fixed ticket #3389 '-U option doesn't supress include file handling for #include statements inside #ifdef code paths'
2011-12-10 02:44:01 -08:00
Daniel Marjamäki
c2e86b867c
Fixed #3386 (Syntax Error: 'int a[]={b<c?1:2,3};')
2011-12-10 11:34:27 +01:00
Edoardo Prezioso
51c1e2303f
CheckBufferOverrun::checkInsecureCmdLineArgs(): Remove recently unused variable 'pattern'.
2011-12-09 23:24:08 +01:00
PKEuS
91a0a071d0
Take symbol database into use or improve its usage in some checks.
2011-12-09 23:28:10 +02:00
makulik
0a777dcb52
Fixed ticket #3389 '-U option doesn't supress include file handling for #include statements inside #ifdef code paths'
...
Signed-off-by: makulik <g-makulik@t-online.de>
2011-12-09 21:57:06 +01:00
PKEuS
9b685ba3c3
Code cleanup
2011-12-09 21:00:57 +01:00
Edoardo Prezioso
7d12951da0
1)Fixed ticket #3184 (Improve Tokenizer: improve simplifyMulAnd to simplify weirder code);
...
2)Fix a test case inside TestSimplifyTokens::flowControl.
2011-12-09 20:47:51 +01:00
PKEuS
f46cf5fd65
Exception safety: refactorings, use the symbol database
2011-12-09 19:53:00 +01:00
Daniel Marjamäki
8ca8887849
C++ Builder : Fixed compiler error
2011-12-08 22:24:09 +01:00
Daniel Marjamäki
b383bae4ab
C++ Builder: Fixed compiler errors
2011-12-08 22:17:50 +01:00
Daniel Marjamäki
6029e23189
Preprocessor: Use const_iterator instead of iterator where possible
2011-12-08 22:14:11 +01:00
Daniel Marjamäki
60d828e778
C++ Builder: Fixed compiler error
2011-12-08 22:09:03 +01:00
PKEuS
167a7e3e51
Various code cleanups
2011-12-08 21:28:34 +01:00
Daniel Marjamäki
e2dd085b60
Fixed #3394 (False positive: possible null pointer dereference)
2011-12-08 19:30:14 +01:00
PKEuS
1bef8d1247
Tokenizer: Code cleanups
2011-12-08 17:42:26 +01:00
Edoardo Prezioso
149ff355e2
Add more kind of code to process for 'removeExceptionSpecifications' (unions, anonymous unions and structs).
2011-12-08 02:50:05 +01:00
Edoardo Prezioso
4de5d87078
1)Remove newly copy of 'eraseTokens' and replace every occurrence with 'deleteNext' with right parameter.
...
2)General improvements to code.
2011-12-08 01:44:18 +01:00
Edoardo Prezioso
76972e8dd3
Extend 'Token::deleteNext' by introducing a new parameter which determines how many tokens should be deleted. It's still not used, though.
2011-12-07 23:36:11 +01:00
PKEuS
1c1c31bea0
Tokenizer: Refactorings and improvements. Better handling of []
2011-12-07 21:15:00 +01:00
PKEuS
97eecb78a7
Fixed #3381 (false positive: (style) Statements following return, break, continue, goto or throw will never be executed)
2011-12-07 18:20:52 +01:00
Edoardo Prezioso
612b3c59ca
1)Implement another declaration of 'Token::eraseTokens' with parameters: the starting token and the number of times needed to call 'deleteNext'.
...
2)Use the overloaded 'eraseTokens' where needed instead of using consecutively 'deleteNext'.
3)Tokenizer: general optimizations about the deletion of some tokens.
4)Run astyle.
2011-12-07 02:29:03 +01:00
Edoardo Prezioso
b9224439c1
Add 'exit' and 'abort' to the flow control list in order to simplify code after them.
2011-12-06 22:56:12 +01:00
Edoardo Prezioso
eb5fe250ab
Partial fix ticket #3385 ('throw' isn't removed if the argument of the function is type 'struct|class').
2011-12-06 21:02:26 +01:00
Edoardo Prezioso
0504952950
Remove some redundant parenthesis - part 9
2011-12-06 16:53:57 +01:00
Edoardo Prezioso
1b4b8fbefe
Tokenizer: use more 'deleteNext' instead of 'eraseTokens' where possible.
2011-12-05 18:52:34 +01:00
Edoardo Prezioso
c8bbb77776
CheckMemoryLeakInFunction::simplifycode : use properly 'deleteNext' instead of 'deleteThis' or 'eraseTokens' and remove redundant conversion to 'std::string'.
2011-12-05 15:50:11 +01:00
Edoardo Prezioso
186ab3645e
Oops. I should eventually keep ';', not 'typedef'.
2011-12-05 00:26:08 +01:00
Edoardo Prezioso
65213772df
Tokenizer: use 'deleteNext()' or, even better, 'eraseTokens' instead of 'deleteThis()' where possible.
2011-12-05 00:08:50 +01:00
PKEuS
501d7ccb2d
Optimize checkother.cpp by taking symbolDatabase into use.
2011-12-04 20:49:01 +02:00
Edoardo Prezioso
9cadd7c17a
Remove some redundant semicolons - part 8
2011-12-04 19:11:51 +01:00
Edoardo Prezioso
4946b036ad
Remove some redundant semicolons - part 7
2011-12-04 18:08:35 +01:00
Edoardo Prezioso
52a174fa9d
Remove some redundant semicolons - part 6
2011-12-04 17:30:25 +01:00
Edoardo Prezioso
b45d63a10a
Remove some redundant semicolons - part 5
2011-12-04 17:15:53 +01:00
Edoardo Prezioso
2fc067e6ab
Tokenizer::simplifyConst : handle also '%type% const' when the 'type' token is the first one in the list.
2011-12-04 16:59:19 +01:00
Edoardo Prezioso
a363749a17
1) Remove some redundant semicolons - part 4 ('typedef' != _tokens.str());
...
2) Tokenizer: Use Token::eraseTokens instead of using the same instructions as the ones inside such function.
2011-12-04 15:40:05 +01:00
Daniel Marjamäki
eeb6dc48a5
Fixed #3359 (False positive: array[idx++] += val triggers unexpected 'Array index out of bounds' error)
2011-12-04 12:22:21 +01:00
Daniel Marjamäki
49784a44e1
Tokenizer: improved handling of inner templates. Partial fix for #3226
2011-12-04 11:38:41 +01:00
Edoardo Prezioso
f47ac539d6
Tokenizer::simplifyFlowControl: 1) remove consecutive 'break' or 'continue', since they don't influence the CheckOther results; 2) improve the code speed where possible;
...
Tokenizer::eraseDeadCode: Ditto.
2011-12-03 17:15:19 +01:00
Thomas Jarosch
fcb6759f43
The usual astyle run
2011-12-03 17:01:56 +01:00
Daniel Marjamäki
50dfdf7c2e
Fixed #3350 (Analysis failed)
2011-12-03 15:15:15 +01:00
Daniel Marjamäki
c90558f730
Fixed #3358 (False null pointer dereference positive with ternary ?: operator)
2011-12-03 13:10:07 +01:00
Daniel Marjamäki
b7988a3dab
Fixed #3336 (False positive: Member function is not used (used by template function))
2011-12-03 12:19:26 +01:00
PKEuS
1f438b0505
Fixed #3375 (Improve check: Detect unreachable code)
2011-12-03 11:43:23 +01:00
Daniel Marjamäki
69d3d4a17d
Fixed gcc compiler warnings
2011-12-03 09:57:56 +01:00
Daniel Marjamäki
fb3115a199
Fixed #3267 (False positive: resource leak in vdr-xinelib)
2011-12-03 09:53:36 +01:00
Edoardo Prezioso
00bae586e9
Add 'throw' to the flow control statements list for simplification of dead code.
2011-12-03 02:04:29 +01:00
Edoardo Prezioso
42a557432d
Remove some redundant semicolons - part 3
2011-12-02 23:04:06 +01:00
Edoardo Prezioso
c2ddb67316
Remove some redundant semicolons - part 2
2011-12-02 22:58:29 +01:00
Edoardo Prezioso
ff1cb241a8
Remove some redundant semicolons - part 1
2011-12-02 22:39:33 +01:00
Daniel Marjamäki
9a84c5845a
Fixed #3373 (False posititive: incorrect %* handling in sscanf)
2011-12-02 17:09:32 +01:00
Daniel Marjamäki
6763e596b9
Fixed #3345 (false positive: possible null pointer dereference (guarded by &&))
2011-12-02 06:11:55 +01:00
Richard Quirk
d2c8b9be56
Fix possible null pointer dereference
2011-12-01 19:57:04 +01:00
Richard Quirk
b2ea78543b
Fix false positive with non-const function calls
2011-12-01 19:57:04 +01:00
Richard Quirk
a880469c5a
Refactor the same expression check
...
Work out if a function is inconclusive when creating the entry in the
Expressions class instead of when checking the counts at the end. Store
the result in a new bool flag in the ExpressionTokens helper struct.
The pointer to symbol database and ref to list of const functions are
temporarily stored in the Expressions helper class to avoid passing
them in too on every endExpr(tok) call.
Use a const reference to ExpressionTokens in the check loop to avoid
repeating the it->second several times, which clarifies what that code
does.
2011-12-01 19:57:04 +01:00
PKEuS
5017646488
Coding fixes and refactorings
2011-12-01 19:43:51 +01:00
Daniel Marjamäki
c7e2a198cb
Fixed Visual Studio compiler warnings
2011-12-01 18:32:14 +01:00
Daniel Marjamäki
93b21c6cc5
Fixed Visual Studio compiler warnings
2011-12-01 18:27:25 +01:00
Daniel Marjamäki
98480bf504
Fixed #3354 (Incorrect both sides of '||' expression match when using increment in expression.)
2011-12-01 17:46:33 +01:00
Daniel Marjamäki
fddfd16758
checkDuplicateExpressions: validate tokens instead of string. Fix for my previous commit.
2011-12-01 17:43:29 +01:00
Daniel Marjamäki
31b576de3b
Fixed #3334 (Test for same expression on both sides of '&' reports false positive)
2011-12-01 17:07:55 +01:00
Edoardo Prezioso
767413adad
1)internal check found a 'findmatch' with simple string argument;
...
2)Style: uniform 'while (...)' when inside it there's an assignment;
3)Replace '0' with 'NULL' where there's comparison with a pointer.
2011-12-01 12:04:47 +01:00
Zachary Blair
344d7e2f34
Fixed #3283 (False negative: array index out of bounds not found for constant string and known array index value)
2011-11-30 19:17:09 -08:00
Daniel Marjamäki
0bf17213ec
Merge pull request #65 from makulik/master
...
Solution for ticket #3353 'Allow explicit undef's for configuration'
2011-11-30 12:42:11 -08:00
Daniel Marjamäki
323019c48f
Fixed #3355 (False positive: member variable initialization (::ZeroMemory))
2011-11-30 21:28:16 +01:00
Edoardo Prezioso
1084e4bece
1) Shut up GCC compiler for 'missing braces around assignment';
...
2) Tokenizer::simplifyGoto: Code refactoring in order to skip code inside '()|[]' parentheses without counting.
2011-11-30 20:58:39 +01:00
makulik
1e8fc71f8e
Solution for ticket #3353 'Allow explicit undef's for configuration'
...
Signed-off-by: makulik <g-makulik@t-online.de>
2011-11-30 20:24:01 +01:00
PKEuS
ee3e10ea97
Fixed #3364 (Crash in printf parsing)
2011-11-30 20:23:29 +01:00
Daniel Marjamäki
d0247f3a8d
Fixed #3268 (False positive: resource leak in vdr-xineliboutput)
2011-11-30 20:07:56 +01:00
Daniel Marjamäki
dcd3f4fe3d
Fixed #3267 (False positive (experimental): resource leak in vdr-xinelib)
2011-11-30 19:43:02 +01:00
Daniel Marjamäki
414e0ecc3c
Uninitvar: Reactivated the checking
2011-11-30 18:57:52 +01:00
Daniel Marjamäki
0d48cd390b
astyle formatting
2011-11-29 20:44:23 +01:00
Edoardo Prezioso
5c90c69ccf
Fixed ticket #3366 (Build breakage)
2011-11-29 19:46:36 +01:00
Daniel Marjamäki
b61c01c6a4
Fixed #3356 (false positive: (warning) Comparison of a boolean with integer that is neither 1 nor 0)
2011-11-29 18:14:57 +01:00
Daniel Marjamäki
b538f49a6e
Merge pull request #61 from richq/sameexpr
...
Fix for #3317 - same expression on both side of '&&' false positives
2011-11-29 08:50:02 -08:00
PKEuS
be0acad11f
Improvements to Nullpointer dereference on function call check:
...
printf format string parser improved (similar to my recent patch
on the argument counter), frexp/modf supported (#1572 ), Code
cleanup
2011-11-28 22:32:07 +02:00
Daniel Marjamäki
39af75abb4
Fixed #3303 (false positive: memory leak (reference count))
2011-11-28 20:08:29 +01:00
Daniel Marjamäki
522da8d258
sizeof for numeric constant : disabled check. see ticket #3179
2011-11-27 18:50:21 +01:00
Marek Zmysłowski
e0b50719f4
Fixed #909 (improve check: out of bounds of memchr function and out of bounds check)
2011-11-27 07:54:52 +01:00
PKEuS
2d3a232ef6
code refactoring
2011-11-27 07:30:58 +01:00
PKEuS
71c8669261
Fixed #3311 , #3313 and #3339 (printf format string false positives)
2011-11-27 07:29:09 +01:00
PKEuS
6b1594244e
code cleanups and refactorings
2011-11-26 21:15:16 +01:00
PKEuS
6b6f780057
code cleanups and refactorings
2011-11-26 21:02:04 +01:00
Daniel Marjamäki
50c320ef27
memory leaks: Made leak checking inconclusive instead of experimental
2011-11-25 14:47:45 +01:00
Marek Zmysłowski
3ae96600b5
Fixed #3212 (Simplify the double pointer cast)
2011-11-25 07:23:54 +01:00
Thomas Jarosch
5025d1019f
Use Token::simpleMatch instead of Token::Match
...
"--enable=internal" reported:
[lib/tokenize.cpp:3563]: (warning) Found simple pattern inside Token::Match() call: ") ;"
2011-11-24 10:11:45 +01:00
Richard Quirk
d28cf42d4c
Fix ticket #3317 (same expression false positives)
...
Add a check for function calls that have no side effects. That means
known const methods and a list including strcmp, strlen, etc.
If the function is not known to be side effect-free then no style
warning is given.
Add test cases for the duplicate expressions.
2011-11-23 21:39:03 +01:00
Richard Quirk
511ac0ab1f
Remove false positives for nested logic
2011-11-23 21:39:03 +01:00
Richard Quirk
b0574cd02e
Fix ticket #2233 (unused private static function)
2011-11-23 21:28:08 +01:00
Richard Quirk
d76657fec8
Fix false positives for null pointer on exit
2011-11-23 21:27:15 +01:00
Daniel Marjamäki
2e08c8c5b1
DJGPP: Fixed a few compiler errors by using std::size_t instead of size_t
2011-11-22 21:14:14 +01:00
Daniel Marjamäki
345220b36f
removed unused include
2011-11-22 19:54:15 +01:00
Daniel Marjamäki
1b1fd9d39c
Fixed #3196 (False positive: member variable not initialized in constructor (union))
2011-11-22 19:26:00 +01:00
Daniel Marjamäki
add2b3706b
Fixed #3352 (False positive: member variable not initialized (3D array))
2011-11-22 18:45:25 +01:00
Daniel Marjamäki
17f891ad34
Tokenizer::setVarId: Fixed problem with class declarations with inheritance. skip them.
2011-11-21 21:18:56 +01:00
Daniel Marjamäki
0dd05e0d56
Fixed #3347 (False positive: unused function (taking address))
2011-11-21 19:12:54 +01:00
Daniel Marjamäki
9aa8a49677
Tokenizer::setVarId: fixed 'using' bug
2011-11-21 18:04:42 +01:00
Daniel Marjamäki
648fcb9e42
operator= should return reference: Made check inconclusive. See ticket #3296
2011-11-21 08:00:10 +01:00
Daniel Marjamäki
5b5ea29f23
Mismatching format string parameters. Made check experimental. See tickets #3311 , #3313 and #3339
2011-11-21 07:31:06 +01:00
Reijo Tomperi
eebd1393ff
"Internal error. Token::Match called with varid 0." didn't work when error was in a header file. Fixed that.
2011-11-21 00:41:26 +02:00
Reijo Tomperi
7d7d68b192
Make --debug-fp work with new exception also.
2011-11-21 00:04:09 +02:00
Reijo Tomperi
91e89380c2
astyle fix
2011-11-20 23:43:55 +02:00
Reijo Tomperi
e0ea4228cd
"Internal error. Token::Match called with varid 0." will now cause check to abort and write a proper error log with filename. Previously filename was empty and format was always xml.
2011-11-20 23:38:37 +02:00
Daniel Marjamäki
004dcf834b
Fixed #3281 (Tokenizer::simplifyKnownVariables : static constant value is not used)
2011-11-20 21:50:26 +01:00
Marek Zmysłowski
9a8c48b36e
Fixed #3255 (Error message for std::string::c_str() is not descriptive)
2011-11-20 19:26:07 +01:00
Edoardo Prezioso
6889a28d31
1) Run runastyle;
...
2) Clarify some comments in 'Tokenizer::simplifyFlowControl' and in 'Tokenizer::eraseDeadCode';
3) Add some 'const' variables inside 'Tokenizer::eraseDeadCode'.
2011-11-20 19:06:55 +01:00
Edoardo Prezioso
d0d5a2fcd8
Completed ticket #3230 (Refactoring: add function to remove tokens when a label is found.) and fixed ticket #3264 (False positive: Variable is assigned a value that is never used).
2011-11-20 18:37:00 +01:00
Daniel Marjamäki
77925dc629
Class checking: made 'technically function x can be const' inconclusive
2011-11-20 16:54:06 +01:00
Daniel Marjamäki
b26811cdf5
astyle formatting
2011-11-20 16:50:41 +01:00
Richard Quirk
91713ffe84
Fix false positives for %[ in scanf
2011-11-20 16:48:54 +01:00
Daniel Marjamäki
097637a66c
Fixed #3316 (Cppcheck reporting internal errors - code compiles cleanly)
2011-11-20 16:22:21 +01:00
Edoardo Prezioso
a32b05197d
Change every 'tokAt(1)' to 'next()' and every 'tokAt(-1)' to 'previous()'.
...
Added a safety check to ensure that a 'previous()' call doesn't crash (not sure if it's needed or not).
2011-11-20 15:59:37 +01:00
Daniel Marjamäki
b92959809c
Uninitvar: Made checking experimental
2011-11-20 15:19:56 +01:00
Edoardo Prezioso
11dd3c09ce
Change every 'tokAt(1)->' to 'next()->' because 'tokAt(1) == 0' is equivalent to 'next() == 0', hence the equivalent cppcheck crash.
2011-11-20 15:09:57 +01:00
Edoardo Prezioso
42e369a4b4
Change every 'tokAt(..)->link()' to 'linkAt(..)'.
2011-11-20 14:24:27 +01:00
Daniel Marjamäki
690702a742
Memory leaks: Made CheckMemoryLeakInFunction experimental
2011-11-20 14:11:22 +01:00
Daniel Marjamäki
1cf45a5cde
Fixed #3280 (False positive: assigned value that is never used)
2011-11-20 12:09:07 +01:00
Daniel Marjamäki
8c091ff968
Fixed #3340 (Internal error. Token::Match called with varid 0... union is causing problems)
2011-11-20 08:13:28 +01:00
Daniel Marjamäki
2a5b4b1842
Fixed #3328 (False negative: out of bounds)
2011-11-19 15:28:06 +01:00
Daniel Marjamäki
fc42fc956c
Reverted previous commit. There are testrunner problems when the code is removed.
2011-11-19 15:14:45 +01:00
Daniel Marjamäki
5511f3fbfd
removed cleanup code that will crash in some environments. it's somewhat redundant.
2011-11-19 14:50:04 +01:00
Daniel Marjamäki
13eecb9109
Fixed #3329 (cppcheck core dump on Sun machine)
2011-11-19 14:44:55 +01:00
Edoardo Prezioso
c3b54066bd
Merge branch 'master' of github.com:danmar/cppcheck
2011-11-19 13:36:05 +01:00
Edoardo Prezioso
ccdb18f213
Add a sanity check and an error message to linkAt when the index is outside the tokens range.
2011-11-19 13:34:36 +01:00
Daniel Marjamäki
c025bf9d57
Fixed #3332 (mismatching comparison: Hard to understand)
2011-11-19 08:38:54 +01:00
Daniel Marjamäki
033fef36da
improved error message 'mismatching comparison'
2011-11-18 20:07:42 +01:00
Daniel Marjamäki
e78131f9e6
Preprocessor: better handling of #define A 0 => #if A==0. ticket #3331
2011-11-17 19:19:43 +01:00
Marek Zmysłowski
994f08fdf0
Fixed #886 (new check: wrong value passed to isgraph function)
2011-11-17 16:31:16 +01:00
Stefan Weil
68a1b69d32
Preprocessor: Fix comments (backspace -> backslash)
...
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2011-11-15 19:30:43 +01:00
Stefan Weil
00ead7fb2e
support any number of --append=<file> options
...
If one or more append files are given on the command line,
they are simply concatenated.
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2011-11-15 19:27:36 +01:00
Stefan Weil
785bc3d04b
Optimize handling of --append=<file> option (execution time, memory)
...
Whitespace was removed from the append data for every configuration
and every file: n(configuration) * n(files).
Removing whitespace immediately after the append data was read can
significantly reduce the execution time and memory usage.
It also allows further improvement because copies to the temporary
object appendCode are no longer needed.
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2011-11-15 19:27:36 +01:00
Stefan Weil
d11f18b5df
cmdlineparser: terminate with error message if --append=<filename> fails
...
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2011-11-15 19:27:36 +01:00
Thomas Jarosch
c317c8979c
Run astyle
2011-11-14 09:21:42 +01:00
Thomas Jarosch
a645235d5a
Adapt Token::strAt() to return a const reference like Token::str() does
...
Saves us a complete conversion from string.c_str() back to std::string.
2011-11-14 09:19:46 +01:00
Richard Quirk
527236b321
Fix false positives for delete of known nulls
2011-11-13 22:38:34 +01:00
Edoardo Prezioso
2c64d299ca
Change every 'tokAt(...)->str()' to 'strAt(...)'.
2011-11-13 13:10:59 +01:00
Edoardo Prezioso
b28a44dc3b
Change: 'next()->next()'->'tokAt(2)', 'previous()->previous()'->'tokAt(-2)'.
2011-11-12 22:33:03 +01:00
Edoardo Prezioso
ed6a0e14c4
Add simplification of the consecutive braces before the end of 'tokenize()' function.
2011-11-12 16:59:20 +01:00
Edoardo Prezioso
5cbfbe31c1
Add removal of consecutive braces, i.e.: '{ { ... } }'->'{ ... }'.
...
Changed a little bit the dead code tests.
2011-11-12 12:07:10 +01:00
Edoardo Prezioso
2aceb623ae
1)Add 'Token' function 'linkAt', which simplifies the writing 'tokAt(i)->link()' to 'linkAt(i)'.
...
It's still unused, though.
2)Fix one grammatical mistake inside token.h
3)Style change to token.cpp: remove the whitespace between '!' and 'begin'.
2011-11-11 21:55:37 +01:00
Thomas Jarosch
283c2e508e
Remove check for "this" inside Token class
...
The check hides real memory problems and is
also useless in most cases.
2011-11-11 17:19:08 +01:00
Daniel Marjamäki
5a35beebf7
added todo comment
2011-11-11 11:07:03 +01:00
Daniel Marjamäki
34e40502c6
Fixed #3314 (cppcheck incorrectly reporting Syntax error.)
2011-11-11 10:53:49 +01:00
Daniel Marjamäki
8bbd535267
Fixed #3290 (False positive: Null pointer dereference (typeid))
2011-11-11 09:58:17 +01:00
Daniel Marjamäki
688e290332
Memory leaks: Fixed false positive for 'char *p = strcpy(malloc(10),str);'
2011-11-11 09:07:02 +01:00
Daniel Marjamäki
410b11c00f
Merge pull request #60 from richq/varid0
...
Fix varid 0 with function pointer and virtual methods
2011-11-09 14:28:54 -08:00
Thomas Jarosch
1a454256dc
Cache result of tok->isStandardType()
...
Also contains test order improvements from Johan Samuelson (#3116 ).
Run time went down from 15.15s to 14.95s for the case below.
Benchmarked using these settings:
- CXXFLAGS="-O2 -g -NDEBUG"
- time -p cppcheck.git -q --std=posix --enable=all --inconclusive -Dfoo .
on the "rpm" codebase.
2011-11-09 21:56:30 +01:00
Richard Quirk
f56aa19fac
Fix varid 0 with function pointer and virtual methods
2011-11-09 21:07:55 +01:00
Thomas Jarosch
c010ca33a5
Run astyle
2011-11-09 20:34:58 +01:00
Daniel Marjamäki
2d00cabee1
Fixed #3279 (Token::Match called with varid 0)
2011-11-09 18:49:17 +01:00
Daniel Marjamäki
b7cc9779c4
Merge pull request #59 from richq/sameexpr
...
Improved same expression check for ticket #3274
2011-11-08 23:56:36 -08:00
Daniel Marjamäki
3b11ae3fac
Merge pull request #58 from richq/autoptr
...
Fix namespaced types for auto_ptr new[] errors
2011-11-08 23:49:59 -08:00
Reijo Tomperi
7a294c1f79
Fix #3307 (Invalid format string/parameter mismatch warning)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/3307
2011-11-09 00:16:37 +02:00
Edoardo Prezioso
0569953753
Fixed ticket #3309 (false positive: (style) Boolean result is used in bitwise operation. Clarify expression with parentheses)
2011-11-08 22:48:14 +01:00
Richard Quirk
d5c7c5d098
Remove duplicate expressions on both sides of ||
2011-11-08 21:56:54 +01:00
Richard Quirk
d1bc8819f9
Fix for same expression separated by commas
...
The code branch tested by the previous check for && is now different, so
I've changed the test to use == instead. There was also a missing case
when the expression was followed by a comma instead of being preceded by
one.
2011-11-08 21:56:54 +01:00
Richard Quirk
d5664dd6cf
Improved %or% and & checks
2011-11-08 21:56:54 +01:00
Richard Quirk
4cb97edbaf
Improved same expression check for ticket #3274
...
Expand the logic for the check for the same expression on both sides of
the || and && operators. Now expressions can be more complex, with the
"alt" variable helping to fudge operator precedence to avoid false
positives.
2011-11-08 21:54:42 +01:00
Edoardo Prezioso
3cc9a333c9
Fixed tokenizer: don't change '*(str+num)' if '*' means a product with a previous variable or number.
...
Ditto for '&str[num]' (still commented).
2011-11-08 18:14:43 +01:00
Edoardo Prezioso
a546fc6e9d
Fixed ticket #3310 (segmentation fault of cppcheck)
2011-11-08 17:37:24 +01:00
Edoardo Prezioso
aaa77c4709
Improve tokenizer: remove more redundant parenthesis and add a prototype code for: '&str[num]'=>'(str+num)' with reporting non obvious test failures.
2011-11-07 23:40:06 +01:00
Marek Zmysłowski
fed875f4a4
Fix #70 (Locate memory leaks when alloc happens in function parameter)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/70
2011-11-07 23:50:57 +02:00
Reijo Tomperi
7b7e072b88
Fix #3278 (FP: Possible null pointer dereference with for loop)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/3278
Bail out if token "for" is encountered.
2011-11-07 22:10:21 +02:00
Edoardo Prezioso
5cf7cb9ff5
Conforming style: always use 'std::' namespace where needed. This removes the mixing style inside the code.
2011-11-07 00:54:00 +01:00
Thomas Jarosch
a83c47d9cf
Fix false positive of %or% match in alternative pattern match code
...
%or% triggered on code using "|=" or "||".
2011-11-06 22:12:31 +01:00
Richard Quirk
7f88b66842
Fix namespaced types for auto_ptr new[] errors
...
This fixes false negatives for code such as:
std::auto_ptr<foo::bar> p(new foo::bar[10]);
The idea is to find a "new", search for the end token ";", then see if
the declaration ends in a closing square bracket. Also fixes other cases
that checked for "new %type% [" so that they work with namespaces.
2011-11-06 21:20:24 +01:00
Daniel Marjamäki
fa076598ad
Fixed #3233 (false positive: (style) Checking if unsigned variable 'i' is less than zero.)
2011-11-06 18:24:37 +01:00
Thomas Jarosch
19c9c97608
Fix single %op% operator not working at all
...
When parsing the Token::Match pattern, we accesed
the wrong character in the pattern and never
executed the %op% check.
In addition the unit test function for %op%
wasn't registered in the test suite. Ups.
All fixed now and also provide a complete
check for all operators %op% supports.
2011-11-06 18:02:18 +01:00
Edoardo Prezioso
6e2f2816de
Improve same expression check: remove '%op%' pattern and add ',' for the same expressions as an argument inside a function.
...
Improve compound assignment simplification: use already defined 'isAssignmentOp' and extend the adding parenthesis to a generic operator, not only to the arithmetical ones. See: http://en.cppreference.com/w/cpp/language/operator_precedence
2011-11-06 14:35:53 +01:00
Daniel Marjamäki
f092779a4d
Fixed #3282 (Invalid report that an array index is of type char.)
2011-11-06 11:26:28 +01:00
Daniel Marjamäki
ed97b62610
Fixed #3275 (Missing includes always reported)
2011-11-06 08:59:07 +01:00
Daniel Marjamäki
e11c1f7975
Fixed #3265 (false positive: comparison of bool with nonzero integer)
2011-11-06 08:21:34 +01:00
Edoardo Prezioso
99463d3368
Improve same expression check: take count of operations and assignments before the same expression and add missing 'return' pattern to the struct member variable part of the check.
2011-11-05 22:25:01 +01:00
Daniel Marjamäki
d4a8184339
Fixed #3251 (Redundant code: Found a statement that begins with numeric constant)
2011-11-05 20:28:52 +01:00
Daniel Marjamäki
9903c8c0d9
astyle formatting
2011-11-05 20:00:18 +01:00
Daniel Marjamäki
2f32965bdf
Token: assert that multicompare patterns don't begin with some %% command
2011-11-05 19:59:48 +01:00
Daniel Marjamäki
5edf153602
Fixed #3294 (Token::Match multi compare false negative)
2011-11-05 19:24:21 +01:00
Daniel Marjamäki
580fef6951
Merge pull request #55 from richq/sameexpr
...
Improve for same expression on both sides of operator
2011-11-05 10:28:14 -07:00
Richard Quirk
a3f2c1e651
Improve for same expression on both sides of operator
2011-11-05 15:46:11 +01:00
Richard Quirk
68202d8ffb
Extra check for auto_ptr new[]
...
This fixes cases like this:
auto_ptr<foo> bar(new foo[10]);
which previously did not work correctly.
2011-11-05 15:45:59 +01:00
Daniel Marjamaki
b96ab6ba26
Fixed #3188 (Function parser false positive)
2011-11-05 12:23:05 +01:00
Daniel Marjamäki
085a6285fa
Fixed #3117 (Tokenizer::simplifyKnownVariables : Don't simplify static variable that is changed)
2011-11-05 08:30:11 +01:00
Daniel Marjamäki
d3b27c40fc
fixed --doc output
2011-11-05 07:45:30 +01:00
PKEuS
0c469bae41
Fixed #3089 (New Check: Detect wrong usage of printf/scanf)
2011-11-05 07:29:53 +01:00
Thomas Jarosch
4342fd254c
Fixed #3266 (False positive on dangerous usage of .c_str())
2011-11-04 19:21:19 +01:00
Reijo Tomperi
682aae3196
Improve internal error print out, print line number with the error message.
2011-11-03 22:43:13 +02:00
Daniel Marjamäki
9b8ffe7219
Fixed #3248 (Tokenizer: better handling of char constants that are compared with numeric constants)
2011-11-03 20:03:31 +01:00
Daniel Marjamäki
73f3b2074b
Fixed #3285 (wrong #elif behaviour)
2011-11-03 19:05:48 +01:00
Daniel Marjamaki
b6b5416b42
Tokenizer: Fixed failed unit test
2011-11-02 20:42:38 +01:00
Daniel Marjamaki
dfcbc38466
Preprocessor: Don't warn about missing system headers during 'normal' preprocessing
2011-11-02 18:40:56 +01:00
Daniel Marjamaki
0884204c2f
Fixed #3279 (Token::Match called with varid 0)
2011-11-02 18:31:13 +01:00
Daniel Marjamäki
af7bf5c805
removed 'explicit constructors' check. see comments in pull request #51 for the reasons.
2011-11-02 17:12:46 +01:00
Daniel Marjamaki
937a4497ca
Fixed #3272 (Internal error)
2011-11-01 18:03:32 +01:00
Edoardo Prezioso
9dd3360cd6
Fix some complainted choices made in my older commits.
...
Note: probably you should do 'make clean' before using 'make' to rebuild it again. Maybe it's me but 'make' reports various errors when linking.
2011-11-01 13:23:47 +01:00
Daniel Marjamäki
b18778129c
STL: updated error messages for 'useless call to find/swap/substr'. Ticket: #3258
2011-10-31 21:32:30 +01:00
Daniel Marjamäki
7d7a54d89c
Merge pull request #53 from gansb/master
...
Add missing newline
2011-10-31 11:53:33 -07:00
Daniel Marjamäki
a7f27a83a7
Fixed #3271 (Regression: something related to symbol database / varid)
2011-10-31 18:33:15 +01:00
Benjamin Goose
f22f9fcc0e
Add newline at end of file!
2011-10-31 15:12:29 +01:00
Edoardo Prezioso
4295439e53
Fixed ticket #3269 (Regression, I think it's somehow related to symbol database)
2011-10-31 15:05:52 +01:00
Edoardo Prezioso
ba5909ef1d
General code tweaking, nothing strange.
2011-10-31 02:24:59 +01:00
Daniel Marjamaki
f2199adc3f
Preprocessor: Bailout #include if it is recursive
2011-10-30 19:00:11 +01:00
Daniel Marjamäki
278ba0ab3a
Preprocessor: Enable 'normal' preprocessing whenever any defines are given. The special define CPPCHECK-TEST isn't needed anymore.
2011-10-30 18:40:59 +01:00
Edoardo Prezioso
433f4640a9
Fix some GCC warnings regarding the sign conversion.
2011-10-30 18:34:49 +01:00
Daniel Marjamäki
f7fe665b00
Fixed #3231 (False positive: uninitialized variable '({...})')
2011-10-30 18:19:09 +01:00
Daniel Marjamäki
63937f592e
Fixed #3228 (false positive: possible null pointer dereference)
2011-10-30 17:59:38 +01:00
Daniel Marjamäki
7035d4cdd2
astyle formatting
2011-10-30 17:41:05 +01:00
Daniel Marjamaki
71f08d0a66
Fixed #3222 (false positive: Uninitialized variable with function pointer)
2011-10-30 17:22:30 +01:00
Edoardo Prezioso
4fc7e86d7d
Fixed: with checkConst and checkVariableScope wanted still required "information" settings instead of "style".
2011-10-30 10:58:15 +01:00
Daniel Marjamaki
132f0e12d1
CheckClass: Added classInfo about explicit checking
2011-10-30 09:54:02 +01:00
Daniel Marjamaki
8514466c68
Visual Studio: Fixed compiler error
2011-10-30 09:53:14 +01:00
Daniel Marjamäki
0d1046eeeb
Merge pull request #51 from richq/explicit
...
Explicit constructors
2011-10-30 01:38:26 -07:00
Edoardo Prezioso
42fd4e2f52
Tokenizer: Change 'var++|--;' into '++|--var;' and remove redundant 'tokAt(0)'.
2011-10-29 22:25:49 +02:00
Daniel Marjamäki
92333b585a
Fixed #3092 (Tokenizer::setVarId : shadow variable in member function gets the wrong varid)
2011-10-29 21:25:58 +02:00
Daniel Marjamäki
d7be62a6f9
Fixed #3221 (FP: Array 'arr[2147483648]' index 0 out of bounds in loop when size unknown to cppcheck)
2011-10-29 20:26:24 +02:00
Daniel Marjamäki
24a2b6e6ba
Fixed #3195 (operator() from a functor-struct is never used)
2011-10-29 20:04:43 +02:00
Daniel Marjamäki
a809bb3471
astyle formatting
2011-10-29 19:51:11 +02:00
Daniel Marjamäki
acaa9c456f
Fixed #3152 (Tokenizer: template constructor is removed)
2011-10-29 19:45:47 +02:00
Daniel Marjamäki
316aa920eb
Fixed #3245 (False positive: Dangerous usage of 'string' (strncpy doesn't always 0-terminate it))
2011-10-29 19:11:42 +02:00
Richard Quirk
a0a5b36667
Ensure single-argument constructors are explicit
2011-10-29 18:24:30 +02:00
Richard Quirk
2ca932a3ae
Add checks for explicit constructors
...
Single-argument constructors should be explicit. Constructors with
multiple arguments should not be marked explicit.
2011-10-29 18:24:16 +02:00
Daniel Marjamäki
8f49eb6a7e
Tokenizer: Make sure that friend classes don't get varid. Ticket: #2962
2011-10-29 18:22:58 +02:00
Daniel Marjamäki
d75ef01d2b
Null pointer: Added inconclusive error message when calling member function of NULL object.
2011-10-29 15:48:54 +02:00
Daniel Marjamäki
3c509589b5
use reportInconclusiveError instead of reportError if checking is inconclusive
2011-10-29 15:16:27 +02:00
Reijo Tomperi
12a10a7297
Fix related to previously fixed #3256 (Null pointer dereference not detected)
...
Use reportInconclusiveError() instead of reportError().
2011-10-29 15:55:52 +03:00
Daniel Marjamäki
a79b5a5c36
astyle formatting
2011-10-29 12:53:08 +02:00
Daniel Marjamäki
f04210ad9f
updated comment. removed a inconclusive condition, I don't think it's needed.
2011-10-29 12:52:46 +02:00
Thomas Jarosch
ad40586e96
Disable internal checks if NDEBUG is defined (release build)
2011-10-29 12:47:12 +02:00
Daniel Marjamäki
6c02de151f
strncmp sizeof: tweaked the check.
2011-10-29 12:27:19 +02:00
Thomas Jarosch
3d438003ff
Add internal check that searches Token::Match() patterns for missing % end charaters
...
Example: "%type" or "foo %var bar"
2011-10-29 12:22:26 +02:00
Daniel Marjamäki
8416768e03
Merge pull request #50 from richq/strncmp
...
Improved strncmp checks
* strings are always the same
* inconclusive: using sizeof(char *) as size parameter
2011-10-29 03:13:21 -07:00
Thomas Jarosch
2b8da1241b
Add missing percent end character
2011-10-29 12:08:36 +02:00
Richard Quirk
45d0709ed5
Only run sizeof(char*) check if inconclusive is set
2011-10-29 11:59:24 +02:00
Richard Quirk
c2d7824130
Move string comparison out of the report function
2011-10-29 11:52:19 +02:00
Reijo Tomperi
5e0e2c4782
Fix #3256 (Null pointer dereference not detected)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/3256
It is now detected if --inconclusive command line argument is given (the argument is unofficial currently)
2011-10-29 11:35:31 +03:00
Marek Zmysłowski
950460c0a7
Fixed #3261 (Function 'find' useless call. The variable 'str' is using function 'find' against itself)
2011-10-29 09:24:05 +02:00
Edoardo Prezioso
5d868766c7
Tokenizer time improvements (time says real: -1 second)
...
1)change tokAt(1|-1) with next()|previous() with conditions where necessary;
2)change strAt(1|-1) with next()|previous()->str() with conditions where necessary;
3)change tokAt(n)->str(), with n != -1,1, to strat(n);
4)change simplifyFuncInWhile implementation because it was too slow and stupid.
2011-10-29 01:57:53 +02:00
Edoardo Prezioso
dd719b41bf
Definitely check correctly 'sizeof %num%' when '%num%' has '-' sign.
2011-10-29 00:11:38 +02:00
Thomas Jarosch
dee03a09e4
Fix logic glitch
...
Reported by Pc-Lint 9.x :o)
The code was working before as the AND operation
also matched in that specific case.
I verified that code is in use by commenting
it out and checked how many tests failed.
2011-10-28 23:36:30 +02:00
Thomas Jarosch
f6e68914ea
Add check for cppcheck's internal API usage ( #3263 )
...
First checks:
- Simple pattern used inside Token::Match()
- Complex pattern used inside Token::simpleMatch()
The checks get enabled by passing "--enable=internal".
It's not included in "--enable=all".
If you see something that needs further tweaking, just go for it!
2011-10-28 22:46:07 +02:00
Richard Quirk
665cdfabdc
Warn when sizeof is used in strncmp ticket #2095
...
This checks for the case where the user thought sizeof(buf) gave the
size in bytes of 'buf' in code like the following:
const char *buf = "Hello World";
strncmp(buf, other, sizeof(buf));
2011-10-28 22:14:55 +02:00
Richard Quirk
90c7db15a0
Add check for comparison of identical string variables
2011-10-28 22:12:51 +02:00
Richard Quirk
4ba6ac7332
Add strncmp to the list of static string comparison functions
2011-10-28 22:12:51 +02:00
Edoardo Prezioso
979f3b051c
Improve nextArgument by returning 0 if there's an unexpected ';'.
2011-10-28 18:57:10 +02:00
Thomas Jarosch
ef8f49bbf3
Use new findsimplematch API for simple patterns
2011-10-28 12:49:03 +02:00
Edoardo Prezioso
bab740289c
Complete todo: convert 'for' into 'while'.
...
It's not possible to enable this code because of the disaster it will be created for all the checks with the 'for' pattern.
2011-10-28 00:50:54 +02:00
PKEuS
49fd057e17
Tokenizer: Simplify 'foo(void)' to 'foo()'
2011-10-27 19:56:59 +02:00
PKEuS
845e5d259a
Improved isJavaOrCSharp, isC and isCPP. Fixed isC for files with includes.
2011-10-27 19:18:54 +02:00
Thomas Jarosch
22251d50bb
Bugfix: Use Token::Match instead of Token::simpleMatch because it's a complex pattern
...
This bug was in here before my recent refactoring.
(And yes, I wrote a check for cppcheck's Token::Match invocation ;))
2011-10-27 16:43:04 +02:00
Thomas Jarosch
434fb933a8
Implement Token::findsimplematch und use it for simple patterns
2011-10-27 15:59:22 +02:00