Daniel Marjamäki
|
99003c2084
|
CheckClass: Better handling of defaulted and deleted functions in the noCopyConstructor/noOperatorEq/noDestructor
|
2018-05-04 14:58:38 +02:00 |
Daniel Marjamäki
|
31148fdfed
|
Fixed #8523 (Clarify warning: noConstructor)
|
2018-05-01 15:50:03 +02:00 |
Daniel Marjamäki
|
40b6f6b3dd
|
CheckClass: Fix the noDestructor warning
|
2018-05-01 15:31:13 +02:00 |
Daniel Marjamäki
|
9710e819be
|
CheckClass: Disable noDestructor for now, we need to handle new better
|
2018-05-01 09:26:03 +02:00 |
Daniel Marjamäki
|
42100fdf11
|
CheckClass: Better handling of non-copyable classes in the noCopyConstructor check
|
2018-05-01 08:33:23 +02:00 |
Daniel Marjamäki
|
73b41455dd
|
CheckClass: If class has memory management it should have copy constructor, operator= and destructor
|
2018-04-30 23:13:33 +02:00 |
Daniel Marjamäki
|
eb1571af81
|
Refactoring: use range for
|
2018-04-30 22:10:54 +02:00 |
Daniel Marjamäki
|
ca8e19c96d
|
SymbolDatabase: Refactor SymbolDatabase: variable list
|
2018-04-28 09:38:33 +02:00 |
Daniel Marjamäki
|
1a9e8c158d
|
CheckClass::copyconstructors: Use library to determine if function is a allocation function
|
2018-04-27 23:20:04 +02:00 |
Daniel Marjamäki
|
c80c44ab20
|
Refactoring: use range for loop, early continue
|
2018-04-27 23:04:48 +02:00 |
Daniel Marjamäki
|
f336c2efe7
|
Refactoring; Renamed Scope::classStart and Scope::classEnd
|
2018-04-27 22:36:30 +02:00 |
Daniel Marjamäki
|
ed79f300f0
|
Refactoring; use range for loop, use early continue/break
|
2018-04-27 22:18:26 +02:00 |
Daniel Marjamäki
|
25599a76a7
|
Handle 'final' specifier better.
|
2018-04-27 14:57:43 +02:00 |
Daniel Marjamäki
|
b830f462e6
|
Added missingOverride checker; Function 'f' overrides function in base class but does not have the 'override' keyword.
|
2018-04-27 11:12:09 +02:00 |
Daniel Marjamäki
|
deaafd59d7
|
CheckClass: Undo the rule of 3 checker to avoid some warnings
|
2018-04-24 22:42:25 +02:00 |
Daniel Marjamäki
|
485d3e0229
|
CheckClass: Tweak rule of 3 checker
|
2018-04-24 21:45:30 +02:00 |
Daniel Marjamäki
|
6fb25dcaa4
|
CheckClass: Changed checker for 'copy constructor' and 'operator=' to a 'rule of 3' checker
|
2018-04-24 16:07:58 +02:00 |
Daniel Marjamäki
|
c3cb0ddf8c
|
Refactoring; use range for loops
|
2018-04-24 11:13:19 +02:00 |
Daniel Marjamäki
|
22963f3ed8
|
Refactoring; use range for loop
|
2018-04-24 11:04:47 +02:00 |
Daniel Marjamäki
|
42c54f12fe
|
Refactoring: Use range for loops in CheckClass
|
2018-04-23 07:51:28 +02:00 |
Daniel Marjamäki
|
7b10375683
|
Try to make Travis happy
|
2018-04-22 14:00:03 +02:00 |
Daniel Marjamäki
|
0263452f5d
|
CheckClass: Use isLikelyStreamRead
|
2018-04-22 07:45:36 +02:00 |
Daniel Marjamäki
|
be48de1be9
|
CheckClass: Use isLikelyStreamRead
|
2018-04-22 07:40:11 +02:00 |
PKEuS
|
d2146844dd
|
Refactorizations:
- Replace several push_back-calls by emplace_back
- Replace some x = x.substr(0, y) calls by x.erase(y)
|
2018-04-11 09:44:35 +02:00 |
PKEuS
|
b15cc3f236
|
Refactorization: Replace several push_back-sequences by initializer lists
|
2018-04-09 09:54:39 +02:00 |
Daniel Marjamäki
|
a0906140a6
|
Suppressions: New extensible Suppressions xml format that allow more attributes. To start with it also allows symbolName.
|
2018-04-09 06:43:48 +02:00 |
PKEuS
|
e2002db78d
|
Replaced make_container by C++11 initializer lists
|
2018-04-08 23:03:44 +02:00 |
jrp2014
|
043b64467b
|
Refactor lib/checkclass.cpp
|
2018-04-05 15:48:23 +02:00 |
jrp2014
|
b6504c70ca
|
Improve constness
|
2018-04-04 21:51:31 +02:00 |
Daniel Marjamäki
|
0d434efc15
|
virtualCallInConstructor: Clarify warning message
|
2018-04-04 13:04:40 +02:00 |
Daniel Marjamäki
|
b3b364b42f
|
virtualCallInConstructor: Updated warning message
|
2018-04-04 12:52:58 +02:00 |
Daniel Marjamäki
|
ee22a325c7
|
virtual function call in constructor: don't warn about explicit scoped call
|
2018-04-03 14:02:59 +02:00 |
Daniel Marjamäki
|
1046ca2120
|
Improve check: Warn about virtual function calls in constructor/destructor
|
2018-04-02 15:31:47 +02:00 |
Daniel Marjamäki
|
e492932f19
|
Improve check: Variable is not initialized in private constructor (C++11 or later)
|
2018-04-02 15:26:15 +02:00 |
Daniel Marjamäki
|
c4caee6b18
|
Updated copyright year
|
2018-01-14 15:37:52 +01:00 |
Daniel Marjamäki
|
91839c2534
|
Fixed #7987 (FP copyCtorAndEqOperator - class with a move constructor and move assignment operator)
|
2017-12-23 10:35:14 +01:00 |
Daniel Marjamäki
|
526d8b76a6
|
Fixed #8271 (FP uninitMemberVar: Handle method call in middle of statement)
|
2017-11-11 21:28:24 +01:00 |
Daniel Marjamäki
|
4cb3548e2b
|
unsafeClassDivZero: change severity to style
|
2017-10-21 21:51:58 +02:00 |
Daniel Marjamäki
|
5de3c43209
|
changed id for new checker to unsafeClassDivZero
|
2017-10-21 21:45:04 +02:00 |
Daniel Marjamäki
|
15d814e609
|
classPublicInterfaceDivZero: Try to make the error message a bit better. Added variable name and what the bad input value is.
|
2017-10-21 13:00:52 +02:00 |
Daniel Marjamäki
|
7a67bced71
|
classPublicInterfaceDivZero: extend bailout
|
2017-10-21 12:40:20 +02:00 |
Daniel Marjamäki
|
299835da2f
|
classPublicInterfaceDivZero: don't warn in overloaded operators. It is normal behaviour that these are not protected.
|
2017-10-21 08:56:23 +02:00 |
Daniel Marjamäki
|
8a7411abdb
|
CheckClass: Fix wrong 'public interface' warnings
|
2017-10-20 22:10:55 +02:00 |
Daniel Marjamäki
|
86c84029e3
|
New check: Check public interface of classes (#8248)
|
2017-10-20 02:02:51 +02:00 |
Florin Iucha
|
6e737082da
|
Store the defined types in a map, for faster lookup
|
2017-10-17 09:00:14 +02:00 |
Ayaz Salikhov
|
be2c65eb58
|
Simplify int vs bool
|
2017-10-08 07:54:39 +02:00 |
Dmitry-Me
|
7e823e6d8e
|
Extract repeating checks, break loop early
|
2017-09-05 00:04:48 +03:00 |
Dmitry-Me
|
79f74fc4d3
|
Break loop early
|
2017-09-05 00:00:02 +03:00 |
Dmitry-Me
|
7c8cb29d14
|
Extract repeating checks
|
2017-09-04 23:58:14 +03:00 |
Dmitry-Me
|
5885988b1f
|
Cache and reuse value
|
2017-09-04 23:33:52 +03:00 |
Dmitry-Me
|
aece2254d7
|
Put faster checks first
|
2017-09-04 23:33:14 +03:00 |
Dmitry-Me
|
f7ab8c5ebb
|
Drop unneeded parentheses
Those are a misleading leftover from old code
|
2017-09-04 22:49:05 +03:00 |
Dmitry-Me
|
6303437163
|
Resolve C4800
|
2017-08-15 17:42:56 +03:00 |
Dmitry-Me
|
b995e59ff2
|
No need for counting here
|
2017-08-14 18:06:23 +03:00 |
Ayaz Salikhov
|
b8cd7dbb5c
|
Use nullptr instead of 0 or NULL (#936)
|
2017-08-09 20:00:26 +02:00 |
Robert Reif
|
f5044bb65f
|
Fixed #8142 (false positive: The class 'B' has 'copy constructor' but lack of 'operator='.)
Do not count static member variables when trying to figure out if
'operator =' is needed.
|
2017-08-01 19:52:41 -04:00 |
Daniel Marjamäki
|
01f023dc0a
|
CheckClass: Refactor hasAssignSelf to use AST
|
2017-07-28 23:49:11 +02:00 |
orbitcowboy
|
0e575ce12c
|
Modernize: make use of 'nullptr' and added a rule-file for finding non-nullptr (zero) initializations.
|
2017-07-28 15:20:43 +02:00 |
Daniel Marjamäki
|
a3916c501c
|
Refactor loop, use continue
|
2017-07-26 22:03:55 +02:00 |
Steve Browne
|
b58562fc7d
|
Added test cases for catching when assignment comes after an operator, compound assignment, or comparison for ticket #7429 and fixed the tests.
|
2017-05-28 16:00:06 +02:00 |
Ayaz Salikhov
|
28aa939d69
|
iwyu - include what you use
|
2017-05-27 04:33:47 +02:00 |
PKEuS
|
b1f4bd7504
|
Refactorization: Reimplemented Settings::_enabled as a bitfeld instead of std::set (#7995)
|
2017-04-11 11:49:26 +02:00 |
Daniel Marjamäki
|
1faca91c1d
|
Added 'endsWith' utility function. This will make compiling the democlient easier.
|
2017-04-01 18:14:18 +02:00 |
PKEuS
|
ea215c3b7b
|
Fixed false positives in CheckClass::checkConst() due to unmatched function overloads
Fixed function matching if constness mismatches
|
2017-04-01 10:19:32 +02:00 |
Alexander Alekseev
|
abba762d42
|
New check: checking for copy ctor and eq operator co-existence
|
2017-03-24 12:00:20 +01:00 |
PKEuS
|
996501a449
|
Fixed false positive #7953: Support type conversion operators returning pointers
|
2017-03-23 18:12:46 +01:00 |
PKEuS
|
2f0db369f0
|
Refactorization: Avoid construction of empty strings by using emptyString
|
2017-03-01 10:50:50 +01:00 |
Matthias Krüger
|
6f1e7e897d
|
simplify if(tok && Token::{simple,}Match) to if(Token::{simple,}Match).
|
2017-02-06 15:37:12 +01:00 |
Matthias Krüger
|
01e5f14bf8
|
CheckClass::virtualDestructorError and a variation of CheckNullPointer::nullPointerError would print inconclusive,warning messages altough no --enable=warning was given. Fix.
|
2016-11-23 00:13:09 +01:00 |
PKEuS
|
02d8f691f8
|
Fixed false positive: Do not show useInitializationList message for enums
|
2016-11-22 12:09:30 +01:00 |
Harald Scheidl
|
0de47f709e
|
Fixed #7755 (false positive: member variable is not initialized in the constructor)
|
2016-10-26 10:39:53 +02:00 |
Dmitry-Me
|
d2e667ae7b
|
Put apostrophes consistent with other similar messages
|
2016-10-18 15:45:08 +03:00 |
Simon Martin
|
dc61b6342d
|
Ticket #7068: Treat "memset(&this->member, ..." as member initialization.
|
2016-10-01 13:46:58 +02:00 |
Daniel Marjamäki
|
4d22ada078
|
Fixed #5839 (False positive: Function can be const, if this is passed to functor)
|
2016-09-04 16:36:04 +02:00 |
Daniel Marjamäki
|
ce7bfba416
|
Refactoring CheckClass::checkConst. Use continue.
|
2016-09-04 16:06:54 +02:00 |
Daniel Marjamäki
|
54db79305b
|
Redo refactoring of CheckClass::checkConst.
|
2016-09-04 16:02:59 +02:00 |
Daniel Marjamäki
|
530a05e40e
|
Refactoring CheckClass::checkConst. Use continue.
|
2016-09-04 15:38:56 +02:00 |
Daniel Marjamäki
|
706877df2d
|
astyle formatting
[ci skip]
|
2016-08-24 12:43:45 +02:00 |
Roberto Martelloni
|
4c6f4f6708
|
CWE mapping of functionConst, functionStatic, initializerList, badBitmaskCheck, knownConditionTrueFalse, invalidTestForOverflow, unhandledExceptionSpecification, coutCerrMisusage,
invalidPrintfArgType_int
|
2016-08-23 16:48:36 +01:00 |
Roberto Martelloni
|
41dee04e90
|
CWE mapping of assignBoolToFloat, strncatUsage, sizeArgumentAsChar, terminateStrncpy, bufferNotZeroTerminated, negativeArraySize, noExplicitConstructor, virtualDestructor
|
2016-08-14 18:23:41 +01:00 |
Dmitry-Me
|
89e8f51a28
|
Explicit continue instead of init-set-check
|
2016-08-05 15:05:37 +03:00 |
Daniel Marjamäki
|
50352c8d69
|
Fixed #3552 (Don't warn about missing ctor for class inside union)
|
2016-05-25 19:05:16 +02:00 |
Daniel Marjamäki
|
99fc13ee70
|
Fixed #6968 (unusedPrivateFunction not correct, called by inner class)
|
2016-05-16 20:52:50 +02:00 |
Daniel Marjamäki
|
65998f1d7c
|
CheckClass: previous change introduced false positives when Token::function() is wrong. Avoid those false positives.
|
2016-05-16 10:55:22 +02:00 |
Daniel Marjamäki
|
bce15b1ade
|
CheckClass: refactored the code, use symboldatabase instead of name comparisons when possible, fixed a FN.
|
2016-05-16 09:36:26 +02:00 |
PKEuS
|
17ccb0fbe6
|
CheckClass::checkMemsetType(): Skip arrays of pointers (#7456)
|
2016-05-04 13:38:36 +02:00 |
Alexander Mai
|
0533d7bf9c
|
Run astyle + minor refactoring
|
2016-02-27 16:03:50 +01:00 |
Roberto Martelloni
|
d3645d874e
|
Mapped toomanyconfigs ,AssignmentAddressToInteger
,AssignmentIntegerToAddress ,CastIntegerToAddressAtReturn
,CastAddressToIntegerAtReturn ,assertWithSideEffect ,assignmentInAssert
,uselessAssignmentArg ,uselessAssignmentPtrArg
,comparisonOfFuncReturningBoolError
,comparisonOfTwoFuncsReturningBoolError ,comparisonOfBoolWithBoolError
,incrementboolean ,comparisonOfBoolWithInt ,compareBoolExpressionWithInt
,negativeIndex ,pointerOutOfBounds ,arrayIndexThenCheck
,possibleBufferAccessOutOfBounds ,argumentSize
,arrayIndexOutOfBoundsCond ,noConstructor ,copyCtorPointerCopying
,noCopyConstructor ,uninitMemberVar ,operatorEqVarError
,unusedPrivateFunction ,memsetClassFloat ,mallocOnClassWarning
,operatorEq ,thisSubtraction ,operatorEqRetRefThis ,operatorEqToSelf
,useInitializationList ,duplInheritedMember ,assignIfError
,comparisonError ,multiCondition ,mismatchingBitAnd
,oppositeInnerCondition ,incorrectLogicOperator ,redundantCondition
,moduloAlwaysTrueFalse to their CWEs ids.
|
2016-02-26 23:53:52 +00:00 |
PKEuS
|
5d9f275ff8
|
Fixed false positive uninitMemberVar with member function of template (#7205)
|
2016-01-30 20:18:13 +01:00 |
Daniel Marjamäki
|
5e10e680da
|
CWE: refactoring. use constants instead of magic numbers.
|
2016-01-25 20:01:48 +01:00 |
Roberto Martelloni
|
5ce69da02d
|
Mapped 26 errors to their CWEs ID.
|
2016-01-24 20:53:05 +00:00 |
Dmitry-Me
|
499e15d96a
|
Cleanup variable names, omit redundant actions
|
2016-01-11 13:04:52 +03:00 |
Lauri Nurmi
|
996c9244d8
|
Update copyright year to 2007-2016.
|
2016-01-01 15:34:45 +02:00 |
Dmitry-Me
|
7fdbd8f0ca
|
Use set instead of list
|
2015-12-25 16:19:27 +03:00 |
Dmitry-Me
|
458f0da197
|
Reduce variable scope, better name
|
2015-12-24 17:08:49 +03:00 |
PKEuS
|
940d569980
|
Refactorization: Removed redundant %any% patterns.
|
2015-12-24 14:40:48 +01:00 |
Alexander Mai
|
e69377d5a8
|
#7183 CheckClass::checkMemset() uint overflow. Plus some minor refactoring
|
2015-12-05 18:22:01 +01:00 |
PKEuS
|
308fd1ba50
|
Fixed false positive 'noCopyConstructor' for static member variable (#7198)
|
2015-12-04 18:26:49 +01:00 |
PKEuS
|
32e2fb2f78
|
Refactorization: Prefer Token::simpleMatch over Token::Match also for non-const patterns.
|
2015-12-03 13:04:55 +01:00 |
Alexander Mai
|
f762affea0
|
Small refactoring: replace NULL by nullptr, remove redundant static keyword, Tokenizer::setVarId() uses const variable 'notstart'
|
2015-11-30 22:13:49 +01:00 |