272 Commits

Author SHA1 Message Date
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
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
859793731d SymbolDatabase: Refactor findFunction handling. Ticket: #4494 2013-01-28 06:47:48 +01:00
Robert Reif
a0d8fd26fe SymbolDatabase: improved handling of const in function parameters 2013-01-27 02:46:00 +01:00
Robert Reif
3b08b410a2 Symbol database: Improved function lookup (a.b.f()). Ticket: #4494 2013-01-25 06:49:04 +01:00
Robert Reif
cecd726b11 Symbol database: Improved function lookup for foo.f(). Ticket #4494 2013-01-23 16:53:55 +01:00
XhmikosR
645126fb8e remove double trailing semicolons 2013-01-23 06:48:21 +01:00
Robert Reif
ddb604d1a5 Symbol database: function lookup when :: is used. Ticket #4494 2013-01-22 06:55:25 +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
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
Robert Reif
d37906041b Fixed #4458 (False positive: noCopyConstructor in template class) 2013-01-04 10:35:24 +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
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
Daniel Marjamäki
bf169e0c59 Replaced %name% with %type% 2012-12-31 10:45:37 +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
5ba2a300af Symbol database: Improved handling of array arguments (#4444) 2012-12-28 16:28:29 +01:00
Robert Reif
bd2f59bdf0 Fixed #4442 (crash of cppcheck while scanning gcc-testsuite (invalid code)) 2012-12-28 08:36:20 +01:00
Robert Reif
a43ae677d7 Fixed #4419 (False positive: Class does not have a constructor) 2012-12-27 17:21:30 +01:00
acm4me
7da155c8ba Support for Sun Studio C++ compiler 2012-12-27 11:51:12 +01:00
Daniel Marjamäki
b39afb2cf9 Revert "Fixed #4419 (False positive: Class does not have a constructor)"
This reverts commit 9a79961b6c147878619037cc0a61046b4976771e.

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
Robert Reif
bb2a15c140 Symbol database: Better handling of 'using namespace N;'. Ticket: #4412 2012-12-20 06:53: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
Robert Reif
63b585424d Fixed #4386 (False positive: ctor not detected) 2012-12-05 20:31:17 +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
Robert Reif
35c2b8058d Fixed #3190 (SymbolDatabase: Parse of sub class constructor fails) 2012-11-30 06:03:58 +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
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
b591097c87 Revert "Fixed #3190 (SymbolDatabase: Parse of sub class constructor fails)"
This reverts commit 1ee980184eb8caa46b0a166bb76074be26622a30.
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
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
Robert Reif
bbfd676b4e speed up checks by caching commonly looked up stuff in the symbol database 2012-10-10 20:42:07 +02:00
Robert Reif
8ccbde117a Fixed #4261 (CheckOther::checkComparisonOfFuncReturningBool using wrong function scope test) 2012-10-08 16:15:07 +02:00
PKEuS
929f16d892 Fixed hang on garbage code (#4193) 2012-09-14 15:32:35 +02:00
PKEuS
22a8e3f4e6 Replaced Tokenizer::getFunctionTokenByName() by SymbolDatabase::findFunctionByName(), which handles scopes slightly better. 2012-09-11 18:03:47 +02:00
PKEuS
e9f13e1547 Fixed false positive #4163 2012-09-10 16:14:24 +02:00
PKEuS
c2d4afc525 Support default arguments in symboldatabase for arguments without name (#4055) 2012-09-06 20:50:46 +02:00
PKEuS
20f989b6c4 Skip code in brackets in default argument declaration (fixes #4057) 2012-09-06 20:02:53 +02:00
Daniel Marjamäki
d7e521845b SymbolDatabase: Made function static after self-check suggestion 2012-09-01 10:46:09 +02:00
PKEuS
00f6c635b8 Detect functions returning a template type in SymbolDatabase
Fixed comment
2012-08-22 03:37:50 -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
68e19b33ff Fixed parsing of C++11 initializatation in initializer list (#3957) 2012-07-10 06:15:11 -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
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
edea4ef131 Refactoring: Renamed CheckNullPointer::isPointer to Token::isUpperCaseName 2012-06-21 19:00:53 +02:00