Commit Graph

12381 Commits

Author SHA1 Message Date
Daniel Marjamäki 6c8558c112 CheckBufferOverrun: Removed old for-loop handling. This is handled through ValueFlow from now on. 2014-06-27 06:46:42 +02:00
Alexander Mai b6a40fceb7 Fix some compiler warnings 2014-06-26 20:34:07 +02:00
Daniel Marjamäki 036b2f8ccf CheckBufferOverrun: Added bufferOverrun2 that is based on ValueFlow/SymbolDatabase/Ast from the start. Replaced some old checking. 2014-06-26 17:36:20 +02:00
Daniel Marjamäki 72992c7973 AST: fixed ast for '++i;' 2014-06-26 17:31:57 +02:00
orbitcowboy ff9a39d1f6 avr.cfg and posix.cfg: Added support for more functions. 2014-06-26 16:22:49 +02:00
PKEuS 7ea7ee0005 Store Token::_originalName on heap, since it is only used for a small amount of Tokens (reduce memory usage of TokenList by ~12% (x64)) 2014-06-26 11:51:02 +02:00
PKEuS ec1bd420a7 Refactorizations optimizing std::string usage:
1) Added global static const std::string emptyString; object:
-> Replaces some static variables in functions which might be not threadsafe
-> Avoids constructor call (std::string::string(""))
-> Even functions that return an empty string in some branches can return by reference now.
Added to config.h to ensure that it is available everywhere

