9112 Commits

Author SHA1 Message Date
Thomas Jarosch
f4227967ce Simplify token string access
"internal" check reported:
[lib/tokenize.cpp:6671]: (style) Call to 'Token::tokAt()' followed by 'Token::str()' can be simplified.
2013-01-15 20:37:02 +01:00
Thomas Jarosch
5c8b05ce94 Use Token::simpleMatch() for simple pattern
"internal" check reported:
[lib/symboldatabase.cpp:945]: (warning) Found simple pattern inside Token::Match() call: "> ("
2013-01-15 20:34:11 +01:00
Daniel Marjamäki
2fa35a6f8d Fixed #4429 (unused functions: handle function declarations better) 2013-01-15 17:00:28 +01:00
Thomas Jarosch
9f9c654621 MC: Implement verify mode for compiled Token::findmatch patterns 2013-01-14 11:18:33 +01:00
Thomas Jarosch
63e18d6b1c MC: Split _replaceTokenFindMatch() into two small functions 2013-01-14 11:06:59 +01:00
Thomas Jarosch
017783a77e MC: Save one indentation level 2013-01-14 11:06:55 +01:00
Thomas Jarosch
06a7d301e2 MC: Switch to assertEqual function from python's unittest 2013-01-14 11:06:40 +01:00
Thomas Jarosch
3bb8237cdc MC: Turn MatchCompiler tests into python unit test 2013-01-14 11:06:33 +01:00
Daniel Marjamäki
d46789ee4a varFuncNullUB: fixed false positive when non-variadic argument is NULL (#4482) 2013-01-14 06:44:52 +01:00
Erik Lax
723d95597b Fixed #4481 (Simplify %str% [ %num% ]) 2013-01-13 20:52:38 +01:00
Daniel Marjamäki
f0ce26a2aa Preprocessor: Let the Tokenizer handle NULL 2013-01-13 15:01:31 +01:00
Daniel Marjamäki
dc0ecb1082 ThreadExecutor: include sys/select.h for fd_set 2013-01-13 13:21:46 +01:00
Daniel Marjamäki
2e56928834 Fixed #4482 (add test for UB due to usage of NULL in variadic functions) 2013-01-13 12:02:10 +01:00
Erik Lax
b538c50856 Fixed #4484 (1.58: new crash for linux kernel code) 2013-01-13 07:57:46 +01:00
PKEuS
57d67c5883 Merge branch 'master' of github.com:danmar/cppcheck 2013-01-12 17:51:00 +01:00
PKEuS
25e07c2466 Updated copyright year in about dialog 2013-01-12 17:50:09 +01:00
PKEuS
c62233643a Set version to 1.59 dev 2013-01-12 17:49:09 +01:00
Daniel Marjamäki
2666ff0be7 htdocs: updated download link to windows installer 2013-01-12 17:35:45 +01:00
Daniel Marjamäki
0e82ca764a Makefile: restore to debug mode 2013-01-12 15:40:59 +01:00
Thomas Jarosch
c0044122f4 Add self test for _replaceTokenFindMatch 2013-01-12 15:28:38 +01:00
Thomas Jarosch
ff9e864a07 Add self test for replaceTokenMatch 2013-01-12 15:28:38 +01:00
Thomas Jarosch
a7377f180a Quote output of _assertEquals()
It's easier to detect trailing spaces this way.
2013-01-12 15:28:38 +01:00
Thomas Jarosch
4038d4b562 Place main code into own function 2013-01-12 15:28:38 +01:00
Daniel Marjamäki
75bb4a96cb 1.58: Updated Makefile for release 1.58 2013-01-12 14:51:49 +01:00
Daniel Marjamäki
13b266ebcf 1.58: Updated Changelog 2013-01-12 14:50:55 +01:00
Daniel Marjamäki
3057078571 1.58: Set versions 2013-01-12 14:49:58 +01:00
Daniel Marjamäki
7d31c2257d readme: tell about SRCDIR=build 2013-01-12 14:05:03 +01:00
Daniel Marjamäki
b5a3ce8cce Manual: Added chapter about --inconclusive 2013-01-12 11:16:57 +01:00
Daniel Marjamäki
290c6a7009 manual: updated date 2013-01-12 10:53:01 +01:00
Daniel Marjamäki
6bf47212c2 Fixed #4479 (GUI tests fail) 2013-01-12 10:44:13 +01:00
Daniel Marjamäki
c834bbad10 manual: removed recommendation to not include standard headers from the manual. I can't provide good reasons to not include the standard headers right now. 2013-01-12 09:24:29 +01:00
Daniel Marjamäki
b5dba75c3f manual: updated the Severities chapter. No major changes, just tried to make it more clear. 2013-01-11 18:35:37 +01:00
Daniel Marjamäki
7e61d1f2da manual: Removed chapter about exception safety checks. They are enabled by the normal --enable=all. 2013-01-11 16:55:00 +01:00
Daniel Marjamäki
fae5731a68 manual: don't write that threads can't be used in windows. 2013-01-11 06:52:34 +01:00
Daniel Marjamäki
018f6708fc manual: use --include instead of --append in the custom leaks section 2013-01-11 06:50:20 +01:00
Daniel Marjamäki
97b928b2bc Fixed #4476 (Tokenizer: wrong simplification of static anonymous-type struct array declaration) 2013-01-10 18:24:01 +01:00
Thomas Jarosch
fdcfbd5ff9 Add missing copyright header 2013-01-10 11:10:45 +01:00
Zachary Blair
309edbbdc5 Fixed #4389 (False positive: Possible null pointer dereference if the default parameter value is used) 2013-01-09 23:22:54 -08:00
Thomas Jarosch
6bd7463c54 Add local copy of argparse module to support python 2.6 / python 3.0 2013-01-09 21:30:53 +01:00
Edoardo Prezioso
6236e1dc38 Token::Match: removed harmless special code for initial '!!foo' patterns. 2013-01-09 20:13:33 +01:00
Thomas Jarosch
de36324d62 Match compiler: Add cmdline handling 2013-01-09 19:41:03 +01:00
Thomas Jarosch
97e1e50139 Match compiler: Workaround broken code generation for "!!foo" patterns
This is just meant for the upcoming release.
2013-01-09 19:25:24 +01:00
Thomas Jarosch
e1be85a552 Match compiler: Be more user friendly on how to invoke it 2013-01-09 19:22:40 +01:00
Thomas Jarosch
ade0b741b7 Match compiler: Create 'build' directory if needed 2013-01-09 19:15:13 +01:00
Thomas Jarosch
982503f457 Match compiler: Workaround broken optimizations in verify mode
If the match compiler uses the 'verify' mode and we
compile with -O2, some tests comparing the on-the-fly-parser
to the compiled match fail.

Small functions are inlined by the -O2 compile flag.
If we disable function inlining and still compile with -O2,
everything is back to normal.

gdb didn't show anything useful during the mismatch
since the needed variables are optimized out. Once
we start printing them, the problem vanishes, too.
-> Can only be diagnosed at the x86 assembly level.

The problem vanished by switching the invocation order
of Token::Match() and the compiled match, so just swap them.

Also add commented out helper code
to better diagnose mismatch problems.
2013-01-09 19:03:42 +01:00
Thomas Jarosch
33619de072 Revert "Change location of %op% operator in multicompare"
It's no longer needed with the proper fix for Token::Match().

This reverts commit 8b2adf1391f5ae02040ecf1fdc6c2d422e87c343.
2013-01-09 17:06:04 +01:00
Thomas Jarosch
7dd07d8e77 Properly implement %op% for Token::multiCompare
Use tok->isOp() instead of doing it "manually".

This fixes false positives for the C++ template case since
the brackets in "template < something >" are not comparison operators.

Profiling showed using tok->isOp() is actually faster than before (-O2).
2013-01-09 17:05:53 +01:00
Thomas Jarosch
8b2adf1391 Change location of %op% operator in multicompare
When the %op% operator is the first element
of a multicompare, it properly executes Token::isOp().
Otherwise it uses it's "internal implementation".

Workaround inspired by Edoardo Prezioso.
2013-01-08 20:26:48 +01:00
Daniel Marjamäki
9ecc74e845 tools/reduce: change default timeout to 5 minutes no matter if --hang is used or not. 2013-01-08 07:10:14 +01:00
Thomas Jarosch
29c66dd9bc Add another TODO test case for Token::Match 2013-01-08 00:19:12 +01:00