Thomas Jarosch
9a5260a43f
Only simplify Windows's DEBUG_NEW macro on Windows platform
2015-01-18 12:20:23 +01:00
Thomas Jarosch
cd4c297dce
Fix segfault in template simplifier
...
When something parsing the template syntax
went wrong, "tok2" was NULL and resulted
in deleting all remaining tokens. Whoops.
Triggered by gcc test suite:
gcc/testsuite/g++.dg/cpp0x/variadic87.C
Tracked down the source of the bug with
valgrind's "--track-origins=yes" switch.
2015-01-18 01:43:43 +01:00
Thomas Jarosch
58cb6cc116
Add new "style" check to catch redundant pointer operations
...
Doing "&*some_ptr_var" is redundant and might be the remainder
of a refactoring. Warnings for expanded macros are excluded though:
They are often used with and without pointers and
do something like this: "func(&(*macroarg))".
The new check is fully AST based and was given
strong false positive testing on a large code base.
2015-01-18 00:34:07 +01:00
Thomas Jarosch
2bcd675653
Verbose AST dump: Show if token is expanded from macro
...
I also added the token variable id, but that decreased
readability of the AST tree too much.
2015-01-17 23:20:52 +01:00
Thomas Jarosch
10fffbfce0
Use unsigned int for all flags
...
Frank Zingsheim reported: With the parameter 'flag_'
and the member variable '_flags' having the type 'int'
produces a lot of warings in clang:
"warning: implicit conversion changes signedness: 'int' to 'unsigned int'".
2015-01-17 16:46:05 +01:00
Thomas Jarosch
fd01cafb1b
Clean up redundant pointer operations
2015-01-17 16:29:50 +01:00
Thomas Jarosch
e6f042dadc
Multi process check: Sanitize error messages for illegal characters
...
before sending them across the pipe.
The deserializer died while deserializing
a string containing a binary zero.
2015-01-17 16:12:00 +01:00
Thomas Jarosch
36bcefc39d
Don't crash when the deserialization of an error message fails
...
Found while scanning the code of an
open source project related to onions.
2015-01-17 16:09:58 +01:00
Robert Reif
193645318b
Tokenizer: Remove macro in class declaration like 'class DLLEXPORT Fred {}' to be able to handle the class better later
2015-01-17 07:42:49 +01:00
orbitcowboy
42397ee8cb
std.cfg: Improved support for <cwchar> (wchar.h).
2015-01-15 23:14:10 +01:00
orbitcowboy
4e549d7d22
std.cfg: Fixed typo in previous commit, where support for wcsftime() from <cwchar> (wchar.h) was added.
2015-01-15 21:11:21 +01:00
orbitcowboy
fb984ab5e9
std.cfg: Added support for wcsftime() from <cwchar> (wchar.h).
2015-01-15 21:09:55 +01:00
Thomas Jarosch
08985bf68a
Throw exception in getVariableFromVarId() if called with out_of_range varId
...
That way we have a chance to catch code bugs at all.
2015-01-15 18:52:11 +01:00
orbitcowboy
20aea9deb3
Merge branch 'master' of https://github.com/danmar/cppcheck
2015-01-15 15:26:10 +01:00
orbitcowboy
4b71e5f9cb
std.cfg: Improved support for complex.h functions and improved documentation.
2015-01-15 15:25:50 +01:00
Thomas Jarosch
cf64fd3dad
Add more complex variation of the #6406 unit test
...
This is a false negative right now.
2015-01-15 14:45:10 +01:00
orbitcowboy
4222333785
std.cfg: Added documentation to some functions.
2015-01-15 10:43:15 +01:00
Thomas Jarosch
0286abfb45
Add unit test for #6406
2015-01-14 23:05:33 +01:00
Thomas Jarosch
1cc85bfce3
Add bounds check to getVariableFromVarId()
...
While poking around the memory leak check,
I managed to trigger an out-of-bounds access
in the symbol database.
Fix it by sanity checking the variable id
passed to getVariableFromVarId().
2015-01-14 23:00:38 +01:00
Thomas Jarosch
ef7f104335
Make sure we have a valid Variable pointer before dereferencing it
...
All other call sites check the pointer already.
2015-01-14 23:00:28 +01:00
orbitcowboy
823af34c67
std.cfg: Added support for <cwtype> (wtype.h) functions.
2015-01-14 06:54:35 +01:00
orbitcowboy
a26aa1cd16
testmathlib: Fixed typo in comment, no functional changes.
2015-01-14 00:51:50 +01:00
orbitcowboy
c4fc2181a7
std.cfg: Added support for <csignal> (signal.h) functions.
2015-01-13 23:13:25 +01:00
orbitcowboy
da1389880a
std.cfg: Documented <csetjmp> (setjmp.h) functions. No functional changes.
2015-01-13 21:55:43 +01:00
orbitcowboy
b10a082ba5
std.cfg: Added support for <clocale> (locale.h) functions.
2015-01-13 21:49:08 +01:00
orbitcowboy
c8678c90f4
std.cfg: Fixed missing attributes of <ctime> (time.h) functions.
2015-01-13 19:29:44 +01:00
orbitcowboy
3f6933c7e3
std.cfg: Added support for <cfenv> (fenv.h) functions.
2015-01-13 19:21:22 +01:00
Thomas Jarosch
c92d861b1e
Fix typo in "internal error" message
2015-01-12 23:09:17 +01:00
Robert Reif
68bb197bcb
Destructor detected as constructor resulting in false variable not initialized warnings
2015-01-12 06:11:22 +01:00
Martin Ettl
910af75e3a
testmemleak: Added missing () in test case.
2015-01-11 10:27:37 +01:00
Martin Ettl
37c89a6b70
Fixed #6311 : Add support for GNU get_current_dir_name().
2015-01-11 10:12:39 +01:00
Martin Ettl
6f000fb16b
Fixed #6407 : Add support for C++11 float_t and double_t types.
2015-01-11 09:58:15 +01:00
Thomas Jarosch
059f9d056c
Move to global variables to file scope
...
Putting them in the anonymous namespace
is the same effect as making them "static".
2015-01-11 12:37:11 +01:00
PKEuS
70ace39a80
Implemented changes from 787cbcb02e
in GUI
2015-01-10 22:51:45 +01:00
PKEuS
787cbcb02e
Accept unknown elements in Library files, but print a warning. This fixes backward compatibility of libraries with older cppcheck versions
2015-01-10 22:18:57 +01:00
PKEuS
fd2f93bb80
Two small refactorizations:
...
- Avoid leaving and entering again critical section without doing anything
- Use isPointer() in checkbufferoverrun.cpp instead of string comparison
2015-01-10 21:03:21 +01:00
PKEuS
d019b7f9a6
Fixed wrong condition in library.cpp
2015-01-10 20:51:14 +01:00
Alexander Mai
b30f03709a
Remove <use-retval/> for feclearexcept() and getwchar()
2015-01-10 18:16:07 +01:00
Aneesh Azhakesan S
fe5d2fc245
Fixed #5906 (false negative: 'else if' expression is always false (use library to determine if function is pure))
2015-01-10 12:21:55 +01:00
Thomas Jarosch
332254e0af
Make patterns compilable (mini refactoring)
2015-01-09 23:43:45 +01:00
Thomas Jarosch
c971387ccd
Suppress one new message to fix travis
2015-01-09 23:05:29 +01:00
Thomas Jarosch
0c21f77873
MC: Add ability to show skipped (=non-compiled) patterns
2015-01-09 22:50:42 +01:00
Thomas Jarosch
5b4f543c3b
Match compiler: Support match patterns with escaped quotes
...
This allows us to compile patterns like 'extern "C"'.
Fixes long standing open issues in the MC unit test.
2015-01-09 22:41:40 +01:00
PKEuS
d110d715ba
Refactorization: Use Token::link() when stringifying template argument list in symboldatabase.cpp
2015-01-09 22:03:43 +01:00
PKEuS
4da314b2e4
Declared recently added helper functions as static
2015-01-09 21:40:50 +01:00
PKEuS
25cd3794ac
Refactorization: Simplified and unified SymbolDatabase printing
2015-01-09 21:35:16 +01:00
Thomas Jarosch
027ce0e81f
Match compiler: Add unit test for C string replacements
2015-01-09 20:20:54 +01:00
PKEuS
7452613479
Refactorization:
...
- Merged messages exceptThrowInNoexecptFunction, exceptThrowInNoThrowFunction, exceptThrowInAttributeNoThrowFunction and exceptThrowInDeclspecNoThrowFunction into a single message.
- Merged Token::fIsDeclspecNothrow into Token::fIsAttributeNothrow
2015-01-09 20:18:09 +01:00
PKEuS
4d5bf28b33
Refactorization: Removed code for copying attributes from function declaration to implementation in symboldatabase as it is neither tested nor necessary
2015-01-09 19:46:04 +01:00
Robert Reif
6998c55680
Symboldatabase: function return token ( #6244 )
2015-01-09 16:08:34 +01:00