Daniel Marjamäki
0cfec3c89c
Tokenizer::SetVarId : Fixed segmentation fault
2008-12-12 20:25:08 +00:00
Reijo Tomperi
2ef955eb65
Refactoring: Moved token creation and token deletion into TOKEN class. Added previous() (not tested yet)
2008-12-09 17:31:04 +00:00
Nicolas Le Cam
aaabacfe87
Formatting: uniformize end of lines.
2008-12-09 00:49:32 +00:00
Nicolas Le Cam
eb80c9786f
Revert revisions 627 and 628
2008-12-08 23:41:34 +00:00
Nicolas Le Cam
e8d2c7cfb3
Formatting: uniformize end of lines (part 2)
2008-12-08 23:10:13 +00:00
Nicolas Le Cam
625b77ec33
Formatting: uniformize end of lines.
2008-12-08 23:06:19 +00:00
Reijo Tomperi
440203bd5c
Refactoring: Rest of the public variables in TOKEN moved to private area.
2008-12-08 22:02:37 +00:00
Reijo Tomperi
51024235a3
Refactoring: TOKEN::next renamed to _next, getter and setter functions for it added next() and next(TOKEN*).
2008-12-08 21:49:05 +00:00
Reijo Tomperi
25847fdec4
Refactoring: TOKEN::varId was moved from public to private
2008-12-08 17:45:55 +00:00
Daniel Marjamäki
3619552e38
Variable Id : First simple implementation
2008-12-08 17:28:44 +00:00
Daniel Marjamäki
c907589deb
Fixed a bug in Tokenizer::simplifyTokenList. The keyword operator is
...
never used in a variable declaration
2008-12-07 08:47:56 +00:00
Daniel Marjamäki
93c04efc95
tokenize: "~Base" should generate two tokens. "~" and "Base"
2008-12-06 17:53:30 +00:00
Daniel Marjamäki
7196b8a028
Tokenizer: Remove "volatile" keyword to simplify checking
2008-12-06 13:10:38 +00:00
Daniel Marjamäki
f7a846e31e
tokenize: Replace a complicated condition with a "Match"
2008-12-05 19:17:25 +00:00
Daniel Marjamäki
b029163cdc
tokenize: Replace "aaaa" and "strcmp" with "str" and "Match"
2008-12-05 19:04:41 +00:00
Daniel Marjamäki
09f7c07a4d
tokenize: Minor refactorings
2008-12-05 18:25:08 +00:00
Reijo Tomperi
c958482196
TOKEN: Match() function improved, %any% and const|volatile kind of patterns are now accepted. Simplified comparing on tokenize.cpp.
2008-12-04 21:48:15 +00:00
Daniel Marjamäki
3820a26e1c
Tokenizer: Simplify numeric comparisons
2008-12-04 19:32:26 +00:00
Reijo Tomperi
5eb653911e
Tokenizer: Fixed bug, const and volatile functions were not recogniced
...
by fillFunctionList()
2008-12-03 20:22:48 +00:00
Daniel Marjamäki
4f4a2391e0
Refactoring: Removed _settings member from the Tokenizer
2008-11-25 18:44:35 +00:00
Daniel Marjamäki
8845e8bc89
Refactoring: Tokenizer - renaming functions, moved the 'tokenizeCode' to the private section
2008-11-25 18:34:51 +00:00
Daniel Marjamäki
0d6bd9b7fd
TODO: added a todo to add an error message. and removed an "invalid" todo
2008-11-25 18:15:32 +00:00
Daniel Marjamäki
bc267bbca5
TOKEN: Refactoring the 'str' member variable
2008-11-24 19:38:08 +00:00
Reijo Tomperi
a6ad4045d4
Refactoring: IsName() and IsNumber() are no longer static and they don't take a parameter.
2008-11-23 12:21:40 +00:00
Reijo Tomperi
29a1468523
Refactoring: Renamed some member variables: variable -> _variable
2008-11-23 11:08:07 +00:00
Reijo Tomperi
0b2e7a0ef3
Refactoring: at() changed to tokAt() and getstr() changed to strAt()
2008-11-23 10:09:16 +00:00
Daniel Marjamäki
0c9784fc0c
Refactoring: The Tokenizer::FillFunctionList has no use of its parameter. Enabled the CheckFunctionUsage
2008-11-23 06:21:44 +00:00
Reijo Tomperi
3ba83b6620
Refactoring: token.* files added, Some functions from Tokenizer moved under TOKEN. Renamed few functions, like gettok() -> at(), combineWithNext() and deleteNext() are also new
...
names for old functions. Usage was gettok( tok, 2 ), but now it is tok->at( 2 ).
2008-11-22 22:49:14 +00:00
Daniel Marjamäki
0d3a99adb0
increased constness of member variable _tokenizer in the Check* classes
2008-11-22 20:00:36 +00:00
Daniel Marjamäki
a60dad3562
CheckBufferOverrun: increased constness of _tokenizer member
2008-11-22 19:47:10 +00:00
Daniel Marjamäki
07b5ebe72b
Check Function Usage: Removed much of the old checking and made some refactoring
2008-11-22 19:39:12 +00:00
Daniel Marjamäki
d68e2ae966
tokenizer: simplifyConditions tries to simplify conditions.. those that are always true to '( true )' and those that are always false to '( false )'
2008-11-22 17:53:22 +00:00
Daniel Marjamäki
2db69e6072
tokenizer: Added DeallocateTokens to the destructor so it's not necessary to cleanup manually
2008-11-22 09:44:02 +00:00
Daniel Marjamäki
9ce8918895
tokenizer: Added functions "alwaysTrue" and "alwaysFalse" to check if a
...
condition is always true / false
2008-11-22 09:32:57 +00:00
Reijo Tomperi
125692bc65
Refactoring: CommonCheck.* files are removed. Rest of the global functions from there were moved to Tokenizer class
2008-11-21 21:14:24 +00:00
Reijo Tomperi
51e9d98a5f
Refactoring: Errors are no longer logged via global functions to a global stream. Instead callback function is used via interface.
...
ErrorLogger interface was added and taken into use.
2008-11-20 22:19:26 +00:00
Reijo Tomperi
180e3b99e6
Refactoring: Some global functions moved to Tokenizer class
2008-11-20 20:54:52 +00:00
Daniel Marjamäki
dd5abf2c05
cleanup
2008-11-20 19:23:05 +00:00
Daniel Marjamäki
63bc26d662
Function list: Remove functions with duplicate names to prevent false positives
2008-11-20 19:18:55 +00:00
Reijo Tomperi
eb1b0abc1e
Refactoring: tokens() changed to const and to return const pointer.
2008-11-16 16:13:38 +00:00
Reijo Tomperi
aa579911ab
Refactoring: Global variable tokenes is no more.
2008-11-16 15:58:52 +00:00
Reijo Tomperi
ce08224547
Few static variables are now private members. ShowAll etc. global variables are now members of Settings class and given as a
...
parameter to the classes that need them.
2008-11-16 15:18:50 +00:00
Reijo Tomperi
0a638a57d0
Bug fix: Missing include from previous commit, didn't compile on Debian.
2008-11-15 22:54:39 +00:00
Reijo Tomperi
08b25dc0d4
Refactoring: Global/Static variables, FunctionList, GlobalFunctions and UsedGlobalFunctions are now private members of Tokenizer class.
...
Class GlobalFunction is now private subclass of Tokenizer.
Global functions CheckGlobalFunctionUsage, FillFunctionList and GetFunctionTokenByName are now member functions of Tokenizer.
2008-11-15 22:41:56 +00:00
Daniel Marjamäki
adad786d75
SimplifyTokens: Replace 'sizeof(*abc)' with '100'. This prevents false positives in checks
2008-11-15 17:21:35 +00:00
Daniel Marjamäki
1801f25bce
Simplify Tokens: Replace NULL with 0 and '(char *)0' with '0'
2008-11-15 16:27:09 +00:00
Reijo Tomperi
1efb4c95a6
Refactoring: Global variable Files is no more. Use tokenizer->getFiles() to get a pointer to it.
2008-11-13 22:39:47 +00:00
Reijo Tomperi
0b1ee10353
Refactoring: tokens_back and TypeSize are no longer global variables
2008-11-12 22:50:40 +00:00
Reijo Tomperi
ef9f472188
Refactoring: Tokenizer class added, functions still mostly static and
...
using globals
2008-11-09 07:19:53 +00:00
Daniel Marjamäki
c220b061dc
Refactoring TOKEN: Changed from struct to class
2008-11-06 18:31:39 +00:00
Daniel Marjamäki
69a3595f19
cleanup of UTF-8. Updated the Makefile
2008-11-06 00:11:37 +00:00
Daniel Marjamäki
eb86a0fc34
Tokenizer: Skip inline assembly (Bug 2220727)
2008-11-05 07:28:40 +00:00
Daniel Marjamäki
5e4a7fefe5
Tokenize: Changed the array CurrentToken to a std::string
2008-11-04 19:09:31 +00:00
Daniel Marjamäki
375801f51e
Tokenizer: Handle '\' in preprocessor lines
2008-11-03 07:53:30 +00:00
Daniel Marjamäki
f1330c3db0
memleak: fixed false positives for assignment in return statement (bug
...
2205568)
2008-11-02 10:33:38 +00:00
Daniel Marjamäki
8d2cdbc09f
fixed compilation warnings generated by visual c++. Nothing serious
2008-10-31 08:29:59 +00:00
Daniel Marjamäki
a3a4d72082
preprocessor: Use the new preprocessor in cppcheck
2008-10-30 19:42:34 +00:00
Daniel Marjamäki
5b9aa96aba
Licensing: Using the GPL 3 license
2008-10-26 07:55:15 +00:00
Daniel Marjamäki
0658d65a7b
tokenize: Fixed possible endless loop problem when handling typedefs
2008-10-19 06:21:01 +00:00
Daniel Marjamäki
815dd364ed
Incomplete statement: Check for statements that begin with a constant
2008-09-20 17:34:37 +00:00
Daniel Marjamäki
259e0ce238
tokenize: Fixed a bug in the tokenizer
2008-09-11 18:37:36 +00:00
Daniel Marjamäki
5e9f1010ff
compilation: Various cross compilation fixes. The "--recursive" option doesn't work on VC now.
2008-09-11 17:03:58 +00:00
Daniel Marjamäki
ae322b5f45
made cppcheck compile with g++ 4.3
2008-08-30 18:29:37 +00:00
Daniel Marjamäki
0e267441de
djgpp: Fixed compiler warnings/errors when compiling with DJGPP
2008-08-30 16:38:56 +00:00
Daniel Marjamäki
3daf128c0f
tokenize: handle simple typedefs
2008-08-28 06:37:11 +00:00
Daniel Marjamäki
81bcde9ed0
cleanup: removed spaces
2008-08-12 06:40:55 +00:00
Daniel Marjamäki
59c1c16e03
Checking for memory leaks. Changed the handling of comments about
...
deleting
2008-04-12 06:33:45 +00:00
Daniel Marjamäki
1d258a55a4
Make it possible to disable memory leak checking for a variable. Usable to avoid false positives
2008-04-11 18:37:15 +00:00
Daniel Marjamäki
a938b4ed39
Fixing bug 1935006 - Compile problems on cygwin
2008-04-06 06:26:11 +00:00
Daniel Marjamäki
69d33444d4
Added style checks to check for unused global functions
2008-03-29 09:44:23 +00:00
Daniel Marjamäki
4691999ede
Refactoring: Replaced deprecated "match" with the new "Match"
2008-03-28 07:18:03 +00:00
Daniel Marjamäki
44bee90d82
Refactoring (Replace '->' with '.', use matching function when possible)
2008-03-23 14:15:44 +00:00
Daniel Marjamäki
ab7cb379af
In the checks, use const pointers
2008-03-22 11:46:06 +00:00
Daniel Marjamäki
506fc0e16d
tokenize: Fixed two bugs
...
* don't hang if we can't find the ending of a string.
* don't divide by zero
2008-03-19 17:09:51 +00:00
Daniel Marjamäki
d0cffeaa8c
Updated tokenizer. To handle "#define f1(a,b) (a+b)" better
2008-03-18 07:45:35 +00:00
Daniel Marjamäki
a9524b9207
Added test 'CheckVariableScope'. Increased constness.
2008-03-16 13:17:43 +00:00
Daniel Marjamäki
08b3b2ab63
CheckUnsignedDivision: Added check. Not very accurate yet.
2008-02-20 18:20:59 +00:00
Daniel Marjamäki
72d9e43f92
Made it compilable by borland c++
2008-02-18 17:11:34 +00:00
Daniel Marjamäki
4cb3c7b96b
Unit Testing: Start
2008-02-16 15:46:32 +00:00
Daniel Marjamäki
5070bfd87d
tokenizer: removed some preprocessing => less false positives
2007-10-23 06:36:29 +00:00
Daniel Marjamäki
ade2265ed2
Minor modifications to make it compile on linux
2007-07-18 06:37:37 +00:00
Daniel Marjamäki
ba13ad5e3c
Minor updates to make it portable to Linux.
2007-07-17 06:15:50 +00:00
Daniel Marjamäki
5b9513b17d
Tokenize: generate tokens on '#define' (CheckIncludedHeaders)
2007-06-08 18:55:44 +00:00
Daniel Marjamäki
7a8ee64068
tokenize: bug fixes. Handling typedefs.
2007-06-03 17:08:30 +00:00
Daniel Marjamäki
7b85324a0b
tokenize: Fixed the 'typedef' simplifications. Added token '#' upon preprocessor instructions.
2007-06-02 16:32:07 +00:00
Daniel Marjamäki
f3bbdbf144
tokenizer: made the 'SizeOfType' public. bug fix in the tokenizer (strings longer than 1000 characters).
2007-05-30 20:08:05 +00:00
Daniel Marjamäki
012ba2f492
Tokenize: Replace 'typedef'
2007-05-29 17:11:53 +00:00
Daniel Marjamäki
ae46002607
Tokenize: Simplify declarations
2007-05-29 06:24:36 +00:00
Daniel Marjamäki
a2df9a5647
Tokenize: Replace '*(var+num)' with 'var[num]'
2007-05-28 10:34:18 +00:00
Daniel Marjamäki
03bcdf9e6e
Tokenize: improved the preprocessing of 'sizeof(type)'
2007-05-28 06:17:18 +00:00
Daniel Marjamäki
7908421e0e
Tokenize: Improved the tokenizer. Calculations are done in the tokenizer. sizeof is replaced with numbers.
2007-05-26 06:44:28 +00:00
Daniel Marjamäki
a8f4091875
tokenize: moved 'IsName' to commoncheck. Replace 'sizeof(type)' with size.
2007-05-25 06:50:16 +00:00
Daniel Marjamäki
f20c34a751
CheckClass; Added files (Check for mistakes related to classes)
2007-05-24 13:07:30 +00:00
Daniel Marjamäki
ae4c97f814
tokenize: Added files
2007-05-24 05:40:45 +00:00