Commit Graph

144 Commits

Author SHA1 Message Date
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