Commit Graph

9109 Commits

Author SHA1 Message Date
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 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 8b2adf1391.
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
Thomas Jarosch 818362f496 Add TODO test case for a bug in Token::Match multicompare
The result of the %op% operator is wrong in the multicompare
case for C++ templates. Detected by comparing the output
of the compiled matches with the on-the-fly match parser.
2013-01-07 23:47:20 +01:00
Thomas Jarosch 9970414a2f Match compiler: Implement 'verify mode' for Token::Match
Verify mode runs the same ::Match pattern on a token
using the on-the-fly parser and the compiled match parser.
The result is compared and we abort on mismatch.

Already detected an error in our test suite, needs investigation.
2013-01-07 22:27:57 +01:00
Thomas Jarosch 9b51d81e99 Match compiler: Split _replaceTokenMatch() into two small functions 2013-01-07 21:39:49 +01:00