Daniel Marjamäki
c25e1963b1
Fixed #498 (Tokenizer: simplify 'goto')
2009-08-24 23:10:12 +02:00
Reijo Tomperi
c581753040
Fix ticket #613 (array members variables are not checked in constructor)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/613
Patch from micres
2009-08-23 22:54:41 +03:00
Daniel Marjamäki
522f4c18c8
astyle formatting
2009-08-23 17:17:57 +02:00
Daniel Marjamäki
9da2ecf4f4
Refactoring the unit testing. Wrote special tests for CheckMemoryLeakInFunction::findleak
2009-08-23 15:48:25 +02:00
Daniel Marjamäki
99938353b4
Merge commit 'd0k/master'
2009-08-23 12:45:49 +02:00
Slava Semushin
8cafaf2960
Fixed #603 (Tokenizer: Incorrect simplification of < >)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/603
2009-08-23 13:26:16 +07:00
Slava Semushin
e6120a5725
Fixed #581 (Wrong usage of div-function)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/581
2009-08-23 10:37:09 +07:00
Slava Semushin
703fd45f78
Tokenize: minimize createLinks() calls.
...
No functional change.
2009-08-23 10:36:34 +07:00
Benjamin Kramer
18696679e3
Token: inline some functions
2009-08-22 22:36:12 +02:00
Benjamin Kramer
0d6b6e840d
Improve performance by using bsearch(3) instead of a std::set
...
The function name list is already in memory so we can avoid copying it into a std::set
if we sort the list alphabetically. This way no binary search tree has to be allocated.
Before (best of 5 runs):
./testrunner > /dev/null 0,21s user 0,00s system 95% cpu 0,221 total
After (best of 5 runs):
./testrunner > /dev/null 0,20s user 0,00s system 95% cpu 0,210 total
2009-08-22 20:24:26 +02:00
Slava Semushin
7ac6162947
Token::createMutualLinks(): introduce and use.
...
No functional change.
2009-08-22 21:22:50 +07:00
Slava Semushin
368bacff9a
Tokenizer: propagate Token::eraseTokens().
...
No functional change.
2009-08-22 21:04:58 +07:00
Slava Semushin
282f9104e7
Tokenizer::simplifyTokenList(): call link() for just inserted tokens.
2009-08-22 20:41:26 +07:00
Slava Semushin
6a5afd6243
Refactoring: Use the MathLib::toString() to stringify a number.
...
No functional change.
2009-08-22 18:47:14 +07:00
Daniel Marjamäki
724d6bf53a
Fixed #507 (Preprocessor: Incorrect expanding of inner macros)
2009-08-22 13:03:52 +02:00
Slava Semushin
acc38a8bbf
Fixed #592 (Tokenizer: improve the tokenization of do .. while)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/592
2009-08-22 17:49:42 +07:00
Daniel Marjamäki
94c49bc34e
Fixed #608 (Tokenizer: simplifyKnownVariables doesn't handle 'while (--i)' correctly)
2009-08-22 10:23:55 +02:00
Slava Semushin
2664bcf650
Tokenizer::simplifyIfAddBraces: use Token::link() instead of loop.
...
No functional change.
2009-08-22 14:54:28 +07:00
Slava Semushin
cbeb45566b
Fixed #609 (Tokenizer: don't add {} after do-while();)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/609
2009-08-22 14:49:45 +07:00
Daniel Marjamäki
7b3fdec5cf
Refactoring: Use the MathLib::toString to stringify a number
2009-08-21 14:50:13 +02:00
Daniel Marjamäki
439ff8b144
Fixed #599 (False positive: null pointer dereference)
2009-08-21 12:42:40 +02:00
Daniel Marjamäki
88251f5ac0
astyle formatting
2009-08-21 11:11:21 +02:00
Reijo Tomperi
9d1907be66
Fix ticket #600 (Tokenizer: if(!(fclose(fd) == 0)) is simplified incorrectly)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/600
2009-08-20 22:37:05 +03:00
Reijo Tomperi
7d44ce7736
Fix ticket #598 (Preprocessor: Multiline comments add line change to wrong location)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/598
2009-08-20 00:27:47 +03:00
Daniel Marjamäki
8b46172bcf
Memory leaks: Use varid instead of varname
2009-08-19 19:42:07 +02:00
Daniel Marjamäki
85682ed429
Fixed #591 (False positive: Deallocating a deallocated pointer)
2009-08-18 20:49:08 +02:00
Daniel Marjamäki
2cdb0abb82
Refactoring: Use the Token::link instead of loop
2009-08-17 22:23:37 +02:00
Reijo Tomperi
40fc605e2b
Fix ticket #597 (Compile error with Visual C++)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/597
2009-08-17 22:24:17 +03:00
Kimmo Varis
ec40b4c628
Don't force debug builds in qmake project files.
...
When creating makefiles with qmake one needs to give the target in command
line. E.g.
$ qmake -config debug
or
$ qmake -config release
For Visual studio projects both targets are generated by just running the
qmake command without switches.
2009-08-17 18:12:53 +03:00
Kimmo Varis
d16d19e580
Add new header file to qmake project files.
2009-08-17 18:05:10 +03:00
Reijo Tomperi
8b4b618fc4
Use _str.length() == 1, instead of _str[1] == 0
2009-08-16 23:50:00 +03:00
Reijo Tomperi
36a8e8afba
Fix ticket #543 (Possible buffer overrun in Token::Match())
...
http://sourceforge.net/apps/trac/cppcheck/ticket/543
Get rid of string copying in Token::Match(), also improves speed a little.
8.0s -> 7.7s
2009-08-16 23:28:17 +03:00
Slava Semushin
74bbe945f6
Fixed #272 ("The scope of the variable XXX can be limited" not detected when variable is initilialized during declaration)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/272
2009-08-17 02:12:57 +07:00
Slava Semushin
32c8ba526b
MathLib(isInt): formatted and get rid of tabs.
...
No functional change.
2009-08-17 00:43:45 +07:00
Slava Semushin
8659c4828c
MathLib(isInt): use std::tolower().
...
No functional change.
2009-08-17 00:31:15 +07:00
Slava Semushin
a11089cb50
MathLib(isInt): use isxdigit().
...
No functional change.
2009-08-17 00:27:14 +07:00
Daniel Marjamäki
52856fcbeb
ettlmartin: improved the MathLib::IsInt
2009-08-16 18:45:26 +02:00
Slava Semushin
522f783ada
CheckMemoryLeak: try to speed up call_func().
...
Using std::set::find() instead of sequence of Match() calls.
2009-08-16 22:02:11 +07:00
Reijo Tomperi
fb85ee5356
Update version number to 1.35
2009-08-16 16:57:16 +03:00
Slava Semushin
4fa6c76c75
CheckAutoVariables(autoVariables): make code more readable.
...
- Reduce indentation
- Don't check bindent in many conditions
- Move inner if-s to outer condition
Should be no functional change.
2009-08-16 17:53:29 +07:00
Slava Semushin
aa4bb4d218
CheckAutoVariables: const modifier propagation.
...
No functional change.
2009-08-16 16:46:13 +07:00
Slava Semushin
41e2668138
CheckAutoVariables: don't save and search for local variables with varId 0.
2009-08-16 16:43:04 +07:00
Slava Semushin
fc5f4d366e
CheckAutoVariables: added braces.
...
No functional change.
2009-08-16 16:36:07 +07:00
Slava Semushin
743d5331ee
CheckAutoVariables(returnPointerToLocalArray): replace std::list to std::set
...
Use std::set and std::set::find() instead of std::list and
std::find(). First should be faster (runs in the logarithmic time) than
second (runs in linear time).
No functional change.
2009-08-16 16:31:44 +07:00
Slava Semushin
2dccf150ab
CheckAutoVariables: change type of vp_list member to std::set.
...
Change type of vda_list from std::list to std::set. It allows to us
use find() method instead of self-written loop which may be slow.
No functional change.
2009-08-16 16:16:35 +07:00
Slava Semushin
053e6f8b9a
CheckAutoVariables: change type of vd_list member to std::set.
...
Change type of vda_list from std::list to std::set. It allows to us
use find() method instead of self-written loop which may be slow.
No functional change.
2009-08-16 16:10:42 +07:00
Slava Semushin
ec81080d0b
CheckAutoVariables: change type of vda_list member to std::set.
...
Change type of vda_list from std::list to std::set. It allows to us
use find() method instead of self-written loop which may be slow.
No functional change.
2009-08-16 16:02:21 +07:00
Slava Semushin
475ef4213b
CheckAutoVariables: use varId instead of variable names.
...
This change similar to be89be8c30
but
for vd_list member.
2009-08-16 15:46:52 +07:00
Slava Semushin
be89be8c30
Fixed #590 (False positive: Invalid deallocation when variables have same name)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/590
2009-08-16 15:27:40 +07:00
Reijo Tomperi
f36f3bfae1
line change and encoding fixes
2009-08-15 22:39:57 +03:00
Slava Semushin
19e5fdb087
Fixed #588 (Preprocessor: Sort the configurations)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/588
2009-08-15 09:35:54 +07:00
danmar
dfa8a2e67c
Visual C++: Fixed testrunner compilation problems
2009-08-14 12:46:55 +02:00
danmar
e9f643f04c
Borland C++ Builder: Fixed compilation problems when compiling cppcheck
2009-08-14 12:28:41 +02:00
Reijo Tomperi
c8da301f83
fix ticket #586 (Preprocessor: Lines like "#error don't" can cause "no pair for character" errors)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/586
2009-08-14 00:22:51 +03:00
Daniel Marjamäki
51365c4b9d
mathlib: minor fix
2009-08-13 22:31:58 +02:00
danmar
3de825c290
Borland C++ Builder: Fixed compilation and testrunner problems
2009-08-13 22:13:52 +02:00
Reijo Tomperi
4f8a06ed0d
Initial work for class and member function/variable list in tokenizer.
2009-08-12 23:50:03 +03:00
Daniel Marjamäki
ad4ea01750
Fixed #583 (False positive: the nullpointer check doesn't handle goto properly)
2009-08-12 18:54:52 +02:00
Slava Semushin
6a7624054e
Fixed ticket #584 (Tokenizer: don't set varId for class declaration)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/584
2009-08-12 01:58:49 +07:00
Daniel Marjamäki
e7feac506c
Refactoring: updated the nullPointer message so it contains the name of the pointer
2009-08-11 17:18:01 +02:00
Daniel Marjamäki
ecdbcbce3d
Fixed #566 (False positive when assigning the return value of realloc(NULL,..) to a pointer variable holding a freed memory address)
2009-08-10 22:04:28 +02:00
Daniel Marjamäki
045b73c7ec
Fixed #582 (Preprocessor: Remove assembler code inside pragmas)
2009-08-10 20:07:55 +02:00
Reijo Tomperi
93604dd344
Fixed ticket #578 (missing virtual destructor not detected)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/578
2009-08-10 17:58:13 +03:00
Daniel Marjamäki
3331cb834f
Hoangtuansu: Fixed #537 (false positive::operator= should return something)
2009-08-09 19:57:48 +02:00
Gianluca Scacco
741073cc21
Style check
2009-08-09 15:44:01 +02:00
Gianluca Scacco
ab12b9923d
Invalid deallocation check done
2009-08-09 15:40:04 +02:00
Slava Semushin
c66103f7bc
Fixed ticket #574 (Tokenizer: not assign varId when variable first afer keyword and has long type)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/574
2009-08-09 15:41:31 +07:00
Slava Semushin
1fd2c0ff28
Fixed ticket #572 (Tokenizer: improve detection of arrays)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/572
2009-08-09 15:16:37 +07:00
Slava Semushin
5f3baba178
Fixed ticket #573 (False positive of set range check when we dereferencing iterator)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/573
2009-08-09 02:07:33 +07:00
Slava Semushin
eebb1671a5
checkbufferoverrun.cpp: get rid of Match() usage with varid 0.
2009-08-09 01:09:45 +07:00
Slava Semushin
0f96299d87
Fixed ticket #570 (Buffer overrun not detected when sprintf() format string greater then buffer size)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/570
2009-08-08 21:52:35 +07:00
Slava Semushin
92d4c086ce
Fixed ticket #571 (Buffer overrun for sprintf() not detected after first ')' symbol)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/571
2009-08-08 21:03:10 +07:00
Slava Semushin
50f7fa5828
Fixed ticket #565 (Tokenizer: simplify variable declaraion like 'int z = x >> 16')
...
http://sourceforge.net/apps/trac/cppcheck/ticket/565
2009-08-08 17:33:07 +07:00
Reijo Tomperi
e93179dd9a
Improve speed with files containing classes.
...
E.g. measured speed difference was 1m11.042s --> 0m45.005s with one large test file.
2009-08-08 00:49:37 +03:00
Daniel Marjamäki
a0a4008e17
Fixed #525 (false positive: vector range checking with <)
2009-08-07 16:23:28 +02:00
Reijo Tomperi
d719606201
Fixed ticket #564 (set variable id for "struct ABC **p")
...
http://sourceforge.net/apps/trac/cppcheck/ticket/564
2009-08-07 00:31:39 +03:00
Reijo Tomperi
80953633ee
Fix ticket #563 (set variable id for **p)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/563
2009-08-06 23:11:29 +03:00
Daniel Marjamäki
5087dc6b46
Bail out if variable id is 0. This should be reverted when #563 has been fixed
2009-08-06 21:48:22 +02:00
Reijo Tomperi
eb691857fd
Improve speed a lot for files that have long number lists like = { 0,1,2,3,4, etc. }
2009-08-05 23:02:40 +03:00
Daniel Marjamäki
ce8c5b0236
Fixed #555 (False positive: [CuTest.c:25]: (error) Memory leak: len)
2009-08-05 21:18:16 +02:00
Daniel Marjamäki
e1beb70f80
Fixed #558 (Tokenizer: Bad simplification of 'for(unsigned i = 0; i < 100; ++i)')
2009-08-05 20:15:48 +02:00
Daniel Marjamäki
1c59e4a51b
Fixed #528 (Tokenizer: Simplify: 'if(!(a->x=b()))')
2009-08-05 19:45:05 +02:00
Daniel Marjamäki
cb57bd6678
Listing error messages in XML format
2009-08-04 21:36:55 +02:00
Daniel Marjamäki
9e348ca739
Fixed #554 (resource leak false positive)
2009-08-04 21:34:14 +02:00
Daniel Marjamäki
706ba34a6d
Refactoring the unit testing
2009-08-04 21:32:14 +02:00
Reijo Tomperi
975e7778ab
Fix ticket #531 (false positive about missing virtual destructor)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/531
2009-08-04 22:23:22 +03:00
Reijo Tomperi
769119c725
Fix ticket #552 (False positive with --all when realloc is used with two variables.)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/552
2009-08-02 23:30:43 +03:00
Reijo Tomperi
10f6678cf9
TODO test case realloc5 added and "Checkmemoryleak: simplifycode result for" debug info added.
2009-08-02 22:23:47 +03:00
Reijo Tomperi
e0f416e52e
astyle fix
2009-08-02 22:11:17 +03:00
Slava Semushin
be82d09003
src/checkbufferoverrun.cpp: fixed regression.
2009-08-02 20:34:28 +07:00
Slava Semushin
13532cbff7
src/checkbufferoverrun.cpp: don't call Token::Match() for variables with varId 0.
2009-08-02 20:01:59 +07:00
Slava Semushin
822fb93cda
Improved "index out of bounds" check.
...
Corrected 342acaaaf2
commit.
2009-08-02 19:29:45 +07:00
Slava Semushin
35e35b38a7
MathLib: introduce and use calculate() method.
...
No functional change.
2009-08-02 19:29:30 +07:00
Slava Semushin
98e8e69c8e
src/tokenize.cpp: don't call std::string.c_str() for Token::str() argument.
...
In 4286fdbabb
commit I introduce
Token::str() method with std::string argument and now we may get rid
of useless std::string.c_str() calls.
No functional change.
2009-08-02 15:54:46 +07:00
Slava Semushin
ed86eda07d
Fixed ticket #549 (Tokenizer: improve calculation simplification)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/549
2009-08-02 15:45:33 +07:00
Slava Semushin
342acaaaf2
Fixed #547 (index out of bounds not detected when addition used as array index)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/547
2009-08-02 14:59:02 +07:00
Slava Semushin
0445edf6fe
Fixed #542 (Tokenizer: allow numbers in templates parameters)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/542
2009-08-01 23:17:35 +07:00
Slava Semushin
3158e32b7c
src/checkstl.cpp(iterators): some corrections.
...
Corrections for my changes in 12ca70fe5a
and 347802f819
commits.
2009-08-01 21:37:24 +07:00
Slava Semushin
0e2273833e
Fixed ticket #539 (Tokenizer: don't replace constants variables with varid 0)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/539
2009-08-01 20:57:54 +07:00
Daniel Marjamäki
b5d172b6e9
preprocessor: fixed problem in Preprocessor::expandMacros when macro argument is for example 'unsigned long'
2009-08-01 14:55:45 +02:00