718 Commits

Author SHA1 Message Date
Maksim Derbasov
a3ed9116e5 Clarify error msg for hidingInheritedPublic (#2474) 2020-01-05 09:32:39 +01:00
orbitcowboy
1e0f8ae9b4 Running astyle [ci skip]. 2020-01-04 00:06:27 +01:00
Maksim Derbasov
fc5fd3c40c Check that virtual function non-narrow access modifier in derived class (#2229)
* Check that virtual function has not narrowed access in derived class

* motivation info added

* error reporting moved to func

* added suppression for CI
2020-01-01 16:09:43 +01:00
Dmitry-Me
1a2b770bfd Break the loop once a match is found 2019-12-31 18:32:45 +03:00
Daniel Marjamäki
eaa5bfcadd Remove 'unsafeClassDivZero' warning. The software verification will cover this better. 2019-11-10 16:49:34 +01:00
Dmitry-Me
f2cf71f6e9 Fix typo 2019-11-01 18:39:53 +03:00
Daniel Marjamäki
c04e25e936 Revert "#9391 Detecting uninited member variables with default ctor (#2249)"
This reverts commit 08bc369296f838adddbeceb3f3eb4b24f987ca96.
2019-10-09 08:17:47 +02:00
blacktea
08bc369296 #9391 Detecting uninited member variables with default ctor (#2249) 2019-10-08 19:33:07 +02:00
Daniel Marjamäki
7f64faae99 Virtual Destructors: Base class must have virtual destructor no matter if derived class has a destructor or not. There is UB according to paragraph 3 in [expr.delete]. 2019-09-27 09:55:56 +02:00
Oliver Stöneberg
de9f489b08 use range loops / constness (#2181)
* use range loops / constness

* platform.cpp: avoid shadowed variable
2019-09-19 20:29:33 +02:00
Ken-Patrick
d918f76a0d Remove useless check introduced by 717aa826d8c98dab533b7c2166eb412b1422b14d (#2130)
I was confused by the naming in the forum entry (this/that). This would
be a pointer, there's no point checking for it there.
2019-09-01 09:53:45 +02:00
Ken-Patrick
717aa826d8 Fix false positive in initializationListUsage (#2128)
https://sourceforge.net/p/cppcheck/discussion/general/thread/d5b690ef19/
Check that we warn only about using the initializer list when we assign
the object being constructed.
2019-08-31 12:27:07 +02:00
Daniel Marjamäki
d4549217d0 Renamed safeClassRefMember => unsafeClassRefMember 2019-08-13 20:58:31 +02:00
Daniel Marjamäki
ed7edc6d2a Improve warning message 2019-08-13 20:42:25 +02:00
Daniel Marjamäki
41f8c1b281 Fixed #9271 (Safe classes: Class that store references) 2019-08-13 20:40:48 +02:00
amai2012
f02636e995 Refactoring: Convert enums to enum classes 2019-08-02 21:14:29 +02:00
Rikard Falkeborn
f6726b76ae Fix 9215 (add tilde for missing destructor override warning) (#2057) 2019-08-01 10:43:45 +02:00
Daniel Marjamäki
4fb6c27276 Modernize: Use enum class 2019-07-23 14:29:02 +02:00
Daniel Marjamäki
2afd5f5dd0 Modernize: Use enum class 2019-07-17 10:39:06 +02:00
Daniel Marjamäki
3637c486c4 Replace 'unsigned' with 'nonneg' in checkclass 2019-07-16 09:03:45 +02:00
IOBYTE
9700490e51 fix lib/checkclass.cpp:51:12: warning: enumeration value ‘eLambda’ not handled in switch [-Wswitch] (#1978) 2019-07-11 08:25:25 +02:00
Rikard Falkeborn
839fcddd8a Fix #6115 (Add support to realloc to cfg files) (#1953)
* Allow to configure realloc like functions

* memleakonrealloc: Bring back tests.

The old memleak checker was removed, and the tests for it was removed in
commit 9765a2dfab4f59102507fe759ef2184b5ed41c9f. This also removed the
tests for memleakOnRealloc. Bring back those tests, somewhat modified
since the checker no longer checks for memory leaks.

* Add realloc to mem leak check

* Add tests of realloc buffer size

* Configure realloc functions

* Add test of freopen

* Allow to configure which element is realloc argument

* Fix wrong close in test

cppcheck now warns for this

* Update manual

* Update docs

* Rename alloc/dalloc/realloc functions

Naming the member function realloc caused problems on appveyor. Rename
the alloc and dealloc functions as well for consistency.

* Change comparisson order

* Remove variable and use function call directly

* Create temporary variable to simplify

* Throw mismatchError on mismatching allocation/reallocation

* Refactor to separate function

* Fix potential nullptr dereference

As pointed out by cppcheck.
2019-07-05 12:44:52 +02:00
shaneasd
7e54f989f9 Update symbol database such that the override keyword implies that the function is also virtual (#1907)
* Update symbol database such that the override keyword implies that the function is also virtual

* Add test case for implicit override

* change isVirtual to hasVirtualSpecifier

* fix method documentation for getVirtualFunctionCalls and getFirstVirtualFunctionCallStack

* Fix isImplicitlyVirtual to consider the override keyword and document logic

* Fix getFirstVirtualFunctionCallStack and getVirtualFunctionCalls to use isImplicitlyVirtual instead of isVirtual so new test case passes
2019-07-04 12:32:32 +02:00
Daniel Marjamäki
c98ceb6e14 Tweak bailout so it's only used in unused template classes 2019-06-20 14:00:44 +02:00
Daniel Marjamäki
cf79830afd Revert "Remove bailout. It hides lots of warnings for real code to avoid FP in unused templates."
This reverts commit 2a4be5ae1c466376351b82fcfeadb4b79c877575.

When I look at daca@home now there are still lots of false negatives. So this bailout did not cause as much false negatives as I thought.
2019-06-19 22:29:00 +02:00
Daniel Marjamäki
2a4be5ae1c Remove bailout. It hides lots of warnings for real code to avoid FP in unused templates. 2019-06-16 19:01:45 +02:00
Daniel Marjamäki
29e5992e51 Fixed #9045 (FP operatorEqRetRefThis - recent regression) 2019-05-20 21:30:20 +02:00
Paul Fultz II
cf3515ee61 Fix issue 7372: False positive uninitMemberVar - on template specialization
This fixes the issue by skipping diagnostics when the symbols are incomplete in the constructor.
2019-05-17 20:24:41 +02:00
Daniel Marjamäki
2513c1499b Library: Added <smart-pointer> element 2019-04-24 13:06:58 +02:00
Nicodemes
272760f9ca Fix explicit constructor with default arguments check bug
Before this fix, the code:
```
class A {
    A(int, int x=3){
        x;
    }
};
```
Was considered OK.
But explicit keyword is still needed

I'm still new to open-source contributions, so I will gladly take advice.
2019-04-23 10:46:22 +02:00
Daniel Marjamäki
761f18c75c Fixed #8988 (False positive: using memset on struct) 2019-04-01 19:32:03 +02:00
Daniel Marjamäki
ad37664e86 Changed severities 2019-03-06 19:00:58 +01:00
Daniel Marjamäki
bd7790fd8c Update copyright year 2019-02-09 07:24:06 +01:00
Daniel Marjamäki
14a312e310 useInitializationList: Skip warning when rhs is a multi line lambda. For readability it might be better to have assignments in constructor in this case. 2019-02-05 19:53:10 +01:00
Daniel Marjamäki
4457faa26b Fixed #8850 (Array in-class initialization for private member considered uninitialized) 2019-02-02 18:34:41 +01:00
Daniel Marjamäki
9d8f798aca Fixed #8951 (false postive: (style) The class 'x' does not have a constructor although it has private member variables.) 2019-02-02 18:25:26 +01:00
Lauri Nurmi
3bbd9fc9a4 Replace "virtual method" with "virtual function" in messages.
The term "method" is not really a part of C++ terminology.
2019-01-15 06:22:14 +01:00
Lauri Nurmi
f267900257 Fix spelling of "overridden" in function names.
One 'd' was missing.
2019-01-15 06:22:14 +01:00
Daniel Marjamäki
43035ff186 Remove inline suppression. The Cppcheck warning was a true positive. 2019-01-13 08:42:48 +01:00
Daniel Marjamäki
e6edd74099 Temporarily suppress Cppcheck false positives 2019-01-12 19:11:44 +01:00
Daniel Marjamäki
8509159d1a Uninitialized Member variable: Fixed FP when delegate constructor is used 2019-01-10 20:13:37 +01:00
Daniel Marjamäki
e4525d56a0 Fixed #8111 (performance warning - member variable at constructor) 2019-01-07 21:26:58 +01:00
Daniel Marjamäki
7ef8f60b07 Fixed #8817 (Change wording in performance/functionStatic) 2018-12-03 18:30:54 +01:00
Daniel Marjamäki
2b09354b05 Refactoring; use visitAstNodes 2018-11-23 20:33:31 +01:00
rikardfalkeborn
a3e717bea9 Use functions instead of comparing with enum (#1471)
* Use isComparisonOp() instead of enum

* Use isAssignmentOp() instead of enum
2018-11-09 06:30:41 +01:00
IOBYTE
c966f31183 Fixed #8835 (friend class and non-empty constructor: Uninitialized members not reported) (#1466) 2018-11-06 06:44:08 +01:00
IOBYTE
2275f05f65 Fixed #8833 (false negative: No 'return' statement in non-void function causes undefined behavior.) (#1463) 2018-11-05 06:55:30 +01:00
Daniel Marjamäki
a31db92918 Fixed #8669 (operator>> causes wrong style message) 2018-10-03 13:00:11 +02:00
Daniel Marjamäki
de621eab99 Refactoring; use range for loop 2018-10-03 12:54:59 +02:00
Daniel Marjamäki
738fb1b23a Disabled CheckClass::checkCopyCtorAndEqOperator because of FP (#8388) 2018-09-08 09:14:02 +02:00