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
PKEuS
c4269b3b44
Fixed #6390 , strncmp and similar functions are <pure/>
2015-01-09 14:35:12 +01:00
orbitcowboy
a5e3f2889c
std.cfg: Added functions from <cfenv>.
2015-01-09 13:39:46 +01:00