Commit Graph

21647 Commits

Author SHA1 Message Date
Dmitry-Me 28ef31c981 Fix "one past end" illegal iterator computation 2019-11-20 18:10:05 +03:00
Sebastian c990d10ffa
Check for JSON error when parsing addon .json files + fixes (#2374)
* cppcheck.cpp: Check for JSON error when parsing addon .json files

This fixes that errors in JSON files given via `--addon=*.json` are
silently ignored and maybe only a part of the JSON file is used.
Now the error message which picojson can return is checked and a
corresponding error message is returned again by getAddonInfo().

* naming.json: Fix missing comma

* CLI: Fix naming violations detected by addon naming.py via naming.json

* Addon naming: Add argument for validating names of constants

* LIB: Rename functions/variables so they are valid, loosen naming rules

* GUI: Fix naming violations
2019-11-20 15:37:09 +01:00
versat feeb27f3c9 gui/checkthread.cpp: Fix warning "empty expression has no effect"
The trailing semicolons are redundant. "switch(){}" does not need one
and "Q_UNUSED()" already includes one.
2019-11-20 08:37:46 +01:00
IOBYTE 590aeea8f8 Fix #9483 (Assertion `tok && tok->str() == ">"' failed) (#2381) 2019-11-20 07:02:25 +01:00
Rikard Falkeborn f6a2034a4c Add regression tests for fixed crashes (#2379)
The invalid code in Trac tickets #8750, #8753, #8756, #8762, #8764
and #8765 previously crashed cppcheck. Now it throws a syntax error
instead. Add some tests for these tickets.
2019-11-19 21:50:53 +01:00
Armin Müller 130ebe4b85 Typos found by running "codespell" (#2380) 2019-11-19 20:02:24 +01:00
Dmitry-Me cfac54c42a Improve test coverage for %I32d used with scanf() 2019-11-19 18:05:21 +03:00
Paul Fultz II 479fbb85a2 Fix issue 9443: Internal error: Token::astOperand2() cyclic dependency. (#2376)
* Improve nested init lists

* Fix issue 9443: Internal error: Token::astOperand2() cyclic dependency.
2019-11-19 11:38:03 +01:00
Dmitry-Me 55051b777b Remove unneeded string copy 2019-11-19 10:19:13 +03:00
Sebastian 4f1db90367
naming.py: Fix FP for constructors/destructors (#2375) 2019-11-18 18:41:57 +01:00
versat 0dd180d5a2 misra-test.cpp: Remove redundant unused function argument
The unused argument causes the new check for rule 2.7 to output an error
here.
I verified that the regression test still works without the unused
argument (misra.py would still crash).
Travis should be happy again.
2019-11-18 15:57:53 +01:00
orbitcowboy 2ff18b76ec test std.cfg: Improved tests for strncpy and strrchr . 2019-11-18 13:53:42 +01:00
orbitcowboy d5d2915873 test std.cfg: Improved tests for strncmp and strncat. 2019-11-18 13:43:49 +01:00
Mathias Schmid 8c22b2a316 Add check for MISRA-C 2012 Rule 2.7 and test cases. (#2340)
* Add check for MISRA-C 2012 Rule 2.7 and test cases.

* Cast unused function parameters of some test patterns to "void".

* Fix function parameter void cast in "misra_17_6". Add comment to "misra_11_7_extra" to make all function parameter void casts look alike.
2019-11-18 06:56:30 +01:00
Paul Fultz II ed1acc319d Fixx issue 9355: FP constParameter when returning non-const reference to struct member (#2373) 2019-11-18 06:39:50 +01:00
IOBYTE 7f6ebaa6b2 fix syntax error for VTK_LEGACY_BODY(vtkMatrix3x3::operator[], "VTK 7.0"); (#2372) 2019-11-18 06:38:53 +01:00
Daniel Marjamäki 2f00141c72 Revert "Fixed #9452 (FP syntaxError - _Pragma before struct with two constructors)"
This reverts commit 14539b56a3.
2019-11-17 22:18:30 +01:00
Daniel Marjamäki 14539b56a3 Fixed #9452 (FP syntaxError - _Pragma before struct with two constructors) 2019-11-17 18:50:40 +01:00
Daniel Marjamäki 65784a16c4 Manual: Clarify suppression filename, it must match exactly (#7780) 2019-11-17 17:18:41 +01:00
amai2012 0024c3e446 Run xmllint on cfg/cppcheck-cfg.rng 2019-11-17 16:25:10 +01:00
Daniel Marjamäki 1d441f64c1 CheckUnusedVar: Quick heuristic so we don't bailout for 'auto' variables 2019-11-17 15:44:57 +01:00
Ken-Patrick Lehrmann 9ce2641704 Fix typo in cppcheck-cfg.rng (#2371) 2019-11-17 15:41:04 +01:00
Daniel Marjamäki d0daf1f90d CheckUnusedVar: Assume that assignment has 'standard behavior' by default 2019-11-17 12:33:26 +01:00
Daniel Marjamäki f5e3dc9a38 Improved fix for #8978 (False positive: Variable assigned value that is never used when assigning via iterator) 2019-11-17 12:08:21 +01:00
Paul Fultz II 4ebf54d090 Fix issue 9437: Dont assume init list constructor for strings (#2366)
* Fix issue 9437: Dont assume init list constuctor for strings

* Update the schema

* Add documentation
2019-11-17 03:22:04 +01:00
Daniel Marjamäki 5654630099 Fixed #8978 (False positive: Variable assigned value that is never used when assigning via iterator) 2019-11-16 19:49:54 +01:00
Rikard Falkeborn e0fe8fa2cd bump simplecpp (#2368) 2019-11-16 18:29:01 +01:00
Daniel Marjamäki 7cd7aff60a Fixed #9285 (Misleading warning message) 2019-11-16 17:24:54 +01:00
Daniel Marjamäki 53cc922765 Fixed #9374 (False Positive - constParameter) 2019-11-16 13:59:41 +01:00
Daniel Marjamäki bae4faa786 Fixed #9422 (FP uninitdata - writing pointer to output stream) 2019-11-16 11:47:57 +01:00
Daniel Marjamäki 7f57c980f0 Refactoring; shorter code 2019-11-16 11:20:26 +01:00
IOBYTE 754c1fff66 fix syntax error for conversion operator for type with global namespace (#2365)
* fix syntax error for conversion operator for type with global namespace

* fix syntax error when taking address of operator function

* fix syntax error for using ::operator "" _a;

* fix syntax error for template<> void operator "" _h<'a', 'b', 'c'>() {}

* fix syntax error for operator in parentheses
2019-11-16 08:03:13 +01:00
Sebastian 8a32a210f8
addons: Change shebang to use Python 3 instead of Python 2 (#2361)
Use Python 3 instead of Python 2 if addons are executed directly.
Running cert.py and misra.py against test/cfg/std.c.dump shows that
Python 3 needs only half the time compared to Python 2. I have tested
it repeatedly and the results are always the same. This is no surprise
at all. The memory footprint is very likely also significantly better
but i have not tested it.
2019-11-15 21:38:20 +01:00
Sebastian f9d5aec758
GUI: projectfiledialog.ui: Add note about addons requiring Python (#2364)
This fixes https://trac.cppcheck.net/ticket/9456 (Tell the user that the
addons require Python) regarding the GUI. Whether it is useful/necessary
to add something similar for the CLI must still be checked.
2019-11-15 21:36:25 +01:00
Sebastian b089ba4e3b
manuals: Fix missing/wrong table of contents in HTML files (#2360)
The YAML setting `toc: true` works for PDF creation but for HTML it
simply prints `true` as the table of contents.
It looks like a misconception and the only acceptable solution I have
found is to use `--toc` on the command line instead of the `toc: true`
setting in the YAML header.
It is a known issue, here are more details:
https://github.com/jgm/pandoc/issues/2872
With this fix I get table of contents not only for PDF but for HTML too.
The PDF looks like before for me, the table of contents and the outline
are still present as it was before.
2019-11-15 21:35:41 +01:00
Daniel Marjamäki b9835fd4f9 Fixed #9445 (Syntax error on typeof word in C) 2019-11-15 21:20:57 +01:00
Georgy Komarov 3bd126486f addons: Clean up and clarify addons usage. (#2359)
* addons: Add '--recursive' arg. Clean up and clarify errors messages.

This commit introduce '--recursive' option for cppcheck addons.
Iff this option is set addon will recursively traverse directories in
given input files to find files with '.dump' suffix that would be
checked. Otherwise it will treat input directory as error (current
behaviour).

Add additional error handling with more clear error messages, clean up
the code.

* Add regex specifier

* Roll back --recursive option

* Update addons section in manual
2019-11-15 20:14:30 +01:00
IOBYTE 3a617fa04a Fix #9472 (Syntax error on valid C++ code) (#2363)
There are probably a lot more valid code patterns that generates syntax
errors so I added "operator" to the error message to make it easier to
find them.
2019-11-15 07:03:57 +01:00
Daniel Marjamäki 7e0fc4fb00 Tokenizer: Detect more syntax errors when operator does not have operands 2019-11-14 21:18:31 +01:00
orbitcowboy dbbb7f544a test std.cfg: Improved strlen() tests. 2019-11-14 16:45:27 +01:00
orbitcowboy ea92695e54 test std.cfg: Improved sscanf() tests. 2019-11-14 16:38:30 +01:00
orbitcowboy ade54bef3f test std.cfg: Added better tests. 2019-11-14 10:48:23 +01:00
IOBYTE 2eb575d990 Fix #9468 (Syntax error on valid C++) (#2358) 2019-11-14 09:26:21 +01:00
orbitcowboy 1d19f57c5e std.cfg: No real changes. Updated wrong header for 'wcscmp' [ci skip] 2019-11-14 09:23:37 +01:00
orbitcowboy 356dc164b7
README: Added License-badge 2019-11-14 09:02:19 +01:00
orbitcowboy dd30f37642 std.cfg: Merged 'wcscmp' and 'strcmp' configurations and added better tests. 2019-11-14 08:43:31 +01:00
orbitcowboy 20e2c513b6 test std.cfg: Added better test cases for toupper() and tolower(). 2019-11-14 08:31:00 +01:00
IOBYTE f88ae21d8f Fix #9467 (False positive on local variable when template specialization is used) (#2357) 2019-11-13 21:34:27 +01:00
Georgy Komarov da163ae0e8 misra.py: Add regression test for R21.1 crash (#2356) 2019-11-13 20:36:31 +01:00
orbitcowboy 09eaa412b1 std.cfg: Improved cfg for 'mbstowcs' 2019-11-13 16:55:17 +01:00