Commit Graph

5776 Commits

Author SHA1 Message Date
Pete Johns 78795dc3ac Fix false positive: Misused Scope Object does not pick constructors of local class declarations.
It does pick up if there is an unused construction within the function, though.
2010-10-02 22:59:04 +10:00
Daniel Marjamäki e4c3b390cc Fixed #2069 (cppcheck fails to scan OpenBSDs ftp source code) 2010-10-02 13:28:44 +02:00
Pete Johns 365b1bed1a Fixed false positive: checkMisusedScopedObject no longer errors on calls to function objects. 2010-10-02 21:25:16 +10:00
Pete Johns 9a9302cba1 Prevent Tokenizer::simplifyCalculations() from removing parantheses from calls to Functors. 2010-10-02 21:19:05 +10:00
Daniel Marjamäki a58ba811a6 Unit Testing: added missing TEST_CASE 2010-10-02 12:44:38 +02:00
Pete Johns b72b699b76 Fixed false-positive: Object is referenced on construction
struct Foo {
        void bar() {
        }
    };

    void fn() {
        Foo().bar(); // This caused a false-positive
    }
2010-10-02 20:26:29 +10:00
Pete Johns 3f72d3a877 Check misused scope object does not pick local class method.
Also fixed mistyped withinFuntion ->withinFunction.
2010-10-02 20:12:52 +10:00
Pete Johns 0017655f55 Added test for functor false-positive [passing]
Also removed typedef's following danmar's review and renamed isClassresults -> isClassResults to make more clear.
2010-10-02 18:45:24 +10:00
Daniel Marjamäki 19d67757b1 Visual Studio: updated test/test.vcproj 2010-10-02 09:43:28 +02:00
Daniel Marjamäki bdb3c06c36 Visual Studio: Fixed compiler error. It seems visual studio 2008 doesn't like 'not'. 2010-10-02 09:42:31 +02:00
Pete Johns 6e0ef3eda2 Fixed #1132 (Detection of misused scope objects in functions)
Emits error in the form:

    [useless_lock.cpp:18]: (error) instance of "Lock" object destroyed immediately

    ...if an instance of a class or struct is unnamed and therefore destroyed
    straight after creation.

    Only checks for misused scope objects within functions.

    Optimised isIdentifierObjectType() by memoizing.
2010-10-02 14:22:26 +10:00
Pete Johns 50c2fa9ab0 Revert "Fixed #1132 (Detection of misused scope objects)"
This reverts commit c6acdccfa0.
2010-10-01 20:52:16 +10:00
Pete Johns c6acdccfa0 Fixed #1132 (Detection of misused scope objects)
Emits error in the form:

    [useless_lock.cpp:18]: (error) instance of "Lock" object destroyed immediately

...if an instance of a class or struct is unnamed and therefore destroyed
straight after creation.

Removed "internal error" from token.cpp, since in this case varid would be NULL.
2010-10-01 20:30:21 +10:00
Daniel Marjamäki 6eeed00888 Fixed #2067 (Template methods do not 'use' private ones) 2010-09-30 21:22:49 +02:00
Daniel Marjamäki 415cbc63c3 Fixed #2066 (false positive: uninitialized variable when initializing through function pointer) 2010-09-27 19:26:09 +02:00
Daniel Marjamäki 80069f016e Fixed #2065 (false positive: memory leak) 2010-09-27 17:53:10 +02:00
Pete Johns 6a52538a9a Fixed #1949: assert() hides memory leaks
Added separate unit-test (trac1949), initially broken to highlight the error and added "assert" to call_func_white_list.

Left TestMemleakInFunction::call_func() as is, as this wouldn't highlight the actual problem.
2010-09-27 20:25:34 +10:00
Daniel Marjamäki cdecbe29d0 Optimisation: Made Tokenizer::simplifyInitVar faster 2010-09-26 15:54:41 +02:00
Pete Johns fd7ba05fa6 Ignore gcov and doxygen ephemera. 2010-09-26 19:17:47 +10:00
Pete Johns a801d3162e Added Doxygen commenting, per kimmov's request.
Of course test/ is not covered currently by the settings in doxyfile.
2010-09-26 19:15:14 +10:00
Kimmo Varis 72759de7a9 GUI: Fix path separators in project file.
Qt 4.7 qmake warns about using backslash in paths.
2010-09-26 10:13:21 +03:00
Pete Johns afc6d4507d Removed static std::string.
which_test() doesn't have to calculate anything, could be inlined.
2010-09-26 16:52:30 +10:00
Pete Johns 5dc4759598 Replaced TODO in numeric test with two passing tests.
Just getting to grips with how the tokenizer behaves.
2010-09-26 16:39:19 +10:00
Pete Johns acad87c3e3 Improved test coverage.
Refactored to extract givenACodeSampleToTokenize, reducing LOC.
2010-09-26 13:31:36 +10:00
Pete Johns 97a68bdcee Added `check` target.
Runs the test as per `make test`, but with less verbosity.

    -g GCC-style errors
    -q quiet tests
