Commit Graph

6974 Commits

Author SHA1 Message Date
Edoardo Prezioso f4cdf57955 Fixed ticket #3229 (Segfault with goto):
Don't handle labels, gotos, returns and indentations inside the round braces. This is applied not only for simplifyGoto, but also to simplifyFlowControl.
Rewrite enum badly handled by astyle inside mathlib.cpp and move simplifyFlowControl at the end of the simplifyTokenList in order to catch more dead code, not related to the ticket.
2011-10-18 23:56:35 +02:00
PKEuS dc15641954 Fixed #3223 (Improve check: Check more STL algorithms for missmatching containers check) 2011-10-18 21:55:41 +02:00
PKEuS ea02bd905a Fixed #3225 (Boolean comparison with string literals) 2011-10-18 21:37:03 +02:00
Daniel Marjamäki 3d18fdfa3f Fixed #3220 (False positive: possible null pointer dereference: 'SwDoc *pDoc = NULL; pDoc->do_something();') 2011-10-18 19:34:14 +02:00
Daniel Marjamäki 03ff25f152 gcc: fixed compiler warnings/errors 2011-10-17 20:32:59 +02:00
Daniel Marjamäki 34e2a2ad66 Makefile: Disable rules by default 2011-10-17 20:18:36 +02:00
Daniel Marjamaki bf0386c938 Preprocessor: Started working on new preprocessing that uses -D information better. Ticket: #2131 2011-10-17 20:12:46 +02:00
Edoardo Prezioso de8eb48a5c Remove redundant function findmatch inside tokenize.cpp.
There's Token::findmatch which is already used inside other Tokenizer functions.
2011-10-17 13:46:27 +02:00
Edoardo Prezioso c3caade3ca - Fixed mispelled function name;
changed variable name inside simplifyFlowControl for consistency;
improved simplifyFlowControl to handle better this kind of code:
"return; { { } { label : ; ok ( ) ; } }"->"return ; { { label: ok ( ) ; } }".
2011-10-17 02:16:49 +02:00
Edoardo Prezioso 6f80c5ff64 Removed redundant test, which was related to the Tokenizer, not to the memory leak checker. 2011-10-16 21:19:18 +02:00
Daniel Marjamäki 4705026242 fixed a few doxygen warnings 2011-10-16 17:16:07 +02:00
Daniel Marjamäki 618379ffd7 cli: updated help text for --std option 2011-10-16 15:32:40 +02:00
Ettl Martin 1a710e5761 fixed regression on linux due to missing include 2011-10-16 14:16:35 +02:00
PKEuS f8074b71d2 Fixed #2470 (False negative: Possible null pointer dereference (C++0x keyword 'nullptr')) 2011-10-16 12:54:58 +02:00
Daniel Marjamäki 32496fb009 Token: Updated comments 2011-10-16 08:25:11 +02:00
Thomas Jarosch a52b73f9f9 Fix #3208 (Simplify pointer to standard type, C only)
The symbol database is unavailable during token simplification
and &data[0] might return something completely different for C++.

