38 Commits

Author SHA1 Message Date
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
Edoardo Prezioso
bc034095f1 Fixed ticket #3543 (segmentation fault of cppcheck). 2012-01-31 19:34:55 +01:00
Robert Reif
42afd2d63a fix #3561 (SymbolDatabase: throw foo; creates a variable with type throw) 2012-01-27 19:24:01 -05:00
PKEuS
6906001366 Added support for references to symboldatabase 2012-01-26 17:04:25 +01:00
Robert Reif
4d56395504 symbol database: add simple try/catch tests 2012-01-25 22:48:18 -05:00
Daniel Marjamäki
f81557da50 Fixed #3508 (Symbol database: mixing up constructors and destructors) 2012-01-22 19:48:36 +01:00
PKEuS
96ae010e48 - Correctly set Scope::function variable in symboldatabase
- Refactorizations
- Fixed some cppcheck warnings
2012-01-21 10:08:09 +01:00
Daniel Marjamäki
36797a97ef Symbol database: Fixed comments 2012-01-07 09:37:38 +01: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
Reijo Tomperi
8cae17fda8 Update year to 2012 2012-01-01 01:05:37 +02: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
Ettl Martin
4da702ebbf ticket 3437: added missing testcase 2011-12-22 09:20:37 +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
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
Daniel Marjamaki
b96ab6ba26 Fixed #3188 (Function parser false positive) 2011-11-05 12:23:05 +01:00
Daniel Marjamäki
6f8e42a5af changed the astyle formatting flags 2011-10-13 20:53:06 +02:00
Robert Reif
092ba0b1de fix symbol database bug where function variable type of a nested class was not found 2011-09-28 22:05:26 -04:00
Robert Reif
7775934492 really fix multi-dimensional arrays with undefined size 2011-08-28 13:32:42 -04:00
Robert Reif
88019658b4 fix #3013 (segmentation fault of cppcheck ( struct x : virtual y )) 2011-08-16 19:16:58 -04:00
Robert Reif
f7b9d4d726 fix #2991 (segmentation fault of cppcheck ( ::y(){x} )) 2011-08-11 17:57:54 -04:00
Robert Reif
272eb445fb fix #2865 (segmentation fault of cppcheck ( char a[1] )) 2011-06-27 07:31:10 -04:00
Robert Reif
bd03768415 move symbol database tests to testsymboldatabase.cpp 2011-04-28 21:03:57 -04:00
Robert Reif
e8eb20c6ef fix debug warning for function parameters with template with varid of 0 2011-04-28 20:53:31 -04:00
Robert Reif
79f0fe7d1c refactor symbol database and checks to use list of Scope rather than list of Scope pointers 2011-03-10 19:43:29 -05:00
Robert Reif
962183f964 add an array flag to symbol database Variable class 2011-02-27 10:21:14 -05:00
Robert Reif
c283bc414d fix symboldatabase global variable detection 2011-02-25 07:17:55 -05:00
Robert Reif
79862573ba Symbol database: better unit testing. ticket: #2468 2011-01-28 08:33:02 +01:00
Ettl Martin
a83aced2ec fixed uninitialized members in tests 2011-01-21 23:48:42 +01:00
Pete Johns
0e1bab6dc3 Merge branch 'multi_indirection_templates' 2011-01-18 21:08:04 +11:00
Pete Johns
abfd907763 Made isVariableDeclarationIdentifiesTemplatedPointerToPointerVariable() pass.
And added isVariableDeclarationIdentifiesTemplatedArrayVariable() (passing) into the bargain.
2011-01-18 20:14:12 +11:00
Pete Johns
69d4db714e Added TODO test cases for template variables with multiple levels of pointer indirection
Following email from Robert Reif
2011-01-18 18:29:42 +11:00
Robert Reif
959e10cee5 Symbol database: renamed classes. ticket: #2468 2011-01-17 18:29:19 +01:00
Robert Reif
bf9528558e Symbol database: pulled out classes into global scope. ticket: #2468 2011-01-17 07:21:59 +01:00
Pete Johns
7918c4b804 isVariableDeclaration() now detects template variables. 2011-01-17 08:36:53 +11:00
Pete Johns
38c37ad2d8 Moved array declaration detection into isVariableDeclaration() 2011-01-17 08:36:52 +11:00
Reijo Tomperi
226b605774 Change year 2010 -> 2011 in license texts. 2011-01-09 21:33:36 +02:00
Pete Johns
502cfe7243 Fixed #2384 ("The function 's::f' can be const" reported for pointer-to-pointer)
Moved check for pointer variables into isVariableDeclaration()

Can now handle multiple scopes and multiple levels of indirection. Simplified check for strucs and unions, too, reducing the size of getVarList().

skipScopeIdentifiers() and skipPointers() should probably be methods on class Token.
2010-12-31 22:12:32 +11:00
Pete Johns
2e61736c73 Refactoring following #2377 (Technically the member function xxx can be const)
symboldatabase now recognises variables with arbitrarily many scopes.

Extracted method isVariableDeclaration()

Added unit tests for isVariableDeclaration in new file testsymboldatabase.cpp

Extracted givenACodeSampleToTokenize helper class into testutils.h to reduce duplication.
2010-12-30 19:46:44 +11:00