Commit Graph

5156 Commits

Author SHA1 Message Date
Daniel Marjamäki 8cca41774d Fixed #4446 (Crash on complex C++ template) 2013-11-21 20:27:24 +01:00
Daniel Marjamäki 2c1f579b3b Library: Fixed formatstr handling 2013-11-21 16:32:53 +01:00
orbitcowboy b74db1b791 Tokenize:simplifyFloatCast(): added corresponding suffix, incase of type 'float'. 2013-11-20 23:58:43 -08:00
Alexander Mai 7d45e9be73 Fixed #5122 (duplInheritedMember on private variables) 2013-11-21 05:39:23 +01:00
Daniel Marjamäki ef108c49ec Tokenizer: simplify enums better. add parentheses to enforce operator precedence. 2013-11-20 18:04:28 +01:00
Daniel Marjamäki e8eeb90adb AST: Fixed 'same expression' false positives (git merge --squash s, <<, >>) 2013-11-20 16:18:09 +01:00
Daniel Marjamäki 27a40b10e1 AST/incorrectLogicOperator: Better handling of large doubles where x+1=>x 2013-11-20 06:33:34 +01:00
Daniel Marjamäki 6869d0de30 AST: Handle L'x' 2013-11-20 05:57:56 +01:00
Daniel Marjamäki 47b98470eb Tokenizer: Simplify float casts of integer constants 2013-11-19 18:07:12 +01:00
Daniel Marjamäki f8cf64afef Fixed #4710 (Template parser bug: const in constructor changes template names) 2013-11-19 06:07:25 +01:00
Daniel Marjamäki 4e003c392e AST: code cleanup. Remove unreachable 'break' after 'return' 2013-11-18 23:24:58 +01:00
Daniel Marjamäki 45ee3b0fba AST: Refactoring new checkIncorrectLogic checking 2013-11-18 23:09:14 +01:00
Daniel Marjamäki ff5f223a1d Fixed #5116 (false positive: memset on class (nested struct)) 2013-11-18 16:56:00 +01:00
Daniel Marjamäki 033cb19656 Same expression: Don't write warnings for same expression on both sides of arithmetical operators 2013-11-17 17:21:39 +01:00
Daniel Marjamäki 71e61fb1ed Uninitialized variables: Fixed false positive when using ?: 2013-11-17 12:42:53 +01:00
Daniel Marjamäki 77e09d72a1 Uninitialized variables: Fixed false negatives when using ({}) 2013-11-17 12:11:18 +01:00
Daniel Marjamäki d342387b95 Uninitialized var: Fixed false negatives for self assignment 2013-11-16 18:07:33 +01:00
Daniel Marjamäki 2a640a59c2 Tokenizer: Improved handling of pointer aliases. This fixes some false negatives. 2013-11-16 17:30:04 +01:00
Martin Ettl feb54a46fb Merge branch 'master' of https://github.com/danmar/cppcheck 2013-11-10 05:06:00 +01:00
Daniel Marjamäki cfd6b0c384 UninitVar: fixed false negatives for function calls 2013-11-16 12:02:21 +01:00
Daniel Marjamäki 8c7e3d14aa Fixed #5119 (Preprocessor: Using -D suppresses __cplusplus for C++ files) 2013-11-15 19:21:21 +01:00
Daniel Marjamäki 30720affd6 Tokenizer::setVarId: Fixed hang when checking libgc 2013-11-15 16:16:22 +01:00
Daniel Marjamäki 5af2fe6e5b AST: improved 'incorrect logic' checking when there are nested expressions 2013-11-15 06:51:35 +01:00
Daniel Marjamäki d1721b9d1b AST: Improved 'same expression on both sides of operator' checking for nested operators 2013-11-15 06:35:46 +01:00
Daniel Marjamäki 203d3e916b Fixed #5173 (false positive Variable XX is reassigned a value before the old one has been used) 2013-11-14 16:10:00 +01:00
Daniel Marjamäki 673400920d AST: Fixed 'a[1][2]' 2013-11-13 17:52:56 +01:00
Daniel Marjamäki 7fe51eb58b Fixed #4989 (False positive: Wrong processing of __asm block) 2013-11-13 06:04:00 +01:00
Daniel Marjamäki 1ecade2657 AST: don't warn about duplicate expressions around '+' operator. It might be more efficient than using for instance '*2' 2013-11-11 20:03:59 +01:00
Daniel Marjamäki 58d7caded1 AST: improved handling of casts 2013-11-11 16:39:34 +01:00
Martin Ettl 3bf415fa2b checkbufferoverrun: improved constness of local variables. checkbufferoverrun:array_index(): added a bailout if the function is called with tok=NULL and added a NULL pointer check after a dynamic_cast. 2013-11-10 05:05:31 +01:00
Martin Ettl 347e1eae20 Fixed #5162: Tokenizer:simplifyInitVar: Unused pointer value (UNUSED_VALUE) returned_pointer: Pointer tok2 returned by tok2->next() is never used (CID 1124084). 2013-11-10 00:40:42 +01:00
Daniel Marjamäki 4027848761 incorrectLogicOperator: fixed FP when comparing char values. improved handling of float comparisons. 2013-11-10 18:06:51 +01:00
Daniel Marjamäki 807f62520c Fixed crash caused by endless recursion in redundant assignments check 2013-11-10 17:20:40 +01:00
Alexander Mai 687aeb4f5f Fixed #5158 (segmentation fault (valid code)) 2013-11-10 16:22:52 +01:00
Daniel Marjamäki bb746261d3 AST: Fixed crash 2013-11-10 15:51:33 +01:00
Daniel Marjamäki 85b41059c5 astyle formatting 2013-11-10 15:49:53 +01:00
Daniel Marjamäki 4ed4d71b3c CheckOther::checkIncorrectLogicOperator(): cleanup 2013-11-10 14:24:09 +01:00
Daniel Marjamäki 0dd17f9fad Merge pull request #198 from simartin/ticket_5073
Ticket #5073: Don't crash upon invalid do-while loop.
2013-11-10 03:09:16 -08:00
Daniel Marjamäki cadb284a3d Refactored the AST checking of CheckOther::checkIncorrectLogicOperator() 2013-11-10 11:59:18 +01:00
Martin Ettl babbee4e73 Fixed typos in comments, no functional changes. 2013-11-09 16:07:28 +01:00
Simon Martin 185b88c6e3 Ticket #5073: Don't crash upon invalid do-while loop. 2013-11-08 23:13:21 +01:00
Daniel Marjamäki 20b84fcdee Null pointers: Don't warn when first argument to freopen() is NULL 2013-11-08 13:22:07 +01:00
Robert Reif 52df31b501 Fixed #5153 ((debug) Scope::checkVariable found variable ')') 2013-11-08 12:56:32 +01:00
Robert Reif a6ef3a224a Fixed #5151 (false negative: improper formatstring - vector::at()) 2013-11-08 12:44:05 +01:00
Daniel Marjamäki b0ce42565e AST: Added experimental new implementations for CheckAssignIf::comparison, CheckOther::checkIncorrectLogicOperator and CheckOther::checkDuplicateExpression 2013-11-07 14:38:08 +01:00
orbitcowboy 43103c84d8 Checkother:memsetZeroBytes: removed not needed '\n' from verbose message. 2013-11-07 05:15:36 -08:00
orbitcowboy 3d47ae9463 checkother:memsetZeroBytes: improved verbose message. 2013-11-06 06:42:27 -08:00
orbitcowboy 86aa2a27ab checkother: improved constness of local variables, no functional change. 2013-11-06 06:15:32 -08:00
Daniel Marjamäki a572c0b728 AST : cleanup unused functions 2013-11-06 12:38:58 +01:00
Martin Ettl 4eba02d901 Checkbufferoverrun: improved constness of local variables, no functional changes. 2013-11-03 04:48:41 +01:00
Daniel Marjamäki fb04c8ff84 Fixed #5107 (redundantAssignment when pointer changes) 2013-11-04 23:46:07 +01:00
Daniel Marjamäki 7996d609be Fixed #5108 (false positive: uninitialized variable (assignment in function parameter)) 2013-11-04 23:09:15 +01:00
orbitcowboy 929cda6696 fixed #5141: Tokenizer: Dereference before null check (Scan.coverity id 1061759) 2013-11-04 03:53:23 -08:00
Daniel Marjamäki 8ff412fcee Fixed #5142 (False positive with floating-point special cases in conditions) 2013-11-04 11:56:43 +01:00
Daniel Marjamäki dde46527f3 AST: Handle ternary operators 2013-11-04 11:44:54 +01:00
Daniel Marjamäki de29991c11 AST: Rewrite using standard approach 2013-11-04 11:26:16 +01:00
Daniel Marjamki 9959c2866c AST: fixed hang for ',&x..' 2013-11-03 15:05:58 +01:00
Daniel Marjamki bcc8384a95 Fixed #5145 (False Positive: Variable 'A' hides enumerator with same name) 2013-11-03 09:34:48 +01:00
Daniel Marjamäki 5f0cfa0ee4 Fixed #4983 (False positive warning 'Possible null pointer dereference: lblList - otherwise it is redundant to check it against null.' with sizeof lblList[0]) 2013-11-02 23:56:10 +01:00
Daniel Marjamäki 769b4617c3 Fixed #5142 (False positive with floating-point special cases in conditions) 2013-11-02 22:58:23 +01:00
Daniel Marjamäki a50e5c2c23 Merge pull request #195 from simartin/ticket_5139
Ticket #5139: Properly handle recursive macro definitions
2013-11-02 11:21:13 -07:00
Daniel Marjamäki c505f5ea23 Fixed AST problem for 'if ((a.b&c)==d){}' 2013-11-02 19:18:58 +01:00
Daniel Marjamäki bbdfd8b5c7 Make it possible to create AST, by using the --ast flag 2013-11-02 18:37:35 +01:00
Daniel Marjamäki f0a621a952 Tokenizer: Added MAXTIME so cppcheck can be compiled with a hard max time. Will be used for the daca2. 2013-11-02 17:31:14 +01:00
Simon Martin 95c08d5613 Ticket #5139: Properly simplify recursive macro definitions 2013-11-01 16:47:22 +01:00
Robert Reif ac3b1c0611 Fixed #5134 (Memory leak below CheckIO::checkWrongPrintfScanfArguments()) 2013-11-01 05:42:37 +01:00
Martin Ettl 083af88801 Checkio: removed redundant NULL-pointer check, introduced by me. 2013-11-01 00:18:13 +01:00
Martin Ettl 3e13408da2 Merge branch 'master' of https://github.com/danmar/cppcheck 2013-10-31 20:03:13 +01:00
Martin Ettl 897533ab93 Checkio: fixed potential NULL-pointer dereference (Coverity-ScanId: CID 1113428). 2013-10-31 20:03:05 +01:00
XhmikosR a60252ce7b Fix compilation error with VS after e446a28b3d. 2013-10-31 20:56:47 +02:00
Martin Ettl 5156481db4 Library: return false from load() when tinyxml::FirstChildElement() return a NULL pointer. 2013-10-31 19:49:36 +01:00
Daniel Marjamäki e446a28b3d Refactoring FileLister and Path so they don't depend on Library 2013-10-31 19:09:01 +01:00
Martin Ettl c529de6e07 Library: tinyxml2::FirstChildElement() is capable of returning 0. This fixes a waring of scan.coverity(): CID 1113430 (#1 of 1): Dereference null return value (NULL_RETURNS) 2013-10-29 00:36:27 +01:00
Daniel Marjamäki d3bd373798 Fixed #5131 (False Positive: %u in format string requires 'unsigned int' but the argument type is 'int'.) 2013-10-31 17:20:00 +01:00
Daniel Marjamäki 352c459e28 Merge pull request #194 from simartin/ticket_5121
Ticket #5121: Handle static variable declarations depending on one another
2013-10-30 22:09:44 -07:00
Alexander Mai 14787cde99 Fixed #5129 (FP:arithOperationsOnVoidPointer on void**) 2013-10-31 06:04:51 +01:00
Daniel Marjamäki 06c5bd0daa Fixed #5128 (False positive zerodivcond 'a ? 1 / a : 0') 2013-10-30 16:51:00 +01:00
Simon Martin d67722ebdf Ticket #5121: Handle comma separated static variable declarations depending on one another 2013-10-30 15:48:00 +01:00
Simon Martin 463ef2e71e Ticket #5120: New test case, that works now that #5125 is fixed 2013-10-30 10:15:03 +01:00
Simon Martin 052be76635 Ticket #5125: Avoid infinite recursion for recursive class definitions 2013-10-29 21:41:47 +01:00
Daniel Marjamäki 5c072993e3 CheckBool: Fixed false negative when assigning bool to pointer '; s.p = true; ' 2013-10-29 16:16:52 +01:00
orbitcowboy 30984ff649 Tokenize: improved const correctness of local variables, no functional change. 2013-10-25 01:34:53 -07:00
orbitcowboy 76e092428a Tokenize: improved const correctness of local variables, no functional change. 2013-10-25 01:31:55 -07:00
Daniel Marjamäki 514277e91b Library: Fixed bug. Continue if there is no errors. 2013-10-27 17:38:39 +01:00
PKEuS bd752cabcf Let TinyXML2 handle fopen/fclose. Added testlibrary.cpp to VS10 solution 2013-10-27 17:32:38 +01:00
Daniel Marjamäki e0244d343d Library: Fixed resource leak 2013-10-27 17:17:54 +01:00
Daniel Marjamäki 569a29bc4a Library: Added simple testing 2013-10-27 17:10:43 +01:00
PKEuS c95b153700 Refactorizations:
- Removed some redundant operator=, copy-ctor and dtor implementations
- use operator[] instead of at() in library loading code
2013-10-27 13:55:13 +01:00
Robert Reif 94187c41c2 Fixed #5104 (False positive: Invalid argument in printf and scanf for vector template) 2013-10-27 10:48:49 +01:00
Daniel Marjamäki 4a6274dcc0 Merge pull request #183 from felipensp/null_ptr_typeof
- Fixed false positive when passing pointer to typeof()
2013-10-27 02:37:31 -07:00
Daniel Marjamäki ec3ab74631 Preprocessor: Use set instead of list to track '#pragma once' usage 2013-10-27 10:33:37 +01:00
Daniel Marjamäki 86358694fb Uninitvar: Added comment to clarify that the old logic for function calls has been removed because it had FP and the 'same' checking in the new checker will be used to catch these errors instead. 2013-10-26 18:46:06 +02:00
Daniel Marjamäki 51ad9ab6ac Fixed #4896 (FP Uninitialized variable on template function) 2013-10-26 18:39:40 +02:00
Daniel Marjamäki 8687e85e56 Fixed #4850 (False positive: invalidIterator1 detected when iterator container is member of some struct) 2013-10-26 17:48:20 +02:00
Daniel Marjamäki 853d9dd7a9 Fixed #4956 (false positive: Variable 'myIsFirst' is assigned a value that is never used.) 2013-10-26 15:22:28 +02:00
Daniel Marjamäki 22351a73b1 doxygen: escape #pragma in comment to make doxygen happy. Thanks XhmikosR for the suggestion! 2013-10-25 16:08:19 +02:00
Daniel Marjamäki c6702db9ab Code cleanups 2013-10-23 15:03:31 +02:00
XhmikosR c11ee0a1ed Remove unused variables. 2013-10-23 09:19:23 +03:00
XhmikosR 93bdf45313 Fix typo in error message. 2013-10-23 09:05:39 +03:00
Daniel Marjamäki 364757e1e1 Fixed #5089 ('inconclusive' output printed although --inconclusive not specified) 2013-10-23 06:42:52 +02:00