2) Added overloads for TestFixture::assertEquals for the most common use cases:
-> Moves conversion from const char[] to std::string into a function, reducing code duplication in binary.
2014-06-26 11:51:02 +02:00
PKEuS feefa4c626 Speedup checking large amounts of arrays (#5615) by avoiding Token::Match calls in CheckBufferOverrun::checkScope(2).
-> Decreased entire checking time on a subset of the attached file by 66% (MSVC12, x64, non-matchcompiled)
2014-06-26 11:51:02 +02:00
Jay Sigbrandt e7210521ac Many platforms don't support backtraces. Fix compile for Solaris platform.
This change was tested with Solaris 10 on X86 and SPARC.

More information on Unix Backtrace Support
 - http://www.gnu.org/software/libc/manual/html_node/Backtraces.html

It is not supported on the following platforms:
 - https://www.gnu.org/software/gnulib/manual/html_node/execinfo_002eh.html

        Mac OS X 10.3,
        FreeBSD 6.0,
        NetBSD 5.0,
        OpenBSD 3.8,
        Minix 3.1.8,
        AIX 5.1,
        HP-UX 11,
        IRIX 6.5,
        OSF/1 5.1,
        Solaris 10,
        Cygwin,
        mingw,
        MSVC 9,
        Interix 3.5,
        BeOS.
2014-06-26 11:41:16 +02:00
orbitcowboy 0b39fedd45 avr.cfg: Added support for more functions. 2014-06-26 11:35:28 +02:00
PKEuS e13de2681e SymbolDatabase: 'const' can't be the name of a variable - fix use after free #5882 2014-06-26 09:19:57 +02:00
PKEuS e80104327a AST: Fixed detection of operator new/delete - don't hang when C code is checked as C++ (#5910) 2014-06-26 09:19:57 +02:00
Daniel Marjamäki 5fc3e37842 Merge pull request #347 from toralf/timer
Timer
2014-06-26 05:45:08 +02:00
Toralf Förster c1d8d1b26a tools/times.sh: exit if prereq were not met
Signed-off-by: Toralf Förster <toralf.foerster@gmx.de>
2014-06-25 22:55:51 +02:00
Toralf Förster 4b135b935d tools/times.sh: use always long-opts
Signed-off-by: Toralf Förster <toralf.foerster@gmx.de>
2014-06-25 22:49:47 +02:00
Toralf Förster fa18adea6f tools/times.sh: prefer a loop over repeating the same command
Signed-off-by: Toralf Förster <toralf.foerster@gmx.de>
2014-06-25 22:48:56 +02:00
Toralf Förster da017d6888 tools/times.sh: adapt comment to the actual loops
left over from #ea9f0718

Signed-off-by: Toralf Förster <toralf.foerster@gmx.de>
2014-06-25 22:46:31 +02:00
PKEuS b20f87faf2 Optimized Tokenizer::simplifyPlatformTypes() once more: Another 3% improvement on Windows.
-> All Token::Match strings are uppercase, so check Token::isUpperCaseName() to avoid comparisons with very slow long Token::Match strings (idea from amai)
Removed duplicate Token::Match call in symboldatabase.cpp
2014-06-25 20:42:59 +02:00
PKEuS 360fd4a565 Speedup Tokenizer::simplifyMathFunctions() and Tokenizer::simplifyPlatformTypes()
-> Speedup on entire checking time (TortoiseSVN code) by 3% (MSVC12, x64, not matchcompiled). Probably only measurable when checking code with Windows platform.
2014-06-25 17:00:59 +02:00
Daniel Marjamäki 5af96c2dd8 Fixed #5947 (valueFlowForward: forward conditions not handled properly) 2014-06-25 16:00:56 +02:00
orbitcowboy d19b6f181d Extended std.cfg, posix.cfg and avr.cfg 2014-06-25 15:09:03 +02:00
orbitcowboy c7310c0ab0 std.cfg: Added support for more functions. 2014-06-25 14:27:01 +02:00
orbitcowboy 95c49ec5dc Extended std.cfg about more missing functions. Moved POSIX functions to posix.cfg. Extended posix.cfg about more memory allocating functions. 2014-06-25 12:00:24 +02:00
Daniel Marjamäki 0023dec567 runastyle: don't strip trailing spaces in cfg files. After a 'runastyle;git commit;git push', I get changes if I run runastyle again.
[ci skip]
2014-06-25 06:20:04 +02:00
Daniel Marjamäki c77786a745 valueFlowAfterCondition: wrong analysis for floats 2014-06-25 06:17:44 +02:00
PKEuS ac4e727da7 Removed redundant code (replaced by libaries, should fix #5934). 2014-06-24 21:57:19 +02:00
PKEuS 3a89e5d65f Fixed cppcheck warnings introduced by previous commit 2014-06-24 19:51:47 +02:00
Daniel Marjamäki 54aede9086 Fixed #5941 (ValueFlow: Wrong value in subfunction under ?) 2014-06-24 19:30:46 +02:00
PKEuS 1b5d127373 Cache results for TokenList::isC() and TokenList::isCPP() to avoid redundant calls to Path::isCPP()/isC(), which perform slow string operations (conversion to lowercase, substring, comparisons)
-> Speedup of 2% on self-checking cppcheck-core (MSVC12, x64, not matchcompiled)
2014-06-24 17:42:39 +02:00
orbitcowboy 731180b7dd std.cfg: Added support for qsort and improved stro* functions. 2014-06-24 14:16:54 +02:00
Daniel Marjamäki 933832095d Merge pull request #345 from toralf/html
cppcheck-htmlreport: print the cppcheck version in every footer
2014-06-24 07:11:59 +02:00
Toralf Förster ee10def962 Merge branch 'html' of https://github.com/toralf/cppcheck into html 2014-06-23 19:14:28 +02:00
Toralf Förster 91fa452020 cppcheck-htmlreport: print the cppcheck version in every footer
missed in 2d4bae0

Signed-off-by: Toralf Förster <toralf.foerster@gmx.de>
2014-06-23 19:13:17 +02:00
Toralf Förster 824a1fbd5b cppcheck-htmlreport: print the cppcheck version in every footer
missed in 2d4bae0

Signed-off-by: Toralf Förster <toralf.foerster@gmx.de>
2014-06-23 19:07:58 +02:00
PKEuS 2d54bace1b Improved performance of CheckBufferOverrun::checkScope() (#5944):
-> Speedup by 40% (MSVC12, x64, not matchcompiled) on the file attached to the ticket
2014-06-23 19:06:59 +02:00
Daniel Marjamäki 1ae6531c4c Fixed #5923 (false positive: (error) Resource leak: fp (static file pointer)) 2014-06-23 16:05:28 +02:00
orbitcowboy 0a17473962 std.cfg: Added support for bsearch. 2014-06-23 14:43:56 +02:00
orbitcowboy f90445e947 Extended std.cfg and avr.cfg about more functions. 2014-06-23 14:15:47 +02:00
orbitcowboy f57e875351 Astyle run; Extended std.cfg and avr.cfg about a few more functions. 2014-06-23 11:59:14 +02:00
Daniel Marjamäki ae81b09b58 Refactoring: Move isScopeNoReturn implementation to library and reuse it both in ValueFlow and Tokenizer 2014-06-22 19:13:15 +02:00
Daniel Marjamäki c19fc08a68 Merge pull request #344 from matthiaskrgr/travis_O
travis: change build optimization level back to -O2 (from -O3) as discussed
2014-06-22 19:10:52 +02:00
Matthias Krüger b4630e03ab travis: change build optimization level back to -O2 (from -O3) as discussed in
59077b06f9
2014-06-22 13:56:06 +02:00
Daniel Marjamäki f78cbda2db Refactoring: Removed CheckNullPointer::nullPointerByCheckAndDeRef and implemented needed analysis in ValueFlow instead. 2014-06-22 10:02:14 +02:00
XhmikosR 8d796519d9 Update .gitignore.
Remove accidentally added file.

[ci skip]
2014-06-21 19:56:26 +03:00
XhmikosR 88f8349a45 Clean up .gitignore and remove the currently unneeded .gitattributes file.
[ci skip]
2014-06-21 19:47:59 +03:00
Daniel Marjamäki 3e8cf81dbf htdocs: removed files, they have been moved to the repo cppcheck-htdocs 2014-06-21 18:00:32 +02:00
Daniel Marjamäki 717b9f970f htdocs: change link to trac 2014-06-21 17:29:00 +02:00
Martin Ettl be51637c1c avr.cfg: Added support for some stdio.h macros. 2014-06-20 09:49:06 +02:00
Daniel Marjamäki ef81bc363a ValueFlow: analysis in condition. 2014-06-19 17:29:41 +02:00
Daniel Marjamäki dec251ac44 ValueFlow: Refactoring. Use utility function isVariableChanged. 2014-06-19 05:41:19 +02:00