Moved code_is_c() from checkOther to Tokenizer.
2011-10-16 08:09:57 +02:00
Daniel Marjamäki 1ec32e27db Borland: Fixed compiler errors 2011-10-16 07:52:54 +02:00
Daniel Marjamäki d5883ef0c4 astyle formatting 2011-10-16 07:50:34 +02:00
PKEuS 71a1d98693 Fixed ##3211 (Crash in gitHEAD when arglist count is smaller than format string) 2011-10-16 07:06:18 +02:00
Edoardo Prezioso 8afc1b6f2d Changed the name of the removal of dead code after flow control statements for consistency (simplifyDeadCode is too generalized as name) 2011-10-15 12:45:48 +02:00
Edoardo Prezioso 57ead6988e Fixed ticket #3138 (Tokenizer: remove unreachable code below goto inside a namespace|class|struct block) 2011-10-15 11:35:45 +02:00
Edoardo Prezioso f95b692a69 Fixed ticket #3113 (complete simplification of dead code after control flow statements) 2011-10-15 01:34:07 +02:00
Thomas Jarosch 7824e5c0f5 Fixed #3210 (STL check: Add support for reverse iterator) 2011-10-14 19:54:20 +02:00
Thomas Jarosch 7ae39f13cc Fixed #3198 (Add check for readlink()) 2011-10-14 19:45:51 +02:00
Daniel Marjamäki 07cc01876c Merge pull request #39 from neuschaefer/codespell.v2
codespell v2
2011-10-13 13:20:35 -07:00
Jonathan Neuschäfer 4fb7865f49 fix typos using codespell
Codespell is available at http://git.profusion.mobi/cgit.cgi/lucas/codespell/.
2011-10-13 22:04:41 +02:00
Daniel Marjamäki 6f8e42a5af changed the astyle formatting flags 2011-10-13 20:53:06 +02:00
Edoardo Prezioso b792efb761 Fix ticket 3140 and 3137 (Improve Tokenizer: Remove dead for loop - simplify while(0) better.
Note: it doesn't remove dead code if there's a label inside. Will be improved in another ticket.
2011-10-13 13:01:24 +02:00
Edoardo Prezioso 16506f0a8c Remove redundant simplifyDeadCode call inside the Tokenizer::tokenize and move the relative tests in the file 'testsimplifytokens.cpp'. 2011-10-13 12:26:27 +02:00
Zachary Blair 82366918ff Fixed #2627 (switch case fall through: redundant strcpy) 2011-10-13 01:27:22 -07:00
PKEuS 91d7621994 Fixed #3180 (New check: Detect nullpointers given to printf via variable argument list) 2011-10-12 22:11:27 +02:00
Daniel Marjamäki 74c0468a18 astyle formatting 2011-10-12 22:06:19 +02:00
Kimmo Varis 4c24b6a804 GUI: Rename ErrorItem::id to ErrorItem::errorId. 2011-10-12 22:19:08 +03:00
Daniel Marjamäki b73896bcc5 Fixed #3163 (Out of bounds pointer arithmetic not reset) 2011-10-12 20:54:39 +02:00
Daniel Marjamäki 371871b0b7 Tokenizer::removeMacrosInGlobalScope: Don't remove C/C++ keywords namespace/struct/etc. Ticket: #3193 2011-10-12 19:23:39 +02:00
Daniel Marjamäki cf39ece8da Fixed #3150 (Invalid warning when pointer difference is not adjacent) 2011-10-12 19:01:44 +02:00
Robert Reif ee04c1bfb7 fix #3194 (Parsing glitch causes false 'can be const' error for an 'if' statement) 2011-10-12 09:10:34 -04:00
Robert Reif af6a6f9c2d run astyle 2011-10-12 09:08:54 -04:00
Marek Zmysłowski 07d8cd0a12 improved realloc checking '*p = realloc(*p,..'. Ticket: #1791 2011-10-11 22:07:14 +02:00
Kimmo Varis 00ae7dbda3 GUI: Move ShowTypes enum to own class and file.
We are using ShowTypes around the GUI codebase so it makes sense
to have it in its own class. And the class also contains related
helper functions instead of scattering them around different
classes.

ShowTypes also contains the visibility settings for all the
GUI severities. Implementation in this commit makes ShowTypes
class to load the visibility settings when it is created. And save
the settings when it is destroyed.
2011-10-11 22:20:36 +03:00
Thomas Jarosch 849bee8437 [PATCH] Detect suspicious use of semicolon after 'if/for/while'
statements if they are followed by a {..} block.

Examples are:

for (int i = 0; i < 10; ++i);
{
   printf("i)";
}

or

if (i == 100);
{
   die("Wrong argument");
}

This new check is active if you enable inconclusive checks.
2011-10-11 08:41:39 +02:00
Zachary Blair fcf360825a Fixed #2955 (New check: Using && instead of &) 2011-10-10 10:11:17 -07:00
Edoardo Prezioso 742858b67c Fixed some simple errors in some old commits. 2011-10-10 17:18:47 +02:00
Edoardo Prezioso af23a9dcbb Fixed ticket #3140 (Improve Tokenizer: Remove dead for loop 'for (int i = 0; i < 0; ++i)') 2011-10-10 15:15:45 +02:00
PKEuS 5f9b916dcc Fixed #2115 (new check: endless loop (unsigned comparison that is always true)) 2011-10-09 20:35:46 +02:00
Reijo Tomperi 1c9ae6937c Fix compiling on VC++ after previous commit 2011-10-09 21:14:44 +03:00
Reijo Tomperi e87628b72f Filter out duplicate error messages in cli. 2011-10-09 21:03:38 +03:00
Daniel Marjamäki 96beb94b21 Fixed #3183 (False positive: (error) syntax error) 2011-10-09 18:42:36 +02:00
Daniel Marjamäki 175503ef94 Null pointer: improved inconclusive checking in CheckNullPointer::nullPointerAfterLoop 2011-10-09 15:09:02 +02:00
seb777 1d9a99012b Fixed 3133 (Improve Check: Found obsolete function)
- add check for std::gets
- improve check when multiple obsolete functions are used
- remove false positive (declared functions)
2011-10-09 10:31:21 +02:00