Commit Graph

967 Commits

Author SHA1 Message Date
Robert Reif bc4db75aa9 fix #2146 (uninitialized variable: false negative for 'return x ? 1 : y;') 2011-07-31 21:33:43 -04:00
Robert Reif addcec704f fix cppcheck warning in Tokenizer::duplicateTypedef() 2011-07-30 10:12:35 -04:00
Daniel Marjamäki 1ce261e44d astyle formatting 2011-07-24 14:54:13 +02:00
Daniel Marjamäki 158fa25623 Fixed #2817 (valgrind errors in simplifyTemplate when running tests) 2011-07-24 13:32:54 +02:00
Daniel Marjamäki 0dd5472642 Tokenizer::simplifyFunctionPointer: don't simplify function call. Ticket: #2873 2011-07-22 07:58:53 +02:00
Daniel Marjamäki fb3870071a Fixed #2885 (crash of cppcheck while checking gcc-testsuite) 2011-07-21 16:13:35 +02:00
Daniel Marjamäki 9f22d2fc6b Fixed #2897 (out of bounds false positive, using reinterpret_cast) 2011-07-21 09:32:24 +02:00
Daniel Marjamäki 7e7f6eecf5 Fixed #2794 (Improper hanling of preprocessor directives #if defined) 2011-07-20 23:50:57 +02:00
Daniel Marjamäki 6ce5107e49 Tokenizer: Better handling of constants. Related with #2920 2011-07-20 09:07:47 +02:00
Daniel Marjamäki 35938e74ad Tokenizer: better handling of 'struct AB ab; sizeof(ab)' 2011-07-16 22:07:30 +02:00
Daniel Marjamäki cf3ab649fb Fixed #2873 (segmentation fault of cppcheck while scanning rose-compiler suite) 2011-07-16 19:26:11 +02:00
Daniel Marjamäki 597733bec4 Tokenizer: minor update to handle C# code better 2011-07-16 18:12:55 +02:00
Daniel Marjamäki 274fd2b985 Tokenizer: Fix minor problem with 'X&&Y' 2011-07-15 19:37:39 +02:00
Daniel Marjamäki 66d145ba1c Fixed #2892 (false positive: (portability) Assigning an address value to the integer (int/long/etc) type is not portable) 2011-07-07 15:14:33 +02:00
Robert Reif b143b283e9 fix #2886 (crash of cppcheck ( typedef struct x { } )) 2011-07-03 10:50:15 -04:00
Robert Reif 8ec1dfacbf fix missing pop in Tokenizer::simplifyStructDecl() when anonymous struct/union removed 2011-07-03 08:14:51 -04:00
Robert Reif 3f4cc5fa3a add class A {} a; -> class A {}; A a; conversion capability to Tokenizer::simplifyStructDecl() 2011-07-02 09:21:30 -04:00
Daniel Marjamäki db4a28d60b Tokenizer::simplifyGoto: Only simplify the last label in the function. If there are many labels in the same function and all labels are simplified, this function becomes very slow. 2011-07-01 18:07:41 +02:00
Reijo Tomperi 89fd5bacf9 Fix #2849, False positive: memory leak (using question mark operator)
http://sourceforge.net/apps/trac/cppcheck/ticket/2849
Simplify: *d = b ? b : a; into if-else
Simplify { ; { ; } } into { ; }
Removed one memleak test which should be redundant now as question marks
should not get into memleak check.
2011-06-30 22:04:26 +03:00
Robert Reif 77859b9a0f fix #2878 (derived global class not tokenized properly (class A : ::B { };)) 2011-06-30 07:25:36 -04:00
Robert Reif 586fdd24f2 fix #2825 (missing varid on class variables when multiple inheritance is used) 2011-06-29 20:04:04 -04:00
Robert Reif 443dd4c392 partial fix for #2867 handle derived class 2011-06-29 19:39:19 -04:00
Robert Reif 1286898fa0 fix #2864 (--errorlist missing errors: variableHidingTypedef and Extra qualification) 2011-06-28 21:46:54 -04:00
Robert Reif f403de7bad partial fix for #2867 Tokenizer::removeRedundantAssignment didn't understand function local class and removed class variable 2011-06-28 19:48:28 -04:00
Robert Reif 70a32fc245 fix #2875 (segmentation fault of cppcheck ( 0; (a) < (a) )) 2011-06-28 18:47:18 -04:00
Robert Reif 1713eeb532 fix #2859 (Extra qualification not detected) 2011-06-26 21:13:29 -04:00
Reijo Tomperi 918b4d859f Fixed #2860, False positive: Returning value of strncat() reported as memory leak
http://sourceforge.net/apps/trac/cppcheck/ticket/2860
2011-06-26 23:53:16 +03:00
Daniel Marjamäki 40a14736b7 Added TODO test case for the simplifyKnownVariables to better simplify local variables 2011-06-23 17:03:14 +02:00
Daniel Marjamäki 2d1b7285d2 Fixed #2815 (FP: Null pointer dereference error about a member) 2011-06-23 16:58:01 +02:00
Robert Reif db39f4364e fix #2845 (segmentation fault of cppcheck) 2011-06-21 07:31:55 -04:00
Robert Reif d80a55267c fix #2844 fix to generate correct output 2011-06-19 20:19:16 -04:00
Robert Reif 0bd26a73c4 fix #2844 (typedef causes 'syntax error') 2011-06-19 17:57:01 -04:00
Robert Reif eaf836b323 fix extra qualification check for same class name in different namespaces 2011-06-14 15:31:52 -04:00
Robert Reif e584b08066 fix #2835 (crash of cppcheck ( ><,f<i, )) 2011-06-12 12:09:52 -04:00
Robert Reif 729ee72a5a fix #2831 (crash of cppcheck ( z<y<x> )) 2011-06-12 08:38:15 -04:00
Robert Reif d1b260699a fix #2834 (crash of cppcheck (std::vector<int>::iterator)) 2011-06-12 08:24:49 -04:00
Robert Reif 5e3263235b fix #2739 (segmentation fault of cppcheck ( if()x )) 2011-06-11 15:51:12 -04:00
Robert Reif 3d4eb0d77e fix #2682 (segmentation fault of cppcheck ( x a[0] = )) 2011-06-10 15:11:45 -04:00
Robert Reif a9e2e15e40 improve #2828 fix by adding switch 2011-06-09 07:32:43 -04:00
Robert Reif 6635ed4630 fix #2828 (false positive: Function parameter 'STYLE' hides enumerator with same name) 2011-06-08 20:14:52 -04:00
Robert Reif a7fe9a3b50 fix 2 use after frees in simplifyEnum found by visual studio and verified by valgrind 2011-06-03 21:50:08 -04:00
Robert Reif 311651cc66 fix #2804 (Underlying type of enumerator produces a syntax error) 2011-05-27 11:17:39 -04:00
Daniel Marjamäki ab1b293f23 Fixed #2737 ((error) Analysis failed. If the code is valid then please report this failure.) 2011-05-19 17:04:36 +02:00
WenChung Chiu 1ea52cfa02 Fixed #2784 (Pointer issue: *&f=open()) 2011-05-18 07:25:30 +02:00
Daniel Marjamäki 03cd57260a added comment about how bad typedef behaviour can be reproduced 2011-05-07 14:40:47 +02:00
Daniel Marjamäki 8e5c63104c Fixed #2743 (segmentation fault of cppcheck 'std::vector<void(*)()> v1 = a, v2 = b;') 2011-05-07 14:23:14 +02:00
Robert Reif 51baca0359 fix #1982 (simplifyTypedef: scope info is lost) 2011-05-02 22:42:52 -04:00
Daniel Marjamaki 297ca63868 Fixed #2721 (Tokenizer::simplifyTemplates: fail when using template argument 'char[2]') 2011-05-01 19:05:18 +02:00
Daniel Marjamäki bb3c135d81 Tokenizer: Moved a few basic simplifications from simplifyTokenList to tokenize 2011-05-01 08:36:27 +02:00
Daniel Marjamäki 168bd2ebfc Fixed #2760 (false positive: uninitialized variable ', (a) =') 2011-05-01 08:27:59 +02:00
Daniel Marjamäki fb32d5111e Fixed #2755 (cppcheck goes into infinite loop while scanning OpenSSL sources) 2011-04-29 19:47:39 +02:00
Robert Reif e30852200e fix tokenizer bug where 'class B : private ::A { };' was tokenized to 'class B : private: : A { } ;' 2011-04-29 09:19:22 -04:00
Robert Reif 3c415e7833 fix #2745 (Enum vs local variable - conflict) 2011-04-23 22:08:03 -04:00
Robert Reif 670741271e fix #2746 (false positive: syntax error (typedef in __attribute__ ))) 2011-04-23 21:04:02 -04:00
Robert Reif cd64d8476c fixed #2614 (missing varid on function parameter) 2011-04-23 09:37:50 -04:00
Robert Reif 04309f74f5 fix #2738 (syntax error on valid code) 2011-04-20 19:09:28 -04:00
Robert Reif b1d3d291e6 fix #2736 (segmentation fault of cppcheck) 2011-04-20 07:49:04 -04:00
Martin Exner 2b08744b97 Fixed #2676 (setVarId: variables with global scope qualification :: don't get varids) 2011-04-18 06:56:39 +02:00
Daniel Marjamäki 05f59a1567 Tokenizer: Fixed bug. When varid is 0 then %varid% doesn't work. Ticket: #2723 2011-04-16 17:45:14 +02:00
Robert Reif 877a233145 fix #2716 (Easy to reproduce crash) 2011-04-16 10:35:23 -04:00
Daniel Marjamäki 739b6a93e2 Fixed #2713 (False positive (Redundant assignment)) 2011-04-16 12:07:56 +02:00
Robert Reif 3159df958d fix #2720 (false positive: syntax error with c++0x code) 2011-04-14 19:50:17 -04:00
Daniel Marjamäki 58dbbb0cab Inconclusive checking: Report inconclusive errors with reportInconclusiveError. It takes the same parameters as reportError. 2011-04-14 18:02:01 +02:00
Daniel Marjamäki 7021e3224b Fixed #2714 (False positive: ternary operator and += style warning.) 2011-04-14 17:30:50 +02:00
Robert Reif 75e5353b6d fix #2718 (Analysis failed. If the code is valid then please report this failure.) 2011-04-13 23:58:58 -04:00
Robert Reif 257197bdd1 fix #2717 (false positive: syntax error (typedef void f(int) const;)) 2011-04-13 23:24:41 -04:00
Daniel Marjamäki 11bd6bcd30 Fixed #2712 (false positive: Division by zero) 2011-04-10 21:27:09 +02:00
Daniel Marjamäki 1d86fb1738 Tokenizer: Code cleanup. Use %oror% to simplify code. 2011-04-10 11:55:15 +02:00
Daniel Marjamäki 0a1d6efe8c Tokenizer: Use %op% in simplifyOperatorName 2011-04-10 11:24:57 +02:00
Daniel Marjamäki f179df1f10 Tokenizer: Use %op% in simplifyCalculations 2011-04-10 11:22:00 +02:00
Daniel Marjamäki 57869e96e3 Tokenizer: Use %op% to clean up pattern 2011-04-10 11:09:49 +02:00
Daniel Marjamäki 970c989023 Tokenizer: Code cleanup. Removed redundant variable 2011-04-10 09:20:37 +02:00
Daniel Marjamäki f4f8aeca03 Tokenizer: Fixed bug in last commit 2011-04-10 09:18:37 +02:00
Daniel Marjamäki 4c753ca5ac Tokenizer: Use the %oror% in multiCompare patterns 2011-04-10 09:16:29 +02:00
Daniel Marjamäki a4471bc150 Refactoring: Use %op% 2011-04-09 18:33:37 +02:00
Daniel Marjamäki 447f61e9c7 Refactoring: Use %op% 2011-04-09 18:30:47 +02:00
Daniel Marjamäki 0730fad778 Refactoring: Use %op% 2011-04-09 18:24:41 +02:00
Daniel Marjamäki 6c4f5fc496 Token::multiCompare : allow that %op% is used in multiCompare pattern 2011-04-09 18:09:13 +02:00
Daniel Marjamäki 575cb242c2 Refactoring: Use Token::isOp 2011-04-09 16:22:47 +02:00
Daniel Marjamäki f6d910ab3d Refactoring: Use Token::isOp 2011-04-09 15:54:36 +02:00
Daniel Marjamäki 8e711b7925 Refactoring: there was almost duplicate functions 'isOp'. Created a new Token::isOp function instead. 2011-04-08 19:40:22 +02:00
Robert Reif 23e4f020e9 fix #2706 (Analysis failed. If the code is valid then please report this failure.) 2011-04-04 22:18:12 -04:00
Daniel Marjamäki ed8cdddcf5 Tokenizer: execute the simplifyIfNot and simplifyIfNotNull in the normal token list. ticket #2642 2011-04-02 21:21:05 +02:00
Daniel Marjamäki ea57e10c7f Tokenizer::simplifyCalculations: simplify division result if it's a whole number, even though it doesn't have precedence 2011-04-02 12:52:11 +02:00
Daniel Marjamäki f34e9e6623 Tokenizer: better simplification of calculations in conditions 2011-04-02 11:08:58 +02:00
Daniel Marjamäki ae2a8d839b Fixed #2693 (__declspec attribute not removed properly) 2011-03-30 19:49:55 +02:00
Stefan Weil 675e63b6a7 Spell checks 2011-03-30 16:45:31 +02:00
Robert Reif e9a23d9cb5 fix #2692 (False positive: if parsed as function in operator >>) 2011-03-28 20:02:06 -04:00
Daniel Marjamäki e89f6d6ec0 Fixed #2660 (False positive: Variable 'v' is assigned a value that is never used) 2011-03-27 08:19:09 +02:00
Daniel Marjamäki 3c2d3ca3a4 Fixed #2653 (segmentation fault of cppcheck 'x=b=0;') 2011-03-26 12:20:23 +01:00
Daniel Marjamäki 7d9872a134 Tokenizer::setVarId: Prevent that wrong varid is given when uncertain. Ticket: #2680 2011-03-26 10:05:07 +01:00
Daniel Marjamäki 2b1277aa64 Fixed #2680 (setVarId: variables with class qualification don't get varid) 2011-03-26 08:56:41 +01:00
Robert Reif 710eb8ffd9 add support for global namespace to Tokenizer::simplifyVarDecl() 2011-03-24 23:06:20 -04:00
Robert Reif fc258164cd fix #2675 (false positive: syntax error) 2011-03-24 22:26:42 -04:00
Robert Reif cbc81e20f5 fix Tokenizer::simplifyVarDecl() template assignment 2011-03-23 21:15:49 -04:00
Robert Reif 7e3e5d628d better fix for #2672 (False positive: function can be const, nested classes declared in one line) 2011-03-23 20:19:32 -04:00
Robert Reif 3259239dfe fix #2672 (False positive: function can be const, nested classes declared in one line) 2011-03-23 07:48:18 -04:00
Robert Reif c043e6e1a2 fix 2011-03-21 20:57:17 -04:00
Robert Reif dc0dfea079 fix invalid bitfield match and simplification that created invalid code 2011-03-21 20:17:14 -04:00
Robert Reif fc13854095 fix #1280 (Pointer to function support) 2011-03-19 16:21:26 -04:00
Robert Reif 92316e5745 fix #1987 (Internal error:: CheckClass::SpaceInfo::getVarList found variable 'element_size' with varid 0.) 2011-03-19 16:00:43 -04:00
Daniel Marjamäki 31af3a64bc Tokenizer::setVarId: Fixed problem with same variable name in multiple classes 2011-03-19 11:09:51 +01:00
Daniel Marjamäki 45a3828da7 Tokenizer::setVarId: Better handling of class declarations when variable usage comes before variable declaration 2011-03-19 09:04:03 +01:00
Robert Reif afc7fd82ed #2630 (segmentation fault of cppcheck (template <typedef A>) 2011-03-18 20:44:58 -04:00
Robert Reif 7b63da4964 fix #2651 (Segmentation fault (typedef)) 2011-03-17 20:00:49 -04:00
Daniel Marjamäki dab09aedee Fixed #2648 (Tokenizer::simplifyTemplates: Segmentation fault (gcc-testsuite)) 2011-03-17 21:45:03 +01:00
Robert Reif 7e04ea0859 fix removal of throw() from const functions 2011-03-16 19:54:52 -04:00
Daniel Marjamäki fec9edf628 Tokenizer::simplifyTemplates: First simple fix for problems when using sizeof in template parameter 2011-03-16 22:16:30 +01:00
Robert Reif f7cbc90c84 fix #2581 (### Internal error in Cppcheck. Please report it.) 2011-03-15 23:28:45 -04:00
Robert Reif ba0b3e6451 fix #2651 function typedef with extra ()s 2011-03-15 19:24:30 -04:00
Daniel Marjamäki 07fe361964 Fixed #2638 (Tokenizer::setVarId : varid is wrongly given when unknown macro is used) 2011-03-13 17:52:45 +01: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
Daniel Marjamäki 5a0ec56fc2 Fixed #2632 (segmentation fault of cppcheck ( void>(); void>() )) 2011-03-09 21:25:44 +01:00
Robert Reif 7a7257f200 fix #2630 (segmentation fault of cppcheck ( typedef ... ) 2011-03-08 20:24:57 -05:00
Daniel Marjamäki 0b8581e717 Fixed #2620 (Tokenizer::setVarId : wrong handling of member function parameters) 2011-03-08 20:41:41 +01:00
Robert Reif d74ae3b0f0 copy all flag fields in a Token 2011-03-07 20:04:25 -05:00
Daniel Marjamäki 7496cd412c Fixed #2631 (Tokenizer::simplifyTemplates: template usage 'std::cout << (foo<double>(r));') 2011-03-07 21:21:06 +01:00
Robert Reif d678e4424c fix #2630 (segmentation fault of cppcheck ( typedef y x () x )) 2011-03-06 18:59:56 -05:00
Daniel Marjamäki f53ff27b71 Tokenizer::simplifyTemplates: better handling of '(foo<double>())'. Ticket: #2631 2011-03-06 21:15:42 +01:00
Daniel Marjamäki 6648267ab8 Revert "Tokenizer::simplifyTemplates: better handling of '(foo<double>())'. Ticket: #2631"
This reverts commit de31ec1e44.
2011-03-06 21:07:06 +01:00
Daniel Marjamäki de31ec1e44 Tokenizer::simplifyTemplates: better handling of '(foo<double>())'. Ticket: #2631 2011-03-06 10:28:51 -08:00
Daniel Marjamäki 779dba9160 Fixed #2612 (segmentation fault of cppcheck ( <><< )) 2011-03-06 09:33:46 +01:00
Robert Reif 0debba4409 finish fixing #2624 (better function pointer support needed) 2011-03-05 21:41:58 -05:00
Robert Reif 7d2fb2ecde partial fix for #2624 (better function pointer support needed) 2011-03-05 20:48:28 -05:00
Robert Reif f3b2acf585 really fix #2620 reference of typedef of array not simplified properly 2011-03-03 20:32:10 -05:00
Daniel Marjamäki d7a6e729b8 Tokenizer::simplifyKnownVariables: Don't simplify 'strcpy(a,"ab"); b=a;'. Ticket: #2031 2011-03-03 20:07:56 +01:00
Robert Reif 3f0d0446e0 revert previous commit: simplified code isn't correct 2011-03-03 07:40:43 -05:00
Robert Reif ee4b4f62d8 fix #2620 reference of typedef of array not simplified properly 2011-03-03 07:27:53 -05:00
Daniel Marjamäki 8e9a1c33ad Fixed #2618 (Tokenizer::simplifyKnownVariables: Don't use known string value if address is wanted) 2011-03-01 20:20:48 +01:00
Daniel Marjamäki db04d7b71e Fixed #2616 (Segmentation fault with unknown macro) 2011-03-01 18:02:50 +01:00
Robert Reif 92efbd748e fix #2595 bitfield fix for case x: break; and default: break; 2011-02-28 19:35:00 -05:00
Daniel Marjamäki 893b84a87c Fixed #2615 (Segmentation fault in cppcheck 1.47) 2011-02-28 20:29:34 +01:00
Daniel Marjamäki c1c9b96bb6 Fixed #2031 (Tokenizer: simplify known value (string has known value after strcpy)) 2011-02-26 21:11:56 +01:00
Robert Reif 3529014924 expose number of variables found by Tokenizer 2011-02-26 08:42:19 -05:00
Daniel Marjamäki 9bf6e67898 Fixed #2610 (segmentation fault of cppcheck ( if () < {} )) 2011-02-24 18:49:16 +01:00
Robert Reif 26152a9264 fix #2609 (False positive on template dependent name) 2011-02-24 06:39:46 -05:00
Daniel Marjamäki daf0e7c37d Fixed #2604 (Segmentation fault of cppcheck ( sizeof <= A )) 2011-02-23 20:44:14 +01:00
Robert Reif d1f7a8aca4 fix #2403 (simplifyTypedef: array of function pointers) Internal error message 2011-02-22 22:11:17 -05:00
Robert Reif dd12fc177f fix #2603 (segmentation fault of cppcheck ( typedef constexpr)) 2011-02-22 07:48:34 -05:00
Robert Reif 703448171a fix #2601 (segmentation fault of cppcheck) 2011-02-22 07:02:15 -05:00
Robert Reif 4e1ce93104 fix #2600 (segmentation fault of cppcheck ( enum{const} )) 2011-02-21 19:30:40 -05:00
Robert Reif 999646fca6 fix #2599 (segmentation fault of cppcheck ( sizeof )) 2011-02-21 17:49:30 -05:00
Daniel Marjamäki 55711698d0 Fixed #2591 (cppcheck hangs with 100% cpu load ( class A : )) 2011-02-21 19:41:34 +01:00
Robert Reif 763763fa9b fix bitfields to support non-numeric bitfield width 2011-02-20 18:22:49 -05:00
Daniel Marjamäki 5dea79a07d cppcheckError: Rephrazed the error message. The 'internal error' sounds like something dangerous happens that needs to be fixed. So I think 'analysis failed' is better. If the code has a syntax error then 'analysis failed' is entirely ok. 2011-02-20 19:56:13 +01:00
Daniel Marjamäki 63c003f92e Tokenizer: fixed so that 'p=&x; if(p)' is simplified to 'p=&x;if(&x)'. Ticket: #2596 2011-02-20 18:18:27 +01:00
Daniel Marjamäki 1cfb18be08 astyle formatting 2011-02-20 12:22:01 +01:00
Daniel Marjamäki 46f4e46d30 Tokenizer::simplifyTemplates: Better handling for multi-token template arguments such as 'Foo<std::string>' 2011-02-20 12:17:05 +01:00
Robert Reif 77fe9858e2 fix #2587 (Spurious warning about struct hiding typedef) 2011-02-19 14:18:37 -05:00
Greg Hewgill 7e5d8e42d4 remove stray BOM from source file 2011-02-19 16:10:50 +13:00
Daniel Marjamäki f363bc1560 Borland C++: Fixed compiler error 2011-02-18 20:21:48 +01:00
Daniel Marjamäki cf2a04377e Fixed #2586 (segmentation fault of cppcheck (template<>)) 2011-02-17 21:15:17 +01:00
Daniel Marjamäki 54e0b60cc5 Fixed #2584 (false positive 'variable n is never used') 2011-02-16 20:33:24 +01:00
Daniel Marjamäki 0ed0d07714 Tokenizer::simplifyCalculations: basic handling of bitwise operators 2011-02-14 20:43:26 +01:00
Robert Reif cdd8d3f785 Really fix #2348 perl-tk 2011-02-13 19:02:57 -05:00
Daniel Marjamäki 0d2d0c864a Tokenizer::simplifyKnownVariables: Fixed TODO testcases (better handling of comparisons) 2011-02-13 22:24:45 +01:00
Daniel Marjamäki 2182ede486 Tokenizer::simplifyKnownVariables: Fixed TODO testcase (better handling of ^) 2011-02-13 22:13:19 +01:00
Daniel Marjamäki 472d8154ca Tokenizer::simplifyKnownVariables: Fixed TODO testcase (better handling of |) 2011-02-13 22:09:04 +01:00
Daniel Marjamäki 467c984cd1 Tokenizer::simplifyKnownVariables: Fixed TODO testcase (better handling of %) 2011-02-13 22:03:46 +01:00
Robert Reif c03ace7378 Fix #2579 (segmentation fault of cppcheck) 2011-02-13 14:11:22 -05:00
Robert Reif ad22aebf8c Really fix: #2376 (simplifyTypedef: upx-ucl) 2011-02-13 13:34:55 -05:00
Daniel Marjamäki de75bdfed5 Tokenizer: comments/refactorings 2011-02-12 21:11:20 +01:00
Daniel Marjamäki 4d1aae5859 Tokenizer::simplifyTemplates: Broke out the functionality that instantiates a template 2011-02-12 20:58:45 +01:00
Daniel Marjamäki 9021f0f180 Tokenizer::simplifyTemplates: Broke out the functionality that handles default template arguments 2011-02-12 20:27:44 +01:00
Daniel Marjamäki 00bdf618f2 Tokenizer::simplifyTemplates: Broke out the functionality that extract a list of template instantiations 2011-02-12 20:17:58 +01:00
Daniel Marjamäki 25d6bfe3c4 Tokenizer::simplifyTemplates: broke out the functionality that extract a list of template declarations 2011-02-12 20:12:07 +01:00
Daniel Marjamäki 654116af61 Tokenizer::simplifyTemplates: Broke out handling for 'template<>..' 2011-02-12 19:43:33 +01:00
Daniel Marjamäki 07e8325e50 Fixed #2549 (segmentation fault of cppcheck) 2011-02-12 16:51:59 +01:00
Daniel Marjamäki 63ade3e4f6 Tokenizer::simplifyKnownVariables: Split up the function into smaller functions. Broke out ..GetData function that extracts info about assigned variable before the simplification is made. 2011-02-12 09:24:20 +01:00
Robert Reif 78b5361ec8 fix #2568 (False positive: (style) Union 'A_t' hides typedef with same name (forward declaration)) 2011-02-11 19:09:24 -05:00
Daniel Marjamäki 951a81d0d2 Tokenizer::simplifyKnownVariables: Broke out the simplification into a separate function 2011-02-11 20:12:51 +01:00
Robert Reif e6848aef98 Tokenizer: refactor duplicated token copy code info function 2011-02-09 22:02:17 -05:00
Robert Reif 301f83767e replace tok->strAt(0) with tok->str() 2011-02-09 07:45:19 -05:00
Robert Reif 7502cea4d3 Fixed #2554 (simplifyTypedef: wrong simplification for sizeof(array)) 2011-02-08 19:47:14 -05:00
Daniel Marjamäki f7dcf2d3b9 Tokenizer: Added a comment about sizeof for struct/class. We always assume that the size is 100 2011-02-06 09:58:07 +01:00
Robert Reif 95e917b27f Tokenizer: Replace __null with 0 (gcc constant) 2011-02-05 09:03:31 +01:00
Robert Reif e9ec4bc3e4 Fixed #2536 (cppcheck hangs with 100% cpu load) 2011-02-03 07:58:49 +01:00
Raphael Geissert c9a0d95e89 A few more Token::Match -> ::simpleMatch replacements 2011-02-02 13:27:02 -06:00
Raphael Geissert f8e2d50e6f Use Token::simpleMatch where no special patterns are needed 2011-02-02 13:27:02 -06:00
Raphael Geissert 8d5863133c Use Token::simpleMatch where no patterns are used 2011-02-02 13:27:01 -06:00
Raphael Geissert cf2b6f7bc1 Remove useless spacing at the end of *Match strings 2011-02-02 13:27:01 -06:00
Robert Reif 8eb92001b3 Fixed #2530 (Tokenizer: Remove redundant 'MyClass::' inside MyClass class declaration) 2011-02-02 07:40:08 +01:00
Daniel Marjamäki defeded4b5 Fixed #2529 (False positive: array 'req[3]' index 4 out of bounds) 2011-02-01 21:46:07 +01:00
Daniel Marjamäki 49fc53165c Tokenizer: remove some unhandled macros in the global scope. ticket: #2523 2011-01-30 08:34:58 +01:00
Daniel Marjamäki a299411a82 Tokenizer: Better simplifications of static constants 2011-01-29 16:14:09 +01:00
Daniel Marjamäki 83625d8055 Fixed #2505 (Check processing of a preprocessor macro 'FREE') 2011-01-28 09:19:30 +01:00
Daniel Marjamäki 88abeeebba Fixed #2518 (Crash when checking rockbox's firmwire) 2011-01-27 21:16:25 +01:00
Daniel Marjamäki 524498e439 Tokenizer: collapse operator function names into a single token. ticket: #2519 2011-01-27 18:44:20 +01:00
Daniel Marjamäki 586cbd5839 Tokenizer: Upon createLinks error, report error and bailout 2011-01-23 09:38:38 +01:00
Daniel Marjamäki b10f0aabd6 Fixed #2376 (simplifyTypedef: upx-ucl) 2011-01-23 09:04:34 +01:00
Daniel Marjamäki 5c88129f01 Fixed #2484 (false positive because template is not instantiated properly) 2011-01-22 12:42:53 +01:00
Daniel Marjamäki bc31f317bc Fixed #2491 (Tokenizer::setVarId : wrong handling of function call: 'a(b * c, 1);') 2011-01-22 09:27:16 +01:00
Robert Reif 69eee86ee4 Tokenizer: Only create 1 symbol database. ticket: #2468 2011-01-22 08:34:24 +01:00
Robert Reif d73709a620 Symbol database: rename variables. ticket: #2468 2011-01-21 07:42:41 +01:00
Kimmo Varis b8b2e3fae9 Move filelister* to cli.
Ticket #2445 (Move FileLister classes from LIB to CLI).
2011-01-18 19:58:49 +02:00
Kimmo Varis 86ac25456e Move sameFileName() method to Path class.
Ticket #2445 (Move FileLister classes from LIB to CLI). Moving
sameFileName() to Path allows moving FileLister* classes to CLI.
2011-01-18 19:58:16 +02: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
Robert Reif d341b42b0c Symbol database: increased constness. ticket: #2468 2011-01-16 18:13:54 +01:00
Daniel Marjamäki f72fd6960e Fixed #2449 (segfault in tokenize.cpp, incorrect parsing) 2011-01-16 11:54:28 +01:00
Raphael Geissert da998fec68 Tokenizer: simplify restrict 2011-01-16 11:37:03 +01:00
Robert Reif beb2db82a2 Fixed #980 (false negative: division by zero when using enum) 2011-01-16 11:24:58 +01:00
Daniel Marjamäki 97d0755750 Fixed #2454 (Tokenizer::simplifyKnownVariables: problem with float/double variables) 2011-01-15 08:48:42 +01:00
Daniel Marjamäki 5920dbb7e7 Fixed #2466 (Tokenizer: simplification of enum) 2011-01-15 08:21:06 +01:00
Robert Reif 8ecba0af90 Fixed #2464 (False positive: not initialised/not assigned Static variable in copy constructors.) 2011-01-15 08:04:50 +01:00
Robert Reif 708a75e363 Fixed #2452 (syntax error when 'void f(typedef int x)' is used. causes segmentation fault.) 2011-01-14 07:41:22 +01:00
Daniel Marjamäki 79e52a8c45 Fixed #2296 (Tokenizer: simplifyKnownVariable doesn't simplify pointer properly 'delete [] p;') 2011-01-11 19:34:35 +01:00
Reijo Tomperi 226b605774 Change year 2010 -> 2011 in license texts. 2011-01-09 21:33:36 +02:00
Daniel Marjamäki 88abb32ddf Fixed #2429 (Tokenizer: Wrong simplification of 'sizeof .1250E+04') 2011-01-09 10:09:54 +01:00
Robert Reif bfc95e01c1 Fixed #2426 (### Internal error in Cppcheck. Please report it.) 2011-01-07 08:02:47 +01:00
Daniel Marjamäki 1b3a5ed0be Tokenizer: simplify NULL to 0 in the normal token list 2011-01-06 20:16:14 +01:00
Daniel Marjamäki 616914c1ff Tokenizer: simple refactorings. and added a few comments 2011-01-06 12:07:37 +01:00
Daniel Marjamäki a0d62e041f Tokenizer: Fixed memory corruption 2011-01-05 19:38:22 +01:00
Robert Reif 157498e694 Fixed #2412 (typedef: struct with inheritance) 2011-01-05 17:42:55 +01:00
Robert Reif ed6f683573 typedef: better handling. ticket: #2414 2011-01-05 17:39:53 +01:00
Daniel Marjamäki d700f25518 Fixed #2399 (Tokenizer::simplifyKnownVariables: variables in conditions) 2011-01-04 21:35:35 +01:00
Daniel Marjamäki 63c1ee375e Fixed #2398 (false positive: Uninitialized variable) 2011-01-04 19:36:29 +01:00
Daniel Marjamäki 2c6421d162 Merge branch 'master' of https://github.com/rgeissert/cppcheck into rgeissert-realloc 2011-01-04 18:21:18 +01:00
Robert Reif 63208e87d3 typedef: delete unhandled typedefs. ticket: #2348 2011-01-04 07:43:40 +01:00
Robert Reif a782d3ddf7 typedef: fix testcase 4. ticket: #2375 2011-01-04 07:39:41 +01:00
Robert Reif 63ad1fbe69 Fixed #2400 (Tests crashing in Windows) 2011-01-04 07:34:32 +01:00
Raphael Geissert 3d9550b0bf Simplify "x = realloc (0, n);" to "x = malloc(n);" 2011-01-02 17:46:10 -06:00
Raphael Geissert e75a81669e Move simplification of realloc after simplification of math ops 2011-01-02 16:41:34 -06:00
Daniel Marjamäki d2714fefda typedef: Fixed testcase. ticket: #2375 2011-01-02 17:28:47 +01:00
Daniel Marjamäki 789d944912 typedef: don't simplify typedef after 'case'. it means that there is a typedef and constant with the same names. Ticket: #2386 2011-01-01 20:20:03 +01:00
Daniel Marjamäki 62145431a7 Tokenizer: Added more comments 2011-01-01 11:40:32 +01:00
Daniel Marjamäki 2da3fea1b8 Fixed #2386 (segmentation fault occurs in the checking when typedef has same name as an enum constant) 2010-12-31 20:55:28 +01:00
Daniel Marjamäki f1f1a21c23 Borland C++: Fixed compiler errors 2010-12-31 10:24:51 +01:00
Daniel Marjamäki d8f241e033 gcc: fixed -Wconversion errors 2010-12-31 09:51:27 +01:00
Daniel Marjamäki cab338dffe gcc: fixed -Wconversion warnings in tokenizer 2010-12-31 09:38:03 +01:00
Daniel Marjamäki 307178d3c2 Tokenizer: Better handling of duplicate enums. Ticket: #2381 2010-12-30 20:55:23 +01:00
Robert Reif 3900ac731e simplifyTypedef: Better handling of 'typedef int RexxFunctionHandler();'. Ticket: #2348 2010-12-29 20:25:47 +01:00
Robert Reif 3f1f50e970 simplifyTypedef: operator typedef. Ticket: #2375 2010-12-29 20:22:06 +01:00
Daniel Marjamäki 38e7209d26 Fixed #2373 (Using XML2 in --errorlist output) 2010-12-29 12:43:29 +01:00
Robert Reif 137d0e2ba7 typedef: fixed problem with 'typedef int pread_f(int);'. ticket: #2348 2010-12-29 09:18:41 +01:00
Robert Reif e82b1f8946 typedef: fix typedef simplification. ticket: #2348 2010-12-28 21:21:13 +01:00
Daniel Marjamäki 0667fcf53c Fixed #2355 (simplifyTypedef: wrong simplification of 'typedef FMAC1 void (*a)();') 2010-12-28 14:04:44 +01:00
Robert Reif 1b92eeae1e Fixed #2354 (simplifyTypedef: function pointers are not simplified into valid code) 2010-12-28 08:01:32 +01:00
Daniel Marjamäki 92acca3d0c Fixed #2368 (assigned a value that is never used) 2010-12-27 20:49:07 +01:00
Daniel Marjamäki 2367cfcf1e Fixed #2361 (false positive on t[0X10]) 2010-12-27 08:09:05 +01:00
Daniel Marjamäki 6178459c15 Fixed #2304 (Tokenizer::simplifyKnownVariables: known strcpy parameter) 2010-12-26 20:34:07 +01:00
Daniel Marjamäki f4581d833d Tokenizer: Bailout if @ is encountered in the code 2010-12-26 15:07:14 +01:00
Daniel Marjamäki 10ee43790d Fixed #2339 (Tokenizer::setVarId : Wrong handling of 'int gr = id - (TLFPressProperties::OIL_FLUID * nb);') 2010-12-25 12:40:44 +01:00
Daniel Marjamäki 6f8f0e1aa1 Fixed #2353 (Tokenizer::simplifyKnownVariables: wrong simplification after return) 2010-12-25 10:07:57 +01:00
Daniel Marjamäki 18fd12006a Tokenizer::simplifyGoto: Don't simplify 'goto' inside unhandled macro calls. Ticket: #2348 2010-12-23 22:03:58 +01:00
Daniel Marjamäki 472ecd8805 Tokenizer: Fixed calculation simplification of '0*(*p)'. Ticket: #2348 2010-12-23 18:59:18 +01:00
Robert Reif fc7e2d1ac1 Fixed #2341 (false positive for function pointer returning typedef) 2010-12-22 18:37:23 +01:00
Daniel Marjamäki f392dbef95 Fixed #2338 (False positive: Deallocating a deallocated pointer) 2010-12-22 08:24:50 +01:00
Daniel Marjamäki 41ac2c252f Fixed #2325 (Tokenizer: Remove for-loop if condition is false) 2010-12-18 21:43:12 +01:00
Daniel Marjamäki 8ffc2b0ac6 Tokenizer: better handling for switch/break in the simplifyKnownVariables. Ticket: #2324 2010-12-18 11:14:31 +01:00
Daniel Marjamäki 7eb9855104 Tokenizer: Remove redundant parantheses in rhs. Ticket: #2320 2010-12-18 09:44:58 +01:00
Daniel Marjamäki 845d1491f9 Fixed #2307 (No constructor defined false positive when class is enclosed in namespace) 2010-12-17 20:56:46 +01:00
Daniel Marjamäki 2d97189486 Fixed #2311 (False positive: Index out of bounds) 2010-12-16 20:16:59 +01:00
Robert Reif bf136f0123 Fixed #2314 (False positive: (style) Template instantiation 'Foo' hides typedef with same name) 2010-12-16 07:48:46 +01:00
vBm 46a11183a5 Fixed some spelling mistakes 2010-12-15 18:45:53 +01:00
Daniel Marjamäki 69bacde479 Tokenizer: Cleanup redundant statement '; x = x + 0;'. Ticket: #2283 2010-12-09 19:35:52 +01:00
Robert Reif b6acfa809b Symbol database: creates a single symbol database within Tokenizer on demand and changes all checks to use it 2010-12-07 07:08:49 +01:00
Robert Reif 6c719c5806 Symbol database: removed unnecessary null pointer checks 2010-12-07 07:07:07 +01:00
Daniel Marjamäki 0b696b7079 Fixed #2280 (Tokenizer::setVarId : variable id not set for inner iterator) 2010-12-06 17:52:44 +01:00
Daniel Marjamäki ab336b9088 Tokenizer: Added a few comments 2010-12-04 15:49:25 +01:00
Robert Reif b29568c81d Fixed #2271 (Tokenizer: simplify Qt signals and slots) 2010-12-03 08:14:09 +01:00
Robert Reif eda4bcae29 Fixed #2271 (Tokenizer: simplify Qt signals and slots) 2010-12-02 17:41:49 +01:00
Robert Reif f12c0c7ada Tokenizer: add assert(_settings) to Tokenizer to insure the tokenizer always has settings. Ticket: #2219 2010-12-01 18:00:55 +01:00
Daniel Marjamäki add8584612 Fixed #2232 (segmentation fault of cppcheck) 2010-11-29 17:46:10 +01:00
Daniel Marjamäki 00da0adf25 Fixed #2236 (False positive: Assignment to itself) 2010-11-28 11:48:06 +01:00
Daniel Marjamäki ea405d95c6 Fixed #2241 (Segfault checking a file) 2010-11-28 07:35:42 +01:00
Daniel Marjamäki 0a744c0c6e Fixed #2234 (Variable is assigned a value that is never used) 2010-11-25 18:16:11 +01:00
Daniel Marjamäki 22a4dd2cc3 Fixed #2225 (false positive: variable is assigned a value that is never used '*(stack[0])+=arg') 2010-11-23 20:35:08 +01:00
Robert Reif 1842a122da reuse symbol database in checkmemoryleak.cpp. ticket: #2219 2010-11-23 18:41:07 +01:00
Daniel Marjamäki bb745da5f9 Tokenizer::simplifyKnownVariables: suppress debug warnings about pointer aliases. Temporary solution that limits the amount of debug warnings somewhat. 2010-11-21 13:50:57 +01:00
Daniel Marjamäki 9d88e17c39 Tokenizer::simplifyKnownVariables: Reduce debug-warnings for conditional increment 2010-11-21 13:40:42 +01:00
Daniel Marjamäki 0fe4249cfc Fixed #2216 (wrong warning when C++0x keyword delete is used) 2010-11-20 17:20:25 +01:00
Daniel Marjamäki e8ca76e02e Fixed #2200 (MathLib: Calculation overflow) 2010-11-20 10:05:33 +01:00
Daniel Marjamäki 378e83e73d Fixed #2201 (false positive: Uninitialized variable: __v0) 2010-11-14 17:35:22 +01:00
Daniel Marjamäki 71c1ce71ce Tokenizer::simplifyKnownVariables: Simplify known variables for struct members 2010-11-13 18:45:35 +01:00
Daniel Marjamäki 667cc8f6e5 Tokenizer: Skip debug warnings in Tokenizer::simplifyKnownVariables for loop variable 2010-11-13 16:40:04 +01:00
Robert Reif 07f4067fa8 typedef: better handling of __typeof__ 2010-11-11 17:02:04 +01:00
Robert Reif a09c221014 typedefs: handle __typeof__ 2010-11-11 06:40:49 +01:00
Daniel Marjamäki 21ec772e31 Tokenizer: Only show 'failed to instantiate template' debug messages if the --debug-warnings has been given 2010-11-08 18:01:28 +01:00
Daniel Marjamäki 586f4992d8 Tokenizer::simplifyKnownVariables: Fixed TODO test cases in TestBufferOverrun 2010-11-07 17:42:32 +01:00
Daniel Marjamäki 47e9fcb5a8 Revert "Tokenizer: More specific bailout in simplifyKnownVariables for loop variable"
This reverts commit 7e9bb62dff.
2010-11-07 17:40:27 +01:00
Daniel Marjamäki 7e9bb62dff Tokenizer: More specific bailout in simplifyKnownVariables for loop variable 2010-11-07 17:20:03 +01:00
Daniel Marjamäki cd94fa89e0 Tokenizer: More specific bail outs in simplifyKnownVariables 2010-11-07 11:07:56 +01:00
Daniel Marjamäki b881718d9f Tokenizer: better bailout in simplifyKnownVariables when there is loop 2010-11-07 10:42:08 +01:00
Daniel Marjamäki bd2b1b2914 Tokenizer: better handling of const variables 2010-11-07 08:43:30 +01:00
Daniel Marjamäki 25391cb562 Tokenizer: Bailout simplifyKnownVariables for loop variables 2010-11-07 08:10:09 +01:00
Daniel Marjamäki 2833a5ebb5 Tokenizer: Refactoring the simplifyKnownVariable 2010-11-06 20:23:49 +01:00
Daniel Marjamäki 5be12a1d27 Tokenizer: improved simplifyKnownVariables 2010-11-06 19:43:32 +01:00
Daniel Marjamäki 53fc0ca5e6 Tokenizer: Refactoring. Merged two patterns into one pattern. 2010-11-06 15:55:37 +01:00
Daniel Marjamäki afcc28e9ee Tokenizer: Added debug warning that is shown when bailing out in simplifyKnownVariables 2010-11-06 15:42:41 +01:00
Robert Reif 8a379d4826 Fixed #2176 (Tokenizer::simplifyTypedef function pointer bug) 2010-11-06 15:15:50 +01:00
Robert Reif c49a8a99a3 Fixed #2175 (Tokenizer::simplifyTypedef : wrong simplification of 'typedef float vec_t[3];') 2010-11-06 13:28:44 +01:00
Daniel Marjamäki c39fbb86db Tokenizer::simplifyKnownVariables : Fixed TODO test case when simplifying pointer alias in function call 2010-11-06 13:24:33 +01:00
Daniel Marjamäki 13c2a73d3f Tokenizer::simplifyKnownVariables: Fixed TODO test case. 2010-11-06 11:38:58 +01:00
Daniel Marjamäki 314e5b838b Tokenizer: removed redundant assignments such as 'x+=0;'. Ticket: #2173 2010-11-06 07:23:35 +01:00
Robert Reif 431201dd67 Fixed #2174 (Tokenizer::simplifyFunctionReturn bug) 2010-11-06 06:53:09 +01:00
Daniel Marjamäki 52faadda89 Tokenizer: simplify calculations with zero better 2010-11-05 20:35:31 +01:00
Daniel Marjamäki 4fdb420454 Tokenizer: simplifyknownvariables, improved handling of string constant 2010-11-05 20:05:57 +01:00
Daniel Marjamäki d21974777c Fixed #2161 (false positive: assigned a value that is never used) 2010-11-04 20:16:17 +01:00
Daniel Marjamäki 0984a0be47 Tokenizer: Fixed 'a[b-1]+=1' 2010-11-04 19:38:19 +01:00