2010-09-26 13:29:23 +10:00
Pete Johns 10396911ca Renamed RedirectInputOutput -> RedirectOutputError
This class does not redirect input.
2010-09-26 13:22:11 +10:00
Pete Johns 77089293c6 Extracted Error and Output redirection.
Making reuse possible.
2010-09-26 13:19:30 +10:00
Daniel Marjamäki ff7a99ad37 Revert "Optimisation: small speedups in the Tokenizer::simplifyTokenList handling"
This reverts commit 056037feed.
2010-09-24 22:18:51 +02:00
Daniel Marjamäki 056037feed Optimisation: small speedups in the Tokenizer::simplifyTokenList handling 2010-09-24 22:14:18 +02:00
Daniel Marjamäki 86e517c5d3 Fixed #1951 (Preprocessor: Compound macro statements not handled correctly) 2010-09-24 21:38:11 +02:00
Daniel Marjamäki 4c98a7e67b Optimisation: Removed unused and slow code. The code was added to fix #1225 but it is now redundant. 2010-09-24 20:56:21 +02:00
Daniel Marjamäki 8950beac37 Optimisation to make the CheckUninitVar::parse slightly faster 2010-09-23 21:40:08 +02:00
Pete Johns d727fa858c dmake can now be made from ./Makefile
Ignore this build artefact as well as the one under ./tools, since that can be built too.
2010-09-23 18:49:12 +10:00
Reijo Tomperi 8a7989c824 Makefile improvements related to clean, dmake and man targets. 2010-09-22 21:25:27 +03:00
Daniel Marjamäki 3f79faac2a Fixed #2059 (cppcheck gives wrong path in error description) 2010-09-22 19:52:14 +02:00
Daniel Marjamäki 7e954ebb57 Optimisation: optimised Token::Match 2010-09-20 20:15:07 +02:00
Kimmo Varis bc4c8e6e94 Delete unused VS lib-projects.
Those projects are just remainder from tries to create a real library
from the lib code.
2010-09-20 21:09:10 +03:00
Kimmo Varis ee3a8f8661 VS2010: Remove lib-project from the solution.
The lib-project is not really used for anything. It is just remainder
from tries to create real library from lib code.
2010-09-20 21:06:32 +03:00
Daniel Marjamäki 21bf58f1ec Optimisation: small optimisation of CheckClass::privateFunctions 2010-09-20 19:43:03 +02:00
Kimmo Varis d0acc16506 Update VS2010 solution/project files. 2010-09-20 18:09:17 +03:00
Pete Johns 46b3a0f532 Autogenerated Makefile updated. 2010-09-20 21:21:33 +10:00
Pete Johns 4934cfa622 Wrapped variables in conditions
This allows CXX and CXXFLAGS to be overridden without patching. Added PREFIX for MacPorts compatibility, allowing staging to $(DESTDIR)$(PREFIX)/bin, leaving original behaviour unchanged.

Exit early if run in incorrect directory or if Makefile cannot be written.
2010-09-20 21:16:09 +10:00
Pete Johns 4ca795056f Fixed syntax error
"./runastyle: line 4: --suffix=none: command not found"
2010-09-20 21:16:09 +10:00
Daniel Marjamäki 78e13f098e Refactorings: Optimised the Token::multiCompare function 2010-09-19 15:14:13 +02:00
Daniel Marjamäki 78bd66cd5c Fixed #2056 (False positive: Resource leak) 2010-09-19 12:16:29 +02:00
Daniel Marjamäki a6ff3681bb Fixed #1802 (Preprocessor: macros are expanded wrong) 2010-09-18 22:20:01 +02:00
Daniel Marjamäki e2ef26cb2e STL: added TODO test case 2010-09-18 20:08:34 +02:00
Daniel Marjamäki a7cf68b9ef Check Class: Removed the 'operator= should not return a const reference' 2010-09-18 20:05:34 +02:00
Daniel Marjamäki 6ba5385878 CheckClass: the 'virtual destructor' checking is currently inactive 2010-09-18 19:03:15 +02:00
Daniel Marjamäki 395f10aa6d Fixed #2053 (false positive on list erase) 2010-09-18 16:46:38 +02:00