Daniel Marjamäki
e2367b4149
Fixed #2976 (False positive: array out of bounds)
2011-08-08 18:22:15 +02:00
Robert Reif
afe95be966
fix #2980 (segmentation fault of cppcheck)
2011-08-08 06:58:55 -04:00
Robert Reif
403b508371
Merge branch 'master' of github.com:danmar/cppcheck
2011-08-07 16:49:07 -04:00
Robert Reif
829611b129
fix #2978 (segmentation fault of cppcheck ( enum E {} e enum ))
2011-08-07 16:48:47 -04:00
Daniel Marjamäki
999b80bbb8
Buffer overrun: Fix false negative
2011-08-07 17:54:25 +02:00
Daniel Marjamäki
a6a966e28e
Null pointer: Fixed false positive when condition contains assignment 'if (p==NULL && (p=malloc(10))!=NULL) *p=0;'
2011-08-07 17:06:25 +02:00
Kimmo Varis
cfcfa3f000
Use "enabled" list for the style checking.
...
Settings-class currently enables style checking via dedicated
boolean attribute. All other CLI's enable-options are handled
through the enable-list. This commit moves style-check enabling
to use the enable-list.
Main advantage is the consistency how options are handled/stored
in the Settings class. Which also unifies using them for the other
code. You need to enable certain type of checks? Use the
addEnabled()-method. You want to check if certain type of checks
are enabled? Use the isEnabled()-method.
2011-08-07 10:28:52 +03:00
Robert Reif
85b2bd21dc
fix #2968 (new check: testing if unsigned variable is less than 0)
2011-08-06 19:23:09 -04:00
Robert Reif
222ed6d375
fix #2971 (Wrong warning generated)
2011-08-06 19:10:15 -04:00
Robert Reif
d23fb873cc
fix #2970 (Incorrect report: Class does not have a constructor)
2011-08-06 17:54:02 -04:00
Kimmo Varis
371838b9cb
CLI: Warn if user tries to exclude header files.
...
Filename exclusion (with -i) works only for the source files.
Print a warning if user tries to exclude header file. The warning
instructs user to use --suppress for ignoring warnings from the
header files.
2011-08-06 17:24:10 +03:00
Simon Martin
13360c2a66
Fixed #2870 (Tokenizer: simplify '0 |')
2011-08-06 06:50:29 +02:00
Robert Reif
fa82d43562
fix #2967 (segmentation fault of cppcheck ( auto_ptr< x >))
2011-08-05 18:18:30 -04:00
Robert Reif
fd01a7555a
fix #2966 (segmentation fault of cppcheck ( enum x : ))
2011-08-05 18:07:18 -04:00
Daniel Marjamäki
fd7e085c9d
Array index out of bounds: prevent false positive when a dimension for an array is unknown
2011-08-05 13:08:48 +02:00
Daniel Marjamäki
0186fc0650
tweaked the error message somewhat for id arrayIndexThenCheck
2011-08-05 09:10:07 +02:00
Robert Reif
ac6d67dc4d
add support for using global qualified :: memset on class and class member initialization
2011-08-04 20:37:27 -04:00
Robert Reif
2516aad31d
fix #2887 (infinit loop with ( A::A(std::auto_ptr<X> e){} ))
2011-08-04 19:50:18 -04:00
Daniel Marjamäki
ceb763f57a
Fixed #2956 (False negative: read array and then immediately check the index 'str[i] && i<sizeof(str)')
2011-08-04 11:15:14 +02:00
Kimmo Varis
e86abfdc5f
No unmatched suppressions list in quiet output.
...
When user wants to see only errors printed (--quiet in CLI) we
must obey that. And not print unmatchedSuppressions list.
Ticket: #2895 (Cannot suppress unmatchedSuppression reports)
2011-08-04 12:04:38 +03:00
Daniel Marjamäki
5112b0ddae
astyle formatting
2011-08-03 16:11:09 +02:00
Daniel Marjamäki
bab441b7e0
Obsolete functions: Split up functions into posix/standard sets. Only check for obsolete posix functions if --enable=posix has been given.
2011-08-03 16:10:43 +02:00
Kimmo Varis
f4950ea836
CLI: Rename --posix to --enable=posix.
...
Ticket: #2949 (new check: (style) finding non-reentrant functions)
Ticket: #2952 (CLI option --posix is wrong)
2011-08-03 10:28:36 +03:00
Daniel Marjamäki
6755d4befb
corrected a comment
2011-08-03 07:30:54 +02:00
Daniel Marjamäki
e82df7292f
Fixed #2919 (Wrong file name reported with #error in header)
2011-08-03 07:28:37 +02:00
Reijo Tomperi
ee7b8d53c6
Fix : #2942 (segmentation fault of cppcheck ( #elif (){ ))
...
http://sourceforge.net/apps/trac/cppcheck/ticket/2942
2011-08-02 22:06:27 +03:00
Daniel Marjamäki
08f27564fa
Null pointer: reduce false negatives in pointerDerefAndCheck
2011-08-02 17:04:07 +02:00
Daniel Marjamäki
825dce5c4e
Fixed #2954 (False negative: Null pointer dereference not detected '*p=4; if (p) { }')
2011-08-02 11:20:09 +02:00
Daniel Marjamäki
5fc2a55bac
Fixed #2900 (found memory leak in kernel p54usb and a false positive reported)
2011-08-02 09:04:13 +02:00
Daniel Marjamäki
0c2f2e1c38
Null pointers: Fixed false negative when struct is dereferenced in condition
2011-08-01 21:57:23 +02:00
Daniel Marjamäki
207038a087
AssignIf: detect more problems for 'if' and 'else if' conditions
2011-08-01 11:33:09 +02:00
Daniel Marjamäki
103542bb15
Fixed #2908 (common logic when using bitwise and)
2011-08-01 09:36:12 +02:00
Daniel Marjamäki
a6c7ae8d51
Fixed #2789 (null pointer: problems not detected when pointer is assigned and checked if it's null in a if statement)
2011-08-01 07:51:32 +02:00
Daniel Marjamäki
8e888a0dfb
astyle formatting
2011-08-01 07:48:18 +02:00
Daniel Marjamäki
880e0e3b5f
AssignIf: Improved the error message for mismatching comparison
2011-08-01 07:13:47 +02:00
Robert Reif
bc4db75aa9
fix #2146 (uninitialized variable: false negative for 'return x ? 1 : y;')
2011-07-31 21:33:43 -04:00
Daniel Marjamäki
69c3287e31
Memory leaks: fix endless loop for 'if )'. the check assumed that the link after the 'if' pointed forwards. Ticket: #2404
2011-07-31 19:38:39 +02:00
Robert Reif
daf0c71f77
fix #2911 (Token::Match(tok, %oror%|&&) doesn't match &&)
2011-07-31 13:26:26 -04:00
Moritz Lipp
8d68981119
Fixed #2793 (SIGABRT on filenames without file extension)
2011-07-31 18:35:28 +02:00
Daniel Marjamäki
4433e621f8
removed the unused function CheckMemoryLeakInFunction::matchFunctionsThatReturnArg
2011-07-31 17:36:56 +02:00
Daniel Marjamäki
1640f3d1ca
Null pointer: fix false negatives when unknown function is called and pointer is local/argument
2011-07-31 17:32:25 +02:00
Daniel Marjamäki
cc89687e8c
Null pointer: better handling when calling standard functions with possible null pointer
2011-07-31 17:19:23 +02:00
Daniel Marjamäki
afc825da68
AssignIf: handle parantheses. ticket: #2909
2011-07-31 17:09:53 +02:00
Daniel Marjamäki
dd6982a616
Fixed #2935 (possible null pointer dereference when using strcpy etc)
2011-07-31 14:07:35 +02:00
Daniel Marjamäki
ad166d3a54
astyle formatting
2011-07-31 14:05:06 +02:00
Daniel Marjamäki
00e28f5c4e
AssignIf: Match lhs and rhs for comparisons. Ticket: #2909
2011-07-31 11:23:38 +02:00
Daniel Marjamäki
e47aac2501
AssignIf: Detect problem for 'y=x&4; if(y!=3)..'. Ticket: #2909
2011-07-31 10:48:31 +02:00
Daniel Marjamäki
47f13860b7
AssignIf: Added new check. Ticket: #2909
2011-07-30 21:43:21 +02:00
Daniel Marjamäki
7f193fb7a1
Fixed #2788 (null pointer: dereference and then check 'if (abc->a == 3) { } if (!abc) ..')
2011-07-30 19:51:06 +02:00
Robert Reif
e687ee9a9a
assume all std::*::size() and std::*::empty() are const in CheckClass::checkConstFunc()
2011-07-30 10:30:31 -04:00
Robert Reif
addcec704f
fix cppcheck warning in Tokenizer::duplicateTypedef()
2011-07-30 10:12:35 -04:00
Robert Reif
c6a804d306
add std::*.empty() to possible const functions in CheckClass::checkConstFunc
2011-07-30 09:44:20 -04:00
Robert Reif
74c1bdde77
fix #1593 (false negative: the function can be declared as const)
2011-07-30 08:48:11 -04:00
Robert Reif
2f4aee2923
fix missing else in patch that added support for unused const local variables
2011-07-30 07:16:59 -04:00
Simon Martin
50f78ce329
Fixed #2951 (Small code factorization in checkmemoryleak.cpp)
2011-07-30 13:10:44 +02:00
Ettl Martin
c00a1526bd
nonreentrant-functions: added more functions to check
2011-07-30 11:15:51 +02:00
Robert Reif
cb4282d69a
use simpleMatch where possible in checkother.cpp
2011-07-29 22:37:05 -04:00
Ettl Martin
f441a958cd
mathlib: fixed #2950 : comparison of floating point values
2011-07-29 23:37:40 +02:00
Ettl Martin
6b23dd9928
added a check to detect nonreentrant functions and a --posix switch
2011-07-29 18:27:01 +02:00
Ettl Martin
35bb5dffa4
Added a new check for finding non-reentrant functions
2011-07-28 23:29:16 +02:00
Daniel Marjamäki
dc629b4c39
Fixed 'possible null pointer dereference' warning messages
2011-07-28 08:12:21 +02:00
Daniel Marjamäki
d2c0e5e7e6
Fixed #2821 (New Check : bool pointer null truth assignment)
2011-07-28 07:28:24 +02:00
Robert Reif
ca2e8b057b
fix #2947 (False positive: member variable is not initialized (a[x::y] = 0;))
2011-07-27 12:03:44 -04:00
Robert Reif
54141f2e7f
fix #2943 (Symbol database: Wrong parsing of std::vector as base class.)
2011-07-27 11:23:22 -04:00
Daniel Marjamäki
2b48c7624c
Auto Variables: Reverted fix for #1514 because my idea was wrong. See ticket: #2944
2011-07-27 10:43:44 +02:00
Daniel Marjamäki
5cb701d3c1
Fixed #2946 (False positive: Uninitialized buffer variable (init in subfunction))
2011-07-27 10:34:12 +02:00
Daniel Marjamäki
4e55fb604c
Fixed #2945 (False positive: Uninitialized variable reading from stream)
2011-07-26 21:30:58 +02:00
Daniel Marjamäki
a6740200cf
Null pointer: Added check for 'if (fred); return fred->a;'
2011-07-25 21:58:00 +02:00
Daniel Marjamäki
6e14da7eba
Fixed #2812 (false negative: null pointer dereference when returning struct member)
2011-07-25 21:40:32 +02:00
Daniel Marjamäki
63a0c6ad4a
Fixed #2796 (uninitialized and leaving scope)
2011-07-25 16:35:30 +02:00
Daniel Marjamäki
2c6e4c423a
Fixed #2681 (False negative: Possible null pointer dereference)
2011-07-25 15:45:00 +02:00
Daniel Marjamäki
c1138cf7f9
Fixed #2941 (False positive: unused function (individual checking of files))
2011-07-25 13:25:09 +02:00
Daniel Marjamäki
9a3f95613a
Uninitialized variables: Fixed false positive if there is assignment in return statement
2011-07-24 22:41:40 +02:00
Daniel Marjamäki
1bb7a1c23c
Fixed #2938 (Uninitialized variable not detected when part of expression)
2011-07-24 22:26:11 +02:00
Simon Martin
7346d07871
Fix GCC warning about float comparison. Ticket: #2936
2011-07-24 21:35:21 +02:00
Robert Reif
9a4447c835
add support for unused const local variables
2011-07-24 12:09:59 -04:00
Daniel Marjamäki
4e6800c474
Fixed #2921 (False positive: Memory leak with static pointer)
2011-07-24 16:08:29 +02: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
Simon Martin
539c2e5acb
Fixed #2932 (segmentation fault of cppcheck ( i / i ))
2011-07-24 09:06:38 +02:00
Simon Martin
fc0f75fe6a
Preprocessor: Fix #if0 #elif todo test case. Ticket: #2619
2011-07-24 08:54:24 +02:00
Robert Reif
aa65eed02b
convert CheckPostfixOperator::postfixOperator() to use the symbol database
2011-07-23 15:14:15 -04:00
Robert Reif
5e1fd81ea7
add support for local variables with constructors to the symbol database
2011-07-23 15:12:30 -04:00
Robert Reif
e332f0c186
Merge branch 'master' of github.com:danmar/cppcheck
2011-07-22 08:32:08 -04:00
Robert Reif
527c1aae33
fix #2931 (another false negative in auto variables checking when function parameter is a struct)
2011-07-22 08:31:31 -04:00
Daniel Marjamäki
0dd5472642
Tokenizer::simplifyFunctionPointer: don't simplify function call. Ticket: #2873
2011-07-22 07:58:53 +02:00
Robert Reif
84ca1902a5
fix #1514 (Improve CheckAutoVariables: assign autovariable address to effective parameter)
2011-07-21 22:37:36 -04:00
Robert Reif
4e64d35462
fix #2926 (false negative in auto variables checking when function parameter is a struct)
2011-07-21 22:26:42 -04:00
Robert Reif
c3c3eb74e8
fix #2929 (Additional Unused variable check)
2011-07-21 18:37:37 -04:00
Robert Reif
cc1ecccd01
fix #2928 (False positive (static variable misinterpreted as auto variable))
2011-07-21 18:20:19 -04: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
31e3844f3f
Fixed #2856 (--errorlist not printing all auto-variable errors)
2011-07-21 14:50:38 +02:00
Daniel Marjamäki
d34a778848
Fixed #2848 (False positive: Memory leak when assigning and freeing from another struct)
2011-07-21 13:33:20 +02:00
Daniel Marjamäki
9f22d2fc6b
Fixed #2897 (out of bounds false positive, using reinterpret_cast)
2011-07-21 09:32:24 +02:00
Robert Reif
32f94a47cc
fix #2925 (False negative: auto variables - assigning address of array to function parameter)
2011-07-20 19:02:54 -04: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
f0a7cc5961
Merge pull request #28 from bwy/master
...
Fix "auto_ptr assignment" false positive
2011-07-20 10:45:49 -07:00
Benjamin Wolsey
e6d8f3fb73
Fix tested auto_ptr false positive.
2011-07-20 19:17:59 +02:00
Daniel Marjamäki
5ea79677a3
Fixed #2924 (Unable to turn on unused function detection from command line)
2011-07-20 11:12:08 +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
3cfef6285c
Fixed #2920 (False positive: Array 'arr[0]' index 0 out of bounds (array size and index are unknown))
2011-07-20 07:57:42 +02:00
Daniel Marjamäki
b66e6e73db
Fixed #2917 (Problem with || in #if)
2011-07-18 21:44:23 +02:00
Robert Reif
ed30edf9d3
simplify CheckOther::checkIncorrectLogicOperator() by using more pattern matching
2011-07-18 07:34:49 -04:00
Robert Reif
76d0872c0d
made #2827 fix more generic by adding more ops and using pattern matching rather than string matching
2011-07-17 16:28:00 -04:00
Daniel Marjamäki
7dcb68f5a4
CheckBufferOverrun: Detect overflows when buffer is allocated with alloca
2011-07-17 09:35:51 +02:00
Robert Reif
4149617978
fix #2827 to use numeric comparisons
2011-07-16 23:05:35 -04:00
Robert Reif
430d22032d
fix #2827 condition always false or true)
2011-07-16 22:06:23 -04: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
35178cc161
Fixed #2912 (false positive: (portability) Assigning an integer (int/long/etc) to a pointer is not portable)
2011-07-16 17:08:03 +02:00
Daniel Marjamäki
c55b0ff651
Fixed #2871 (Define in source not set when -D is used)
2011-07-16 16:59:06 +02:00
Daniel Marjamäki
c299d02dba
astyle formatting
2011-07-16 09:32:35 +02:00
Daniel Marjamäki
07a1222ac6
Preprocessor: fix handling of (1&&2) condition
2011-07-16 09:24:27 +02:00
Daniel Marjamäki
274fd2b985
Tokenizer: Fix minor problem with 'X&&Y'
2011-07-15 19:37:39 +02:00
Daniel Marjamäki
d78d8660ab
astyle formatting
2011-07-15 19:02:16 +02:00
John Smits
7f2d62cbde
Fixed #2882 (One-character token can be mistaken for a multiCompare)
2011-07-15 19:01:36 +02:00
Robert Reif
af1e51f648
fix some more false negatives for #2904 (Memory leak not detected when creating a new class instance)
2011-07-14 20:45:27 -04:00
Zachary Blair
997a3652d2
Fixed #2822 (New check: Duplicate break statements in switch)
2011-07-14 17:12:56 -07:00
Robert Reif
270b2b1772
fix #2904 (Memory leak not detected when creating a new class instance)
2011-07-14 19:15:59 -04: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
Daniel Marjamäki
4055b0ec5f
64-bit portability: fixed two of the TODO test cases. Ticket: #2791
2011-07-06 17:57:39 +02:00
Daniel Marjamäki
827fb01ec1
updated error message about assigning address to integer. Thanks Kimmo for the suggestion.
2011-07-06 12:57:45 +02:00
Daniel Marjamäki
8f0f184058
64-bit checking: Added simple check for assigning pointer address to int/long. Ticket: #2791
2011-07-06 08:55:17 +02:00
Daniel Marjamäki
0007351ef4
spell check of error message. contant => constant
2011-07-05 19:59:58 +02:00
Daniel Marjamäki
8cd2c3115e
Fixed #2866 (Detect sign extension bugs)
2011-07-05 18:41:27 +02:00
Greg Hewgill
657b003dc8
Fix spelling error in warning identifier
2011-07-05 19:54:23 +12:00
Daniel Marjamäki
982b645ff4
Fixed #2775 (Uninitialized variable: Not detected when uninitialized struct pointer is dereferenced in sub function)
2011-07-04 21:04:32 +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
b32b2c6d87
add support for checking unused std::string local variables
2011-07-02 19:25:10 -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
Robert Reif
d447e61b09
fix #2884 (Integer overflow warning in 64-bit build)
2011-07-01 16:59:17 -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
Robert Reif
301e59cea0
fix false positive for unused local class/struct variable
2011-07-01 08:45:29 -04:00
Robert Reif
18e6509c5d
add support in CheckOther::functionVariableUsage() for checking structures that are declared with struct keyword
2011-07-01 07:42:20 -04:00
Robert Reif
3225c9dd9b
cleanup isStatic in CheckOther::functionVariableUsage()
2011-07-01 07:15:59 -04:00
Robert Reif
7826b5e22d
add support for detecting unused function variables of type class or struct
2011-06-30 21:58:11 -04:00
Reijo Tomperi
6d4799e0b8
Minor cleanup related to previous fix.
...
This code should not be needed anymore as tokenizer should simplify question mark away.
2011-06-30 22:10:17 +03: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
Daniel Marjamäki
6375e1d3dc
Fixed #2849 (False positive: memory leak (using question mark operator))
2011-06-30 17:31:22 +02: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
c99a15516d
fix symbol database derived template class support
2011-06-29 19:52:07 -04:00
Robert Reif
18369ea6ac
add global namespace derived class support
2011-06-29 19:43:39 -04:00
Robert Reif
443dd4c392
partial fix for #2867 handle derived class
2011-06-29 19:39:19 -04:00
Kimmo Varis
7af920a70b
Document that Path::simplifyPath() needs / as separators.
2011-06-29 21:44:53 +03:00
Daniel Marjamäki
d76861270a
Fixed #2797 (Inline suppressions do not handle filenames correctly)
2011-06-29 20:23:39 +02:00
Daniel Marjamäki
cacca00080
Fixed #2855 (False positive: resource leak when reusing fd)
2011-06-29 20:00:21 +02:00
Daniel Marjamäki
e597ad72e7
Fixed #2841 (False positive: Array index out of bounds, can't compare ints to chars)
2011-06-29 18:44:05 +02:00
Robert Reif
6eecab5d73
fix #2807 (Wrong handling of function references when prefixed with &)
2011-06-29 07:19:34 -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
272eb445fb
fix #2865 (segmentation fault of cppcheck ( char a[1] ))
2011-06-27 07:31:10 -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
Reijo Tomperi
382520ee9f
Fix #2840 , False positive: Null pointer dereference
...
http://sourceforge.net/apps/trac/cppcheck/ticket/2840
2011-06-26 22:46:33 +03:00
Robert Reif
93495613dd
replace some pattern matching with variable lookup in checkGlobalAndLocalVariable
2011-06-24 08:02:41 -04:00
Robert Reif
4656eba34c
set symbol database array variable dimensions specified by a variable to the maximum size that variable can hold
2011-06-23 22:35:15 -04:00
Robert Reif
65ecbfd4ff
fix an off by 1 error introduced in 48e6ea271a
that prevented checking all variables
2011-06-23 22:31:16 -04: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
a87fb388e3
use symbol database to lookup variable type for buffer overrun checks
2011-06-22 23:11:17 -04:00
Robert Reif
48e6ea271a
start using symbol database array info for buffer overrun checks
2011-06-22 22:44:11 -04:00
Robert Reif
0c46f44e3d
add array information to symbol database
2011-06-22 22:41:11 -04:00
Robert Reif
dac826d0ac
use a more conventional technique for accessing ArrayInfo private variables
2011-06-22 20:35:58 -04:00
Reijo Tomperi
5a72bed064
Fix #2847 , cppcheck hangs with 100% cpu load
...
http://sourceforge.net/apps/trac/cppcheck/ticket/2847
2011-06-22 14:09:42 +03:00
Daniel Marjamäki
e4f6d4c987
Fixed #2808 (False positive 'Possible null pointer dereference')
2011-06-21 18:45:30 +02:00
Robert Reif
db39f4364e
fix #2845 (segmentation fault of cppcheck)
2011-06-21 07:31:55 -04:00
seb777
172903cde4
fix 2846 (false positive for auto_ptr check with container element)
2011-06-20 23:02:05 +02:00
Daniel Marjamäki
47a15b6486
Fixed #2830 (false positive: resource leak when using fdopen)
2011-06-20 18:42:13 +02: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
seb777
20de3f90ef
fix 2838 (Token::Match called with varid 0 on auto_ptr check) cleanup code and better check varid
2011-06-17 21:09:27 +02:00
seb777
5b940c0c7f
fix #747 and #748 (incorrect use of auto_ptr - new check)
2011-06-16 20:26:00 +02:00
Robert Reif
eaf836b323
fix extra qualification check for same class name in different namespaces
2011-06-14 15:31:52 -04:00
Lauri Nurmi
be57aa5ad5
Fixed #2836 ([PATCH] FP: Dereferenced iterator has been erased)
2011-06-14 07:26:59 +02:00
Daniel Marjamäki
a8cb7b445f
1.49: updated version
2011-06-12 18:24:31 +02: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
Daniel Marjamäki
97d47fa20e
Fixed #2805 (false positive: [NotAssigned1.cpp:5]: (style) Variable 'y' is not assigned a value)
2011-06-08 19:54:01 +02:00
Robert Reif
0f6da27b9f
fix #2795 (hash operator[] is not 'const') (original patch by Sebastien Debrard) (modified to use the symbol database)
2011-06-03 22:00:27 -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
Daniel Marjamäki
1b4b4ee43e
Fixed #2806 (False positive with g_strstrip())
2011-05-29 17:44:10 +02:00
seb777
e06b2419a4
fix #2786 (new check: Using sizeof with numeric constant)
...
Add unit test and improve check with negative constant because in cppcheck %num%
means 'integer'
2011-05-28 16:40:01 +08:00
Robert Reif
a99aded1a4
add support for null pointer checking struct pointers
2011-05-27 23:30:19 -04:00
Robert Reif
311651cc66
fix #2804 (Underlying type of enumerator produces a syntax error)
2011-05-27 11:17:39 -04:00
Robert Reif
42316f3e0b
fix #2792 (false positive: Member variable 'class::m_val' is not assigned a value in 'class::operator=')
2011-05-24 20:25:34 -04:00
seb777
287840e6bc
fix #2786
2011-05-25 01:45:58 +08:00
Daniel Marjamäki
1c841535ee
Fixed #2798 (False positive: Invalid iterator check doesn't respect code paths)
2011-05-22 17:17:24 +02:00
Daniel Marjamäki
52499ca8f8
Fixed #2790 (Incorrect allocation mismatch error)
2011-05-19 19:41:18 +02:00
Stefan Weil
21a2a91b3c
executionpath: fix memory leak
2011-05-19 19:31:51 +02:00
Daniel Marjamäki
c971fa0d4b
cmake: cleanup unmaintained cmake files
2011-05-19 17:16:04 +02: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
b6dcdd7b79
Preprocessor: Don't report that there are missing system includes unless --debug-warnings has been given.
2011-05-15 09:38:13 +02:00
Daniel Marjamäki
be9e66efff
Fixed #2782 (Segfault with #asm)
2011-05-11 19:27:19 +02:00
Daniel Marjamäki
144d811e54
Fixed #2780 (false positive: variable p is not assigned a value 'int p[2]; *p = 0;')
2011-05-11 18:58:25 +02:00
Daniel Marjamäki
1c992fe25a
Fixed #2783 (Improve check: struct member leaks when analysing c file)
2011-05-11 18:19:14 +02:00
Robert Reif
2db67863a7
#2700 (common logic or cut and paste errors) make duplicate branches inclnclusive
2011-05-08 13:22:42 -04: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
Daniel Marjamäki
af7c97f972
Fixed #1684 (false positive: buffer access out of bounds when using extern variable declaration)
2011-05-07 11:34:48 +02:00
Robert Reif
bb5dfa58a1
fix #2765 (Non local address detected as address of local auto-variable)
2011-05-06 19:26:04 -04:00
Robert Reif
ccb831d375
fix regression #1819 (False positive: auto variable assignment (unseen typedef))
2011-05-06 18:18:48 -04:00
Daniel Marjamäki
3629f953f0
Fixed #2770 (False positives (scope can be reduced / variable is assigned value that is never used))
2011-05-06 21:16:01 +02:00
Daniel Marjamäki
b9ee867344
Fixed #2764 (False positive: Uninitialized variable '&(x[0])')
2011-05-05 21:26:18 +02:00
Daniel Marjamäki
9e97da8a57
Reverted fix for string::size. Ticket: #2756
2011-05-05 20:57:17 +02:00
Robert Reif
51baca0359
fix #1982 (simplifyTypedef: scope info is lost)
2011-05-02 22:42:52 -04:00
Daniel Marjamäki
d998477c69
renamed --check-includes to --check-config
2011-05-02 21:28:33 +02:00
Daniel Marjamäki
8603919b2d
Missing includes - normally just report that there are missing includes. The --check-includes can then be used to check what missing includes there are. Ticket: #2719
2011-05-02 14:58:16 +02:00
Daniel Marjamäki
cc8a5fd23e
reverted 761dd419
- reporting excessive missing include messages
2011-05-02 14:02:49 +02: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
761dd419af
Fixed #2719 (Fix excessive false positives in include-file handling)
2011-05-01 12:59:08 +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
e8eb20c6ef
fix debug warning for function parameters with template with varid of 0
2011-04-28 20:53:31 -04:00
Robert Reif
a2938b7212
fix
2011-04-28 19:08:18 -04:00
Kimmo Varis
c7d99fe9a7
Remove ErrorLogger::reportStatus() method.
...
The ErrorLogger::reportStatus() is not lib code interface. The CLI
code does the looping through file list and gives one file at a
time for the core code. Hence lib has no any idea about the
progress and it can't provide such information.
Also the recent commit (6d858b6
) caused a GUI build failure by
adding CLI code dependency to GUI. Which is big no-no.
This is admittedly a hack. But it allow us to build all modules
again.
2011-04-27 23:27:02 +03:00
Daniel Marjamäki
6e48ab4384
astyle formatting
2011-04-27 18:30:37 +02:00
Greg Hewgill
d8a4383f5f
Use tolowerWrapper wherever appropriate
2011-04-27 21:13:05 +12:00
Greg Hewgill
f0468952f8
Portability: Raise an error if a platform-specific filename compare function is not specified
2011-04-27 21:08:10 +12:00
Robert Reif
6abf29bd22
fix spelling of initialized in checkclass messages
2011-04-26 20:37:16 -04:00
Robert Reif
29c73e0571
fix false positive introduced in CheckAutoVariables::autoVariables conversion to use symbol database
2011-04-26 20:16:09 -04:00
Daniel Marjamäki
e22f69daf4
Fixed #2753 (False negative: dereference uninitialized pointer 'buf[0] = 0;')
2011-04-26 20:26:09 +02:00
Greg Hewgill
6d858b63a1
Report percentage complete based on file size
...
This patch makes the (reasonable) assumption that the total size of all checked
files fits in a 'long' type.
2011-04-26 22:26:23 +12:00
Zachary Blair
46645ab327
Fixed #2722 (new check: statement that is always true (strcmp))
2011-04-25 22:45:27 -07:00
Kimmo Varis
f240574107
Modify the Cppcheck class to check one file at a time.
...
Unify usage and API of CppCheck class. Allow only one file checked
at a time, instead of list of files. Clients can then handle file
lists more naturally and as they see fit. Also clients have better
knowledge of how checking status should be handled.
The single-threaded CLI checking was only one using the file list.
Other clients were giving files (to list) one file at a time.
2011-04-24 19:17:52 +03: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
55898c0dfc
convert last check in checkautovariables to use the symbol database
2011-04-23 09:50:56 -04:00
Robert Reif
cd64d8476c
fixed #2614 (missing varid on function parameter)
2011-04-23 09:37:50 -04:00
Robert Reif
6750c7b492
don't debug warn about class function definitions without body having missing varid on function parameters
2011-04-22 21:41:55 -04:00
Daniel Marjamäki
6fc59b0257
Fixed #2740 (inline cmd // cppcheck-suppress does not work anymore for 1.48)
2011-04-22 20:25:17 +02:00
Greg Hewgill
3fc1db51d1
Change symbol database such that the typestart token skips over type modifiers (const/static/mutable).
...
This fixes checking for the case of a memset() on a static variable.
2011-04-23 01:13:23 +12:00
Robert Reif
04309f74f5
fix #2738 (syntax error on valid code)
2011-04-20 19:09:28 -04:00
Robert Reif
79e5d2db15
run astyle
2011-04-20 19:07:28 -04:00
Daniel Marjamäki
061eab4d22
Virtual destructors: Enabled the check again. I think it is conclusive now. Ticket: #2728
2011-04-20 18:03:16 +02:00
Daniel Marjamäki
a79e979ae4
Memory leaks: Fixed TODO test case. Ticket: #2733
2011-04-20 17:16:09 +02:00
Robert Reif
b1d3d291e6
fix #2736 (segmentation fault of cppcheck)
2011-04-20 07:49:04 -04:00
Daniel Marjamäki
46afc54c10
astyle formatting
2011-04-20 06:41:26 +02:00
Daniel Marjamäki
aac65247ba
Fixed #2733 (Memory leak: not all branch are checked)
2011-04-20 06:41:14 +02:00
Daniel Marjamäki
8417c4eb28
const parameter: Added comment to reduce false negatives for various classes in the std namespace
2011-04-20 05:40:06 +02:00
Daniel Marjamäki
68e7003bb1
Fixed #2734 (False positive: reports 'should be passed by reference' for std::streamoff)
2011-04-19 20:07:54 +02:00
Ettl Martin
47a1332e6a
#2733 added sizeof to checkmemory-leaks white list, added a todo-testcase
2011-04-19 16:55:27 +02:00
Robert Reif
c238b1bba6
fix #2730 (The same expression on both sides of != is OK when checking for NaN)
2011-04-18 19:20:27 -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
0beef13794
ErrorLogger: Refactoring/fixing the serializer/deserializer for inconclusive messages
2011-04-16 13:42:48 +02: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
Robert Reif
50a1f28d86
run astyle
2011-04-13 21:12:35 -04:00
Daniel Marjamäki
7d6e923bd4
inconclusive: don't report such messages in xml version 1 format. until we decide how they will be reported in xml version 2 format I don't report it.
2011-04-10 21:51:27 +02:00
Daniel Marjamäki
11bd6bcd30
Fixed #2712 (false positive: Division by zero)
2011-04-10 21:27:09 +02:00
Daniel Marjamäki
f6b23e1d90
ErrorLogger: Added severities for inconclusive error and inconclusive warning
2011-04-10 16:39:36 +02:00
Robert Reif
56212370d1
add check for same expression on both sides of an operator (part of #2700 )
2011-04-10 10:25:02 -04:00
Robert Reif
434783530a
Merge branch 'master' of github.com:danmar/cppcheck
2011-04-10 09:57:34 -04:00
Robert Reif
4a50aca7b2
fix a bug in checkDuplicateBranch where removed type info like signed/unsigned was not checked for difference
2011-04-10 09:57:09 -04:00
Daniel Marjamäki
e5d43d4ed2
Renamed Settings::stupid to Settings::experimental
2011-04-10 15:55:08 +02:00
Daniel Marjamäki
30ee9ba6e4
Added Settings::stupid flag that can be used to hide checking that generates false positives.
2011-04-10 13:23:45 +02:00
Daniel Marjamäki
1178d47a9b
--inconclusive : Added command line flag that enable inconclusive checking. It is added for experimental purposes.
2011-04-10 12:52:59 +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
f284c3a11f
CheckOther: Code cleanup. Use %oror%
2011-04-10 11:52:12 +02:00
Daniel Marjamäki
76679255a3
Preprocessor: Use %oror% in multiCompare pattern
2011-04-10 11:50:19 +02:00
Daniel Marjamäki
e94e3eca82
Preprocessor: Use %oror% in multiCompare pattern
2011-04-10 11:47:49 +02:00
Daniel Marjamäki
ec5ddb16b4
CheckOther: Use %op% in CheckUnsignedDivision
2011-04-10 11:31:04 +02:00
Daniel Marjamäki
ad8fb37fb0
CheckUninitVar: Use %op%
2011-04-10 11:28:18 +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
747a2331c6
Token::Match : Allow that %oror% and %or% is used in multiCompare patterns
2011-04-10 08:39:55 +02:00
Robert Reif
66de41b313
partial fix for #2700 (common logic or cut and paste errors)
2011-04-09 17:05:27 -04:00
Robert Reif
d22fcb8184
fix bug in previous commit: fix #311 (add detection of duplicated if else-cases)
2011-04-09 16:34:16 -04:00
Robert Reif
7e403ae210
fix #311 (add detection of duplicated if else-cases)
2011-04-09 15:14:01 -04:00
Robert Reif
77aebd357e
Refactoring: add Token::isAssignmentOp and use it in CheckClass::checkConstFunc
2011-04-09 14:36:05 -04:00
Daniel Marjamäki
7d93bfb42e
Refactoring: Use Token::isArithmeticalOp instead of hardcoded conditions
2011-04-09 18:50:05 +02:00
Daniel Marjamäki
f76eb5541c
Refactoring: Use %op% instead of Token::isOp
2011-04-09 18:47:01 +02:00
Daniel Marjamäki
7320bbd8fd
Refactoring: Use %op%
2011-04-09 18:44:07 +02:00
Daniel Marjamäki
bd93997e4f
Refactoring: Use %op% instead of Token::isOp in CheckBufferOverrun
2011-04-09 18:37:03 +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
e75acd7476
Release: Updated versions to 1.48
2011-04-09 07:55:07 +02:00
Daniel Marjamäki
a3f177fc97
Fixed cppcheck warnings: Removed extra 'Token::' from statement
2011-04-09 06:56:31 +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
Daniel Marjamaki
fbc8223a6b
Preprocessor: Fixed expandMacros problem. Ticket: #2707
2011-04-07 16:53:42 +02:00
Stefan Weil
8482eb9d5c
Obsolete functions: Fix messages for gethostbyaddr, gethostbyname
2011-04-07 00:33:54 +02:00
Daniel Marjamäki
b5bdb9eeae
fixed gcc compiler warning
2011-04-06 21:40:50 +02:00
Daniel Marjamaki
cb473a48b7
Preprocessor: Use Settings::debugwarnings instead of NDEBUG to determine if 'missing system include' should be reported or not
2011-04-06 19:49:04 +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
4ac3c7fe3b
clarify calculation: fixed false negative for 'int x = a - b ? 2 : 3'
2011-04-04 21:33:16 +02:00
Daniel Marjamäki
0d3874693a
Buffer overrun: broke out duplicate code
2011-04-04 17:33:43 +02:00
Daniel Marjamäki
63acd9bb3e
Clarify calculation: Added warnings for << and >>
2011-04-03 22:12:22 +02:00
Daniel Marjamäki
266d1cc4d3
Null pointer: cleanup the code. Ticket: #2642
2011-04-03 21:55:21 +02:00
Martin Exner
bc3507118d
Fixed #2696 (False positive nullpointer)
2011-04-03 21:06:42 +02: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
29422b8552
clarify precedence: made the short message shorter
2011-04-02 17:27:36 +02:00
Daniel Marjamäki
8a28a63e68
Merge commit 'elfring/2679d'
2011-04-02 14:16:14 +02:00
Markus Elfring
8cde24597f
Determination of rule support in CMake scripts (bug #2679 , #2524 )
...
The support for check rules will be automatically included in the generated
software if build settings were accordingly selected for PCRE.
https://sourceforge.net/apps/trac/cppcheck/ticket/2679
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
2011-04-02 13:25:18 +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
855b01cd5a
Clarify precedence 'a*b?c:d' : warn for addition, subtraction and division also. tried to clarify the message more
2011-04-02 11:43:20 +02:00
Daniel Marjamäki
f34e9e6623
Tokenizer: better simplification of calculations in conditions
2011-04-02 11:08:58 +02:00
Robert Reif
64fa7bf8d4
symbol database: add support for anonymous struct and union
2011-03-31 20:54:23 -04:00
Robert Reif
a39444a40f
change CheckClass::operatorEqToSelf to make better use of the symbol database
2011-03-31 19:53:35 -04:00
Robert Reif
cf65a73c47
fix CheckClass::operatorEq to check return type more closely (to match check description)
2011-03-31 19:40:28 -04:00
Daniel Marjamäki
0dbf5c6151
fixed doxygen warnings about undocumented function parameters
2011-03-31 19:16:43 +02:00
Robert Reif
faaff942d2
symbol database: improve function argument count and default argument count
2011-03-30 21:59:43 -04:00
Robert Reif
d17a204096
symbol database: get function argument count using argument list size rather than counting commas
2011-03-30 21:14:24 -04:00
Daniel Marjamäki
b8cda19ca6
Fixed #2655 (false positive: (warning) Redundant code: Found a statement that begins with numeric constant)
2011-03-30 21:57:01 +02:00
Lieven de Cock
97328f08de
Improve/cleanup Path::removeQuotationMarks().
2011-03-30 21:46:41 +03: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
Stefan Weil
0e4cf7a2d6
Spell checks
2011-03-30 16:44:16 +02:00
Robert Reif
ce934f03a4
symbol database: handle default values for function arguments properly
2011-03-29 23:16:13 -04:00
Robert Reif
9612573d8e
add support for array of unnamed struct and union to symbol database
2011-03-29 19:48:12 -04:00
Kimmo Varis
4d4b28b075
Remove './' at begin of path in Path::simplifyPath.
...
The './' is not needed at begin of path for files we check. And it
only makes paths longer. This also makes it easier to match paths.
2011-03-29 20:53:18 +03:00
Daniel Marjamäki
0a2f11c2cd
Fixed #2695 (False positive: null pointer dereference and ternary operator (?:))
2011-03-29 18:45:32 +02:00
Robert Reif
b31da161a7
more support for anonymous struct to symbol database
2011-03-29 07:47:39 -04:00
Robert Reif
678486f0db
add support for anonymous struct to symbol database
2011-03-29 07:08:59 -04:00
Robert Reif
e9a23d9cb5
fix #2692 (False positive: if parsed as function in operator >>)
2011-03-28 20:02:06 -04:00
Robert Reif
1aca09a8bf
add support for checking struct/class member container in CheckStl::size()
2011-03-28 19:31:23 -04:00
Kimmo Varis
b889f663ae
Add Path::removeQuotationMarks() to clean path.
2011-03-28 22:14:19 +03:00
Daniel Marjamäki
a1dba61cee
Null pointer: prefer longer error message that says 'otherwise condition at line X is redundant'
2011-03-28 18:48:27 +02:00
Daniel Marjamäki
7426bd3daf
Null pointer: prefer longer error message that says 'otherwise condition at line X is redundant'
2011-03-28 18:44:25 +02:00
Daniel Marjamäki
4a7b60942b
Fixed #2691 (False positive: struct dereference and check (switch-break))
2011-03-28 17:28:21 +02:00
Robert Reif
31f8ff723b
skip nested anonymous unions when searching for variables in symbol database
2011-03-27 18:37:31 -04:00
Daniel Marjamäki
57056bcf61
Fixed #2689 (False positive: Possible null pointer dereference)
2011-03-27 21:29:49 +02:00
Robert Reif
dd5e15b40c
output a debug message when a member variable is used that has a varid of 0
2011-03-27 14:27:14 -04:00
Robert Reif
1e1434e191
make member variable change detection simpler and more accurate for CheckClass::checkConst
2011-03-27 13:59:12 -04:00
Robert Reif
20853fe273
add anonymous union support to the symbol database
2011-03-27 13:48:41 -04:00
Daniel Marjamäki
c87037c29d
Fixed #2674 (False positive: possible null pointer dereference (check if pointer is null in one function, dereference it in another function))
2011-03-27 11:04:58 +02: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
0ff5320d19
CMake: There is no need for PCRE when building the lib
2011-03-26 09:33:21 +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
c27ecf5aeb
only break when we know we are inc/dec a member variable in CheckClass::checkConstFunc
2011-03-25 23:22:28 -04:00
Robert Reif
168db82fd6
better checking of assignment to array element in CheckClass::checkConstFunc
2011-03-25 23:02:13 -04:00
Robert Reif
f8e1735b0f
add support to CheckClass::checkConstFunc for ++/-- array elements
2011-03-25 22:37:32 -04:00
Robert Reif
ca50bc7850
move 2 CheckClass helper functions to follow externally called functions so code matches comments
2011-03-25 22:21:40 -04:00
Markus Elfring
9301ee28a8
Added CMake files
2011-03-25 07:14:53 +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
d643918761
symbol database: add a link from a Function to its Function Scope namd make function parameters belong to Function Scope
2011-03-24 22:08:18 -04:00
Daniel Marjamäki
74105f5d83
Fixed #2673 (false positive: memory leak (address stored in list))
2011-03-24 17:14:12 +01:00
Robert Reif
61e720c82b
fix #1288 (Use of memset on struct - nested structs not handled)
2011-03-23 21:58:58 -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
Daniel Marjamäki
5f36ede4f5
Fixed #2662 (Segfault: overloaded function call function with same name)
2011-03-23 18:45:47 +01: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
14c07e988e
fix pointer/reference check in CheckClass::noMemset symbol database conversion
2011-03-22 22:29:39 -04:00
Robert Reif
5314cc02b2
convert remainder of CheckClass::noMemset to use symbol database
2011-03-22 22:23:57 -04:00
Robert Reif
468a983db1
use the symbol database to look up base classes in CheckClass::noMemset check
2011-03-22 21:24:28 -04:00
Robert Reif
d36ed9aff1
fix #2670 (False positive: function can be const, overloaded functions)
2011-03-22 19:23:36 -04:00
Robert Reif
5cdd635701
run astyle
2011-03-22 19:20:05 -04:00
Ettl Martin
8308fb72e3
fixed performance issues, found by selfcheck with cppcheck.
2011-03-22 23:15:15 +01:00
Ettl Martin
ff1de4c896
extended checkmemoryleak-whitelist
2011-03-22 22:13:29 +01:00
Zachary Blair
f89f0c748f
Fixed #2665 (Slightly sped-up how Token::Match() parses patterns)
2011-03-22 00:15:12 -07: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
15fc071514
add virtual base class support to symbol database
2011-03-21 20:03:41 -04:00
Robert Reif
3c5134bb21
run astyle
2011-03-21 19:59:53 -04:00
Ettl Martin
7e31c91a79
extended checkmemoryleak white list
2011-03-21 23:59:43 +01:00
Ettl Martin
38cf9f26df
#2667 added open(), _open() and _wopen() function to checkmemoryleak whitelist, incl. unittests;
2011-03-21 23:20:46 +01:00
Ettl Martin
78bcb07e19
#2667 added perror to checkmemoryleak white list; added unit-tests.
2011-03-21 17:43:26 +01:00
Ettl Martin
f242cb639e
#2668 fixed memory leak ( freopen() )
2011-03-21 15:12:21 +01:00
Ettl Martin
a975301ce4
#2659 added chown,chmod and chdir functions to checkmemoryleak white list; added unittests for each case;
2011-03-21 00:07:37 +01:00
Ettl Martin
01249d4f48
#2659 added access()-function to checkmemoryleak white-list and provided untittests.
2011-03-20 23:39:44 +01:00
Ettl Martin
7afc0978c2
#2659 added stat function to white list and provide unit tests.
2011-03-20 22:17:51 +01:00
Ettl Martin
ab6888dbfe
fixed ticket 2659: added lstat function to white list; provided unit-tests.
2011-03-20 21:52:25 +01:00
Robert Reif
2277cb6965
fix #2663 (False negative: function can be const (changing unknown or uninitialised variable))
2011-03-20 13:29:52 -04:00
Robert Reif
41d80b5c8d
fix #2664 (False negative: function can be const (using type from another namespace))
2011-03-20 12:53:37 -04:00
Daniel Marjamäki
27506b4231
Fixed #2661 (False positive: object destroyed immediately)
2011-03-20 09:55:26 +01:00
Daniel Marjamäki
2613780b85
Fixed #2662 (Segfault: overloaded function call function with same name)
2011-03-20 09:16:52 +01: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
2dcd0128b0
Fixed #2213 (false negative: resource leak (calling allocating subfunction twice))
2011-03-19 14:05:22 +01: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
1de35c168d
fix #2657 (segmentation fault of cppcheck ( gcc-testsuite: return f(){} ))
2011-03-17 20:10:56 -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
47531dd99c
fix #2637 (segmentation fault of cppcheck ( {} const const ))
2011-03-15 22:33:14 -04:00
Robert Reif
ba0b3e6451
fix #2651 function typedef with extra ()s
2011-03-15 19:24:30 -04:00
Greg Hewgill
fa868e44ae
Support use of 'this->' when checking operator=() return type
2011-03-15 20:19:30 +13:00
Robert Reif
3babf6a9eb
look for function prototypes but don't save them in the symbol database yet
2011-03-13 22:59:25 -04:00
Robert Reif
47a90851f1
save pointer to Function info in function scope in symboldatabase
2011-03-13 21:18:49 -04:00
Robert Reif
836fadcb6a
save location of using directive (not used yet)
2011-03-13 21:01:33 -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
Daniel Marjamäki
3e1df1b463
Clarify condition: re-enabled check
2011-03-13 12:16:55 +01:00
Daniel Marjamäki
f26bc6a75c
Fixed #2621 (Segmentation fault for GCC statement expression)
2011-03-13 10:34:54 +01:00
Daniel Marjamäki
384729204f
Refactoring: Use SymbolDatabase to determine if variable is a iterator
2011-03-13 09:48:53 +01:00
Daniel Marjamäki
85daa26fdf
Refactoring: Use symbol database to get variable type
2011-03-13 08:48:38 +01:00
Daniel Marjamäki
ed11a9e3cb
Fixed #2639 (False positive: confusion between struct and function)
2011-03-13 08:38:40 +01:00
Robert Reif
27f4b8b88b
Convert CheckClass::noMemset to use the symbol database to lookup types. This adds better support for namespaces and nested classes.
2011-03-12 22:41:21 -05:00
Robert Reif
51662eeedd
save start parentheses of global functions
2011-03-12 20:35:52 -05:00
Daniel Marjamäki
f3728c0b76
Fixed #2647 (False positive: Possible null pointer dereference (member function call))
2011-03-12 20:57:19 +01:00
Daniel Marjamäki
6bd56dbe20
Fixed #2643 (False positive: iterator increment and insert)
2011-03-12 20:29:54 +01:00
Robert Reif
6a2848e50f
fix another false negative introduced by fix for #2641
2011-03-12 12:27:19 -05:00
Robert Reif
384bd96766
fix false negative introduced by fix for #2641
2011-03-12 11:42:58 -05:00
Daniel Marjamäki
0a28b7309f
Fixed #2641 (False positive: Possible null pointer dereference (global pointer, function call))
2011-03-12 15:02:06 +01:00
Daniel Marjamäki
29ab409af5
Merge branch '2390b' of https://github.com/elfring/cppcheck into elfring-2390b
2011-03-12 11:58:24 +01:00
Greg Hewgill
2716b856f4
throwing an exception is a valid immediate exit from switch
2011-03-12 07:27:31 +13: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
Greg Hewgill
256e7dee21
Allow suppressing all warnings (using *) for specified file or files
2011-03-10 22:00:48 +13:00
Greg Hewgill
1ec6a642dc
Revert "Check for memset on nested structs (ticket #1288 )"
...
Turns out this fix is incomplete.
This reverts commit a084697410
.
2011-03-10 20:19:31 +13:00
Daniel Marjamäki
e94ebd829d
suspicious condition: commented out the check temporarily - there are some false positives I'll need to fix
2011-03-09 22:29:50 +01:00
Daniel Marjamäki
db48158b28
Suspicious condition: Added new check for conditions that contains assignment+comparison
2011-03-09 22:20:14 +01:00
Daniel Marjamäki
5a0ec56fc2
Fixed #2632 (segmentation fault of cppcheck ( void>(); void>() ))
2011-03-09 21:25:44 +01:00
Daniel Marjamäki
bea3875386
Fixed #2607 (segmentation fault of cppcheck ( struct C {} {} x))
2011-03-09 21:00:28 +01:00
Daniel Marjamäki
be33f6b945
Fixed #2635 (False positive: resource leak)
2011-03-09 19:53:59 +01:00
Greg Hewgill
a084697410
Check for memset on nested structs (ticket #1288 )
2011-03-09 23:02:49 +13:00
Greg Hewgill
3883afcbf4
Check for memset on objects with virtual functions (ticket #607 )
2011-03-09 22:10:39 +13:00
Greg Hewgill
70b4076111
refactor noMemset so it recursively checks parent classes for non-memset-compatible things
2011-03-09 21:29:30 +13:00
Robert Reif
7a7257f200
fix #2630 (segmentation fault of cppcheck ( typedef ... )
2011-03-08 20:24:57 -05:00
Robert Reif
c457179ce6
fix null pointer dereference found by clang++ --analyze
2011-03-08 20:14:46 -05:00
Daniel Marjamäki
0b8581e717
Fixed #2620 (Tokenizer::setVarId : wrong handling of member function parameters)
2011-03-08 20:41:41 +01:00
Daniel Marjamäki
bf2362d558
Fixed #2634 (False positive: buffer access out of bounds)
2011-03-08 19:49:56 +01:00
Robert Reif
d74ae3b0f0
copy all flag fields in a Token
2011-03-07 20:04:25 -05:00
Robert Reif
e305a155af
convert CheckStl::size() to use symbol database, fix false positives, and remove inconclusive
2011-03-07 19:49:43 -05:00
Daniel Marjamäki
a177fc4b24
Preprocessor: made sure string::iterator is valid after string::erase
2011-03-07 22:00:30 +01:00
Daniel Marjamäki
06abaf95a5
Incorrect string compare: reduce noise when using strncmp on string literal
2011-03-07 21:37:13 +01:00
Daniel Marjamäki
7496cd412c
Fixed #2631 (Tokenizer::simplifyTemplates: template usage 'std::cout << (foo<double>(r));')
2011-03-07 21:21:06 +01:00
Daniel Marjamäki
8e571c04e4
Fixed #2633 (False positive: Memory leak for tree node)
2011-03-07 20:17:52 +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
a77993db75
Refactoring of the CheckNullPointer::isPointer. Use the symbol database. Ticket: #2629
2011-03-06 21:23:33 +01:00
Daniel Marjamäki
e26a7819d3
Symbol database: variable fix. ticket: #2629
2011-03-06 21:21:42 +01:00
Daniel Marjamäki
80235b0d53
astyle formatting
2011-03-06 21:15:58 +01: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
Greg Hewgill
7daa6b9370
Always pass unsigned char to ::isspace to prevent runtime error in MSVC
2011-03-07 07:58:44 +13: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
10db7c4a48
error logger: explain the severities better
2011-03-06 14:26:02 +01:00
Kimmo Varis
080603148c
Document error message severities.
2011-03-06 14:29:52 +02:00
Daniel Marjamäki
ca4015f905
CheckMemoryLeak: Refactoring the code
2011-03-06 09:42:16 +01: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
Greg Hewgill
b9df7735c5
switchCaseFallThrough is now an inconclusive check
2011-03-06 13:06:30 +13:00
Greg Hewgill
c8394909c0
Relax detection of 'fall through' comment so it only adds a suppression if it immediately precedes 'case' or 'default'
2011-03-06 12:14:10 +13:00
Greg Hewgill
8c245cfd2f
switchCaseFallThrough is now a coding style check (ticket #2623 )
2011-03-06 09:43:27 +13:00
Greg Hewgill
e12ae654a8
Support a few more common styles of "fall through" comment
2011-03-05 18:02:38 +13:00
Greg Hewgill
c30125111a
Merge branch 'switch-case-fall-through'
2011-03-05 00:55:33 +13:00
Greg Hewgill
cc7e05a5b0
fix case where fall through comment precedes preprocessor line
2011-03-05 00:45:58 +13:00
Greg Hewgill
70fcbe94f4
avoid warning on first case (in case there are declarations before first case)
2011-03-05 00:45:58 +13:00
Greg Hewgill
1a606a57fd
slightly more flexible detection of 'fall through' comment
2011-03-05 00:45:58 +13:00
Greg Hewgill
8c1d7ef316
avoid crash when else condition doesn't have braces to link
2011-03-05 00:45:58 +13:00
Greg Hewgill
610d2efaea
recognise fall through in c style comments
2011-03-05 00:45:58 +13:00
Greg Hewgill
ad45737805
more gracefully handle unexpected blocks inside switch
2011-03-05 00:45:57 +13:00
Greg Hewgill
a532a9690e
full implementation of switch case fall through
2011-03-05 00:45:57 +13:00
Greg Hewgill
93ea774484
initial simplistic implementation of switchCaseFallThrough
2011-03-05 00:45:57 +13: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
Robert Reif
4b0edccec4
convert some of the checks in CheckAutoVariables to use the variable symbol table
2011-03-02 21:21:46 -05:00
Robert Reif
c9b2ab3c26
add debug message for function argument missing varid
2011-03-02 21:08:27 -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
Greg Hewgill
2efb2efaca
refactor #if 0 handling to leave preprocessor statements alone
2011-03-01 20:04:11 +13:00
Greg Hewgill
a331516735
handle #if (0) after removing parentheses
2011-03-01 19:50:17 +13:00
Greg Hewgill
31c56d7353
handle embedded whitespace in #if 0 processing
2011-03-01 19:32:47 +13: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
Zachary Blair
e1b2569b81
Fixed #432 (New check: wrong usage of ! operator in conditions)
2011-02-27 12:30:22 -08:00
Robert Reif
3db0e7ef8f
fix symbol database bug where delete can be considered a variable declaration
2011-02-27 10:35:59 -05:00
Robert Reif
962183f964
add an array flag to symbol database Variable class
2011-02-27 10:21:14 -05:00
Robert Reif
0872f1291e
fix a symbol database bug where a return statement could be considered a variable declaration
2011-02-27 10:13:40 -05:00
Daniel Marjamäki
e3f779a41c
Symbol database: Fixed debug warnings for true/false. true/false doesn't have varId.
2011-02-26 23:58:02 -08:00
Robert Reif
2b03bfaf38
fix a bug in symbol database while scope processing
2011-02-26 23:00:06 -05:00
Robert Reif
b74ebbda02
fix potential null pointer dereference for unnamed function arguments
2011-02-26 18:34:17 -05:00
Robert Reif
31a18b9b23
convert CheckClass::noMemset to use new variable lookup capability
2011-02-26 16:00:05 -05:00
Robert Reif
8152cbbd1b
add a varId to Variable lookup table and fill it in with all variables
2011-02-26 15:57:16 -05:00
Robert Reif
7638a4554e
add local scopes to the symbol database
2011-02-26 15:53:57 -05:00
Robert Reif
eda25f6502
add a list of function arguments to symbol database Function class
2011-02-26 15:51:12 -05: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
Daniel Marjamäki
96c85104ab
astyle formatting
2011-02-26 20:09:14 +01:00
Daniel Marjamäki
92ab1ef8e7
fix
2011-02-26 20:08:37 +01:00
Daniel Marjamäki
ab2bf0ee0c
Fixed #2575 (false positive: Preprocessor does not ignore #include within #if 0 block)
2011-02-26 10:04:38 -08:00
Jnos Maros
39114e3482
Fixed #2608 ([lib/checkpostfixoperator.cpp:87]: (error) Possible null-pointer dereference: decltok)
2011-02-24 07:37:33 +01:00
Daniel Marjamäki
32a49235e3
Fixed #2578 (Preprocessor does not correctly handle #define A 0 / #if A)
2011-02-23 13:08:24 -08: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
Sébastien Debrard
458fc7454e
update the message when bcopy function is used
2011-02-23 00:27:50 +01:00
Daniel Marjamäki
9983aa5721
Fixed #2605 (cppcheck hangs with 100% cpu load ( #define = ))
2011-02-22 19:55:02 +01: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
ba6c2ca310
fix #2602 (segmentation fault of cppcheck ( class A {A& operator=(const A&); }; ))
2011-02-22 06:47:28 -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
Robert Reif
5f84272a52
fix segfault: #2591 (cppcheck hangs with 100% cpu load ( class A : ))
2011-02-21 14:25:35 -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
5984b6b53f
fix #2595 (False positive Technically the member function 'A::foo' can be const)
2011-02-20 20:01:54 -05:00
Robert Reif
763763fa9b
fix bitfields to support non-numeric bitfield width
2011-02-20 18:22:49 -05:00
Daniel Marjamäki
bfe28d3b26
Fixed #2597 (False positive: Buffer access out-of-bounds for u_char, uint*_t, ...)
2011-02-20 21:24:57 +01:00
Daniel Marjamäki
c52704e636
astyle formatting
2011-02-20 21:00:03 +01:00
Daniel Marjamäki
c3fba356c0
Fixed #2563 (#if equality testing does not ignore parentheses)
2011-02-20 20:57:28 +01: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
7894d86132
Null pointers: Fixed false negative for such code: 'if (p && *p) {} else { *p=0; }'. Ticket: #2379
2011-02-20 14:38:49 +01:00
Robert Reif
537ac0cb34
use func->start rather than searching for '{' in CheckClass::privateFunctions
2011-02-20 08:36:06 -05:00
Robert Reif
597aea9f15
save start of function '{' and start of variable declaration in symbol database so checks don't have to find them
2011-02-20 08:25:42 -05: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
7dd8a3283a
fix comment in CheckClass::initializeVarList
2011-02-19 20:09:07 -05:00
Robert Reif
fef1142997
fix #2592 (False positive: 'operator=' should return reference to self)
2011-02-19 20:02:16 -05:00
Greg Hewgill
d20987c3da
Merge branch 'inline-suppression-c-style'
2011-02-20 13:26:35 +13:00
Greg Hewgill
98ab34b2b5
Support cppcheck-suppression in C style comments
2011-02-20 11:44:42 +13:00
Daniel Marjamäki
5f0206725b
Null pointers: Fixed false negative for such code 'if (p && *p==0) {} *p = 0;'. Ticket: #2379
2011-02-19 21:28:18 +01:00
Daniel Marjamäki
29d05cf5f2
Null pointers: Fixed false negative for such code: 'abc->a = 0; if (abc && ..'. Ticket: #2379
2011-02-19 21:10:31 +01:00
Daniel Marjamäki
e7ef1b3627
Null pointer: fixed false negative when dereferencing struct and then checking if it's null. Ticket: #2379
2011-02-19 21:01:38 +01:00
Robert Reif
e6eb160395
fix [B#2589 (segmentation fault of cppcheck (struct B : A))
2011-02-19 14:38:00 -05:00
Daniel Marjamäki
caca6e94e6
Fixed #2231 (uninitialized variable: undetected when initialization in for loop)
2011-02-19 20:19:46 +01:00
Robert Reif
77fe9858e2
fix #2587 (Spurious warning about struct hiding typedef)
2011-02-19 14:18:37 -05:00
Robert Reif
f9b1505115
fix Scope::findInNestedListRecursive to check all children
2011-02-19 13:40:02 -05:00
Daniel Marjamäki
85b1ea21cf
Fixed #2590 (segmentation fault of cppcheck ( {}int ))
2011-02-19 09:56:17 +01: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
9a760b9654
Fixed #2582 (segmentation fault of cppcheck ( if() ))
2011-02-18 20:05:44 +01:00
Daniel Marjamäki
dfba4b7332
Fixed #2585 (segmentation fault of cppcheck (CheckOther::clarifyCalculation))
2011-02-17 21:30:59 +01:00
Daniel Marjamäki
cf2a04377e
Fixed #2586 (segmentation fault of cppcheck (template<>))
2011-02-17 21:15:17 +01:00
Greg Hewgill
e2581da30c
Merge branch 'unmatched-suppressions'
2011-02-17 21:46:43 +13:00
Greg Hewgill
a4de6a3455
be sure to list unmatched suppressions only for the currently processed file
2011-02-17 21:46:14 +13:00
Daniel Marjamäki
0ee583e324
Fixed gcc compiler warnings (signedness)
2011-02-16 20:56:02 +01:00
Daniel Marjamäki
54e0b60cc5
Fixed #2584 (false positive 'variable n is never used')
2011-02-16 20:33:24 +01:00
Greg Hewgill
5d74325015
implement unmatchedSuppression information message
2011-02-16 23:02:37 +13:00
Greg Hewgill
331788246b
factor out addSuppressionLine from file reading function
2011-02-16 22:26:16 +13:00
Greg Hewgill
8a85b18283
use suppression wildcard glob instead of special-case empty filename
2011-02-16 20:19:18 +13:00
Robert Reif
218464df89
fix #2580 (false postive with Unused private function)
2011-02-14 19:50:13 -05:00
Daniel Marjamäki
0ed0d07714
Tokenizer::simplifyCalculations: basic handling of bitwise operators
2011-02-14 20:43:26 +01:00
Daniel Marjamäki
805773663e
Build: Renamed HAVE_DEPENDENCIES to HAVE_RULES
2011-02-14 19:37:58 +01:00
Robert Reif
cdd8d3f785
Really fix #2348 perl-tk
2011-02-13 19:02:57 -05:00
Ettl Martin
d2a1d3f14a
fixed pre/post increment warings, found during selfcheck
2011-02-13 23:57:07 +01: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
d8da1ac390
Merge branch 'suppress-glob' of https://github.com/ghewgill/cppcheck into ghewgill-suppress-glob
2011-02-13 18:17:44 +01:00
Greg Hewgill
1418c12261
astyle formatting
2011-02-13 10:01:32 +13:00
Greg Hewgill
421b32efb4
use std::stack instead of std::list where appropriate
2011-02-13 09:55:45 +13:00
Robert Reif
2aefa5deb5
fix #2577 (segmentation fault of cppcheck)
2011-02-12 15:35:48 -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
518a495334
Fixed #2576 (False positive: (error) Buffer access out-of-bounds)
2011-02-12 18:34:12 +01:00
Daniel Marjamäki
07e8325e50
Fixed #2549 (segmentation fault of cppcheck)
2011-02-12 16:51:59 +01:00
Daniel Marjamäki
7507f64ee7
Fixed #2558 (false positive: (error) Returning reference to auto variable)
2011-02-12 15:39:26 +01:00
Daniel Marjamäki
2657d36d03
Fixed #2502 (False positive: redundant assingment of object to itself)
2011-02-12 14:27:07 +01:00
Daniel Marjamäki
318f2e8a57
Fixed #2561 (False positive on array index when using conditional operator)
2011-02-12 11:31:10 +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
Daniel Marjamäki
27febb062b
cppcheck: Added HAVE_DEPENDENCIES define. Cppcheck cli can be compiled without dependencies.
2011-02-12 08:06:59 +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
Sébastien Debrard
f5ed52b84b
fix #2569 check postfix increment on boolean
2011-02-11 23:38:23 +01:00
Daniel Marjamäki
951a81d0d2
Tokenizer::simplifyKnownVariables: Broke out the simplification into a separate function
2011-02-11 20:12:51 +01:00
Daniel Marjamäki
227a6100f7
astyle formatting
2011-02-11 19:31:37 +01:00
Greg Hewgill
f2f2d1f885
Fixed #2571 (Preprocessor: better handling for #undef)
2011-02-11 18:51:22 +01:00
Greg Hewgill
751f8d46e5
Fixed #2570 (Preprocessor: #define parsing when there is no whitespace between a macro symbol and its double-quoted string expansion)
2011-02-11 18:01:27 +01:00
Robert Reif
b8c5426bb8
fix #2567 Unused private function when implemented in different file
2011-02-11 08:00:41 -05:00
Erik Lax
b3e8ef9d48
Fixed #2559 (Refactoring Preprocessor::read)
2011-02-11 06:30:42 +01:00
Daniel Marjamäki
08811c8179
CheckBufferOverrun: Refactoring. Broke out checkScope code for parsing 'for' bodies
2011-02-10 21:56:06 +01:00
Reijo Tomperi
a71204b8e3
Change "tinyxml/tinyxml.h" includes into <tinyxml.h> and modify dmake to work with it.
...
This should allow usage of libtinyxml-dev or such libraries without modifications to code or makefile.
2011-02-10 22:35:48 +02:00
Robert Reif
2900d44ff0
#2560 (False positive: The class 'Altren' does not have a constructor, because base class is in namespace.)
2011-02-10 07:37:55 -05:00
Robert Reif
e6848aef98
Tokenizer: refactor duplicated token copy code info function
2011-02-09 22:02:17 -05:00
Daniel Marjamäki
5175e4ff3f
Fixed #2535 (false positive: (style) Variable 'A' is not assigned a value)
2011-02-09 19:20:44 +01: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
56ae77ba87
Fixed #2555 (Cppcheck 1.47 - Crash on WinMerge-Trunk (Win7 x64))
2011-02-08 20:18:15 +01:00
Erik Lax
aeae5a867d
Fixed #2550 (Bad substr/strncmp comparison)
2011-02-08 19:49:29 +01:00
Greg Hewgill
7a219b1fb8
support wildcard characters * and ? in suppression list
2011-02-09 00:19:57 +13:00
Greg Hewgill
a9f2879889
factor out file matching into own class
2011-02-09 00:19:56 +13:00
Robert Reif
1e0d538273
checkautovariables: refactor to use the symbol database
2011-02-07 19:26:34 -05:00
Daniel Marjamäki
7c9e52546d
Fixed #2552 (preprocessor check XX is already guaranteed to be defined -- too eager?)
2011-02-07 20:26:29 +01:00