Commit Graph

9233 Commits

Author SHA1 Message Date
Matthias Krüger af9b9595ce SymbolDatabase::createSymbolDatabaseFindAllScopes(): simplify match pattern. 2018-01-01 05:02:55 +01:00
Matthias Krüger f2b2be2166 CheckInternal::checkRedundantTokCheck(): also catch patterns of the form if(!tok || !Token::Match(tok, "foo")). 2018-01-01 05:02:41 +01:00
Dmitry-Me 70817b3d4e Remove redundant check 2018-01-01 03:06:17 +03:00
Daniel Marjamäki fa42a08a71 Make code less strict that looks for garbage template code. Before a template there might be unknown macros. 2017-12-31 16:25:41 +01:00
Daniel Marjamäki 7d2450e445 Fixed #1478 (false negative: buffer access out of bounds not detected after free and malloc) 2017-12-31 14:58:26 +01:00
Daniel Marjamäki 79f6793076 minor code cleanup 2017-12-31 12:30:02 +01:00
Daniel Marjamäki 1cbeec26c6 Replace Token::Match with Token::simpleMatch 2017-12-30 22:43:44 +01:00
Daniel Marjamäki f6fcf01cc6 Fixed #7868 (TemplateSimplifier: template specialization fails) 2017-12-30 22:14:48 +01:00
Daniel Marjamäki 03a4c84fec Rename variables 2017-12-30 12:27:55 +01:00
Daniel Marjamäki a8f73055ad Templates: Fixed scope problem 2017-12-30 09:00:19 +01:00
Daniel Marjamäki 005bb7c747 Replace Token::Match with Token::simpleMatch 2017-12-29 23:05:54 +01:00
Daniel Marjamäki fc1ac180e6 Fixed #6218 (Template type aliasing misdetection) 2017-12-29 22:47:07 +01:00
Daniel Marjamäki caf9f22015 Rename method TemplateParametersInDeclaration => getTemplateParametersInDeclaration 2017-12-28 22:10:10 +01:00
Daniel Marjamäki 42bcb6d417 use early continue 2017-12-27 22:29:45 +01:00
Daniel Marjamäki 469cb7e6df TemplateSimplifier: Fix instantiations when template parameter is a template 2017-12-26 22:34:39 +01:00
Daniel Marjamäki 4a7f923fca astyle formatting
[ci skip]
2017-12-26 22:12:30 +01:00
Daniel Marjamäki 84bdabacf8 TemplateSimplifier: Remove not needed variable indentlevel 2017-12-26 13:27:02 +01:00
baltth 6cbd69bf2d Fix define parsing from compile_command.json (#1013)
* Define value parsing from compile_commands.json

* Handle escaping in defined values

* Added test for importCompileCommands

* Added used defines for imported projects

* Fixed unnecessary string literals
2017-12-26 13:04:27 +01:00
Daniel Marjamäki 2c69f2b226 TemplateSimplifier: Improved handling of scopes 2017-12-26 10:55:18 +01:00
Dmitry-Me 5a642ac35e Omit unneeded computations 2017-12-26 02:07:24 +03:00
Daniel Marjamäki eaadfb3910 update debug token list output for templates. 2017-12-25 23:16:51 +01:00
Daniel Marjamäki a80760cb6f TemplateSimplifier: Fix in expandTemplate 2017-12-25 08:19:46 +01:00
Daniel Marjamäki 1eb2df34ad Revert improved scope handling in TemplateSimplifier 2017-12-23 22:11:30 +01:00
Daniel Marjamäki d237d36d46 TemplateSimplifier: Fix crash seen in Travis 2017-12-23 17:29:28 +01:00
Daniel Marjamäki 2d7fedbb49 Try to fix Travis 2017-12-23 15:41:32 +01:00
Daniel Marjamäki 91839c2534 Fixed #7987 (FP copyCtorAndEqOperator - class with a move constructor and move assignment operator) 2017-12-23 10:35:14 +01:00
Daniel Marjamäki 5ed2dbd5ef Fix Cppcheck warning 2017-12-23 10:16:17 +01:00
Daniel Marjamäki 326765c632 TemplateSimplifier: Better handling of scopes 2017-12-23 08:20:24 +01:00
Dmitry-Me 8851fd64a6 Break loop early 2017-12-21 03:13:00 +03:00
Dmitry-Me 82825ab721 Reorder checks, remove duplicate check 2017-12-20 13:16:59 +03:00
Dmitry-Me f4ddf43cba Break loop early, simplify check 2017-12-20 03:55:43 +03:00
Dmitry-Me 6ae32ed98c Unify check with surrounding code 2017-12-20 01:37:19 +03:00
Daniel Marjamäki 9c17bddbd4 Tweak fix for ticket #8297 2017-12-17 22:27:05 +01:00
Daniel Marjamäki 1428759479 Fixed #8297 (Tokenizer:createLinks: 'X<sizeof(int)==1 || sizeof(int)==4>()') 2017-12-17 15:53:05 +01:00
Daniel Marjamäki d292434e76 Try again to clarify warning message for new strcmp() checker 2017-12-13 15:28:50 +01:00
Daniel Marjamäki 3f36d4b5f4 try to clarify error message 2017-12-11 22:10:00 +01:00
IOBYTE 026d8f6859 fix #8284: False positive: "Label 'class' is not used." for anonymous… (#1011)
* fix #8284: False positive: "Label 'class' is not used." for anonymous C++ class

Add support for annonymous derived structures and classes.

* Fix travis build (use findsimplematch).

* Fix bug in simplifyLabelsCaseDefault which was inserting ; in wrong place.
2017-12-05 16:50:04 +01:00
Simon Martin 1b14380007 Ticket #8175: Fix bug in TemplateSimplifier::instantiateMatch with template parameters involving sizeof or namespace. 2017-12-02 19:18:36 +01:00
BNT fd76abba16 also generate debug information when building for release. This makes (#1003)
debugging and profiling easier and has now drawback as long as the PDB
files are not distributed (which would blow up installers)
2017-11-29 08:31:30 +01:00
BNT b913a04462 remove outputlist since its not moved and all subfunction check for (#1001)
nullptr
2017-11-29 08:29:19 +01:00
Daniel Marjamäki 6c50dafbac Fix classInfo to fix TestCppcheck assertion 2017-11-27 23:34:01 +01:00
Daniel Marjamäki 43db6147d3 astyle formatting
[ci skip]
2017-11-27 23:32:20 +01:00
Daniel Marjamäki f28d5e91ac Fixed #8251 (Condition: bug when there are more than 2 strcmp() on same buffer (tricky)) 2017-11-27 12:55:20 +01:00
Simon Martin cbf0b13b3e Ticket #8255: Don't crash upon invalid code while checking conditions. 2017-11-25 08:22:39 +01:00
Dmitry-Me 4ac56a55be Fix FN for signed short passed as %hx into printf 2017-11-21 22:17:02 +03:00
Dmitry-Me c6bf881ee6 Fix FN for signed char passed as %hhx into printf 2017-11-21 22:14:48 +03:00
Dmitry-Me 5869f6d989 Fix FN for std::intmax_t passed as %ld, %lld into scanf 2017-11-20 23:07:37 +03:00
Dmitry-Me 7cf21f329a Fix FN for size_t, uintmax_t passed as %lx and %llx into printf 2017-11-20 22:56:33 +03:00
Dmitry-Me f0a7365f35 Fix FN for ptrdiff_t passed as %Ix into printf 2017-11-20 22:51:10 +03:00
Dmitry-Me eb4bb893b3 Fix FP for std::intmax_t passed as %jd into scanf 2017-11-20 22:31:13 +03:00
Dmitry-Me c4b6db7e23 Fix FP for std::uintmax_t passed as %ju and %jx into scanf 2017-11-20 22:13:20 +03:00
Daniel Marjamäki 8fe4852b98 Refactoring, reuse and improve isVariableChangedByFunction() 2017-11-18 11:02:52 +01:00
Daniel Marjamäki 9191e6f112 Fixed #8246 (ValueFlow: known value, function pointer argument) 2017-11-17 23:04:54 +01:00
Daniel Marjamäki 5cfa13c31c Reuse Token::isControlFlowKeyword() 2017-11-17 22:18:19 +01:00
Daniel Marjamäki b57dd4359b Fixed #8263 (check-library incorrectly reports missing configuration for case when value is in parentheses) 2017-11-17 22:10:39 +01:00
Dmitry-Me cf05b722a9 Fix FN for intmax_t passed as %jx into printf 2017-11-18 00:00:02 +03:00
Dmitry-Me 73414ee56c Fix FN for std::uintmax_t passed as %Lu and %Lx into scanf 2017-11-17 23:58:09 +03:00
Dmitry-Me 167258a6bf Fix FNs when various types are passed as %tu into printf 2017-11-15 22:40:16 +03:00
Dmitry-Me 4fc0a7998e Remove duplicate error reporting function 2017-11-14 21:46:17 +03:00
Daniel Marjamäki b3c80947ed Fixed #6508 (False positive unusedStructMember - brace initializer) 2017-11-12 22:33:17 +01:00
Daniel Marjamäki 526d8b76a6 Fixed #8271 (FP uninitMemberVar: Handle method call in middle of statement) 2017-11-11 21:28:24 +01:00
Daniel Marjamäki 31a1cebc5f Fixed #8272 (setVarIdPass2: Broken parsing of class header) 2017-11-11 12:04:25 +01:00
Daniel Marjamäki 4740bf116f Remove unused variable 2017-11-11 11:31:27 +01:00
Daniel Marjamäki cbb23f14d2 astyle formatting
[ci skip]
2017-11-11 11:13:45 +01:00
BNT cc4c9032de Support relative paths in Visual Studio projects properties (#995)
* transform relative paths with the help of the project dir to absolute
paths so the actual checker can resolve include paths defined in
property sheets

* fix coding style (one-line if)

* add existing importproject testfile to visual studio project to appear
when loading solution

* also explicitly export struct from within class to enable linking in
testrunner
2017-11-11 11:13:18 +01:00
Daniel Marjamäki b01772e4d1 Fix testcase 2017-11-10 21:28:13 +01:00
Daniel Marjamäki 6b1a2dcc5d Fixed #7788 (Varid missing for member variable in ctor of template class) 2017-11-10 21:03:15 +01:00
Daniel Marjamäki 7ec0e41196 Fix Cppcheck performance warnings 2017-11-09 23:18:00 +01:00
Daniel Marjamäki 799f953c00 Fixed #8269 (Tokenizer: wrong varid (using namespace A::B)) 2017-11-09 23:15:16 +01:00
Daniel Marjamäki 2408f01cc0 Fixed #8270 (Tokenizer: wrong varid (using namespace std)) 2017-11-09 22:08:58 +01:00
Daniel Marjamäki b67cf0a475 Improved handling of varid in complex scopes 2017-11-09 15:58:08 +01:00
Dmitry-Me 916acfc133 Reuse duplicated code for "x" and "u" scanf specifiers 2017-11-09 16:35:09 +03:00
Dmitry-Me 56ba48d705 Unify code handling "x" and "u" scanf specifiers 2017-11-09 16:25:56 +03:00
Dmitry-Me 94dd63f196 Fix FN for std::uintmax_t passed as %lx, %lu scanf read targets 2017-11-09 15:38:48 +03:00
Dmitry-Me b301b44897 Fix FN for unsigned ptrdiff_t passed as %lu into scanf 2017-11-09 14:43:09 +03:00
Dmitry-Me 78be821431 Fix FN for std::uintmax_t passed as %llx, %llu scanf read targets 2017-11-09 11:28:07 +03:00
Daniel Marjamäki cc08d51505 Fix Cppcheck warning (use prefix increment for iterator) 2017-11-09 08:40:13 +01:00
Daniel Marjamäki 26b9e1528c Fixed #7000 (Invalid varid - matching class with same name from other namespace) 2017-11-08 22:52:27 +01:00
Dmitry-Me 74c778c5f0 Fix FN when unsigned ptrdiff_t is passed as %llu into scanf 2017-11-09 00:26:07 +03:00
Dmitry-Me 703d86992d Fix FN when size_t, uintmax_t are passed as %Lx into scanf 2017-11-08 23:52:49 +03:00
Dmitry-Me 89b83b2d16 Fix FN for unsigned ptrdiff_t passed as %Ix into scanf 2017-11-08 15:06:51 +03:00
Dmitry-Me 970aee9ce1 Fix FN for ptrdiff_t passed as %zd into scanf 2017-11-08 14:22:03 +03:00
Dmitry-Me aff993115f Remove duplicate check 2017-11-08 00:53:18 +03:00
Dmitry-Me 4c186d2455 Remove dead code - %llf specifier doesn't exist 2017-11-07 22:57:44 +03:00
Dmitry-Me 06fd390b3f Remove duplicate checks 2017-11-07 22:14:29 +03:00
Daniel Marjamäki 4a9984d73b Fixed #8233 (FP uninitvar found in bash:lib/readline/display.c) 2017-11-06 10:28:07 +01:00
Daniel Marjamäki 8b384f8ee5 Fixed #4988 (Tokenizer::setVarId: Wrong varid for inline function parameter) 2017-11-05 22:25:46 +01:00
Daniel Marjamäki 324257ef52 Fixed #7823 (No varid for member variable of type std::bitset< static_cast<int>(2) >) 2017-11-05 17:59:34 +01:00
Daniel Marjamäki 511d14a051 astyle
[ci skip]
2017-11-05 17:56:24 +01:00
Daniel Marjamäki 4d8f069907 Renamed pro c sql to embedded sql 2017-11-03 21:04:12 +01:00
Ayaz Salikhov 19af9bc216 Fix UB when converting float to int (#984) 2017-11-03 14:05:23 +01:00
Daniel Marjamäki 4f6f1e20dd Hide Pro*C SQL simplification. Use pro_c_sql.cfg library file if this is wanted. 2017-11-03 13:02:29 +01:00
Daniel Marjamäki 9b2936a66f Code refactoring 2017-11-03 11:41:32 +01:00
Alexey Eryomenko 02461753f3 Fix for embedded PL/SQL blocks (Oracle Pro*C) (#985)
* fix for correct parsing of embedded PL/SQL blocks (Oracle Pro*C)

* enforce SQL block end at the end of nearest outer C block, when
appropriate terminator is not found

* added check for ; at the end of END-EXEC and made SQL block detection
more readable
2017-11-03 11:31:33 +01:00
Oleksandr Redko a8700f5622 Remove redundant parts of conditional expressions (#988)
All issues were found with PVS-Studio:
V560 A part of conditional expression is always true: tok. astutils.cpp 407
V560 A part of conditional expression is always true: size > 0. checkbufferoverrun.cpp 709
V547 Expression 'secondTrue' is always true. checkcondition.cpp 1013
V547 Expression 'firstTrue' is always true. checkcondition.cpp 1020
V560 A part of conditional expression is always true: !scan. checkio.cpp 1036
V560 A part of conditional expression is always true: scope->function. checknullpointer.cpp 395
V560 A part of conditional expression is always true: tok2. checkstl.cpp 268
V560 A part of conditional expression is always true: par. tokenize.cpp 9440
V547 Expression '!erased' is always true. symboldatabase.cpp 3990
2017-11-03 10:39:57 +01:00
Dmitry-Me fe5dd55723 Wrong reporting function was being called 2017-10-27 22:21:18 +03:00
Dmitry-Me f653b36b87 Fix actual type reported for unsigned ptrdiff_t passed into scanf 2017-10-26 23:47:11 +03:00
Dmitry-Me 65b2755098 Extract common check and run it first 2017-10-26 23:42:38 +03:00
Björge Dijkstra 94031ef11d Fix for conditional memory allocation inside if-condition (#986)
* Add test cases for allocation inside if-condition

* Fix missed memory leak and false positive double free for allocation inside if-condition
2017-10-26 19:11:00 +02:00
Dmitry-Me a38854451f Warn for signed values passed as scanf targets with "x" conversion 2017-10-25 21:22:17 +03:00