Commit Graph

1768 Commits

Author SHA1 Message Date
Daniel Marjamäki f493ce16b3 astyle formatting
[ci skip]
2021-01-10 14:46:19 +01:00
Mathias Schmid cdc0ba32e4
Check if XML reader stopped because of an error. (#3034) 2021-01-10 12:10:30 +01:00
Mathias Schmid b74aa707d1
Add optional attribute "stdtype" of element "podtype" to avoid loss during library configuration save. (#3033) 2021-01-09 21:30:29 +01:00
Rikard Falkeborn bedf3118ef
library: Refactor to use enum class (#3026) 2021-01-08 10:29:01 +01:00
Oliver Stöneberg d59abfd977
fixed clang-tidy warnings (#3006)
* clang_tidy.cmake: added clang-tidy-11 to list of executables to look for

* .clang-tidy: disabled warnings we are (currently) not interested in

* fixed clang-tidy warnings
2021-01-02 23:10:27 +01:00
Oliver Stöneberg fbf5858f76
fixed and enabled several clang-tidy warnings (#2816) 2021-01-02 19:10:25 +01:00
orbitcowboy dfa98c8f17 Running astyle [ci skip] 2020-12-25 20:13:29 +01:00
Mathias Schmid 9a51fc5ba0
Add fix to support "dealloc" element in memory or resource section of library configuration. Add missing attributes to avoid loss during library configuration save. (#2978) 2020-12-25 20:08:33 +01:00
Daniel Marjamäki a493e17a6a Tweaks to use summaries in GUI 2020-12-19 20:46:00 +01:00
fu7mu4 492cba7d2f
Add Japanese Translation only (#2934)
- Add 1 new Japanese translation for newly added section
- Remove unfinished tag from Japanese translation
2020-12-05 15:25:00 +01:00
Daniel Marjamäki d7bf2213f7 GUI: Updated translations 2020-12-04 21:39:50 +01:00
Daniel Marjamäki 2530b36d9d Fixed Cppcheck warning; different argument names 2020-12-04 18:53:17 +01:00
Daniel Marjamäki aa28f3fe8c Removed Cppcheck::terminate() 2020-12-04 18:47:43 +01:00
Daniel Marjamäki 1fcc5c233d GUI: Tweak 'check unused templates' option text a bit 2020-11-23 20:25:19 +01:00
Daniel Marjamäki 4a2e082d85 Revert "GUI: restore default tab in ProjectFileDialog"
This reverts commit 39564c9e6c.
2020-11-23 20:18:06 +01:00
Daniel Marjamäki 39564c9e6c GUI: restore default tab in ProjectFileDialog 2020-11-23 19:27:14 +01:00
Daniel Marjamäki 208a4a4548 Check unused templates by default 2020-11-23 18:29:08 +01:00
Wolfgang Stöggl 8ac55a8534
Add find_package(tinyxml2) to CMake builds (#2691)
So far, the cmake files of Cppcheck needed to be patched in order to
use installed tinyxml2 instead of the bundled version of tinyxml2.
- Introduce the CMake option USE_BUNDLED_TINYXML2 with a default value
  of ON. This preserves the behavior as in the past and uses the
  bundled version under externals/tinyxml2 by default.
- Usage of the installed tinyxml2 version of a system can be enabled
  now using -DUSE_BUNDLED_TINYXML2=OFF as a cmake parameter.
- Some Linux distros do not install tinyxml2*.cmake files, which are
  required to find tinyxml2 using find_package().
  Try first using find_package(tinyxml2 QUIET) and if this fails, try
  again using find_library(tinyxml2_LIBRARY tinyxml2)
2020-11-22 08:57:07 +01:00
Daniel Marjamäki c7cbe7f2d3 rename externals/tinyxml to externals/tinyxml2 2020-11-16 09:11:53 +01:00
Wolfgang Stöggl 4a057c1813
Set _q_readonly property for online-help (#2890)
- Setting _q_readonly disables the timestamp check of the registered
  online-help.qch file
- This enables displaying of Contents and Index of the online help,
  even if the timestamp of online-help.qch is slightly different.
  Differences in the timestamp can result from packing online-help.qch
  in a cab file, when building the installer (1 or 2 seconds) or from
  installing the file under a different timezone under Linux etc.
- Remark: Qt 5.14 or newer is required to display Contents or Index,
  when the help files are readonly
2020-11-08 15:06:14 +01:00
Bernd Buschinski db3d9a79b5
Fix addons for installed cppcheck (#2873)
- getAddonFilePath is used with getDataDir, this works fine
  for a local build cppcheck, but not for a system installed one.
  As getDataDir reports the location relative to the executable (/usr/bin/)
  and the addons are localed in FILESDIR (/usr/share/cppcheck).
  Extend the search path by FILESDIR/addons to also make it work for
  the installed cppcheck version.
2020-11-01 15:11:28 +01:00
Wolfgang Stöggl 1f6cb7a54b
Remove ./ from relative paths in online-help.qhp (#2860)
- Fixes the following errors, when opening online-help.qhc using Qt
  assistant: QTextBrowser: No document for
  qthelp://cppcheck.sourceforge.net/doc/./preferences.html
  etc.
- Furthermore, ./ is not used anymore in Qt documentation:
    https://doc.qt.io/qt-5/qtassistant-simpletextviewer-example.html
  It was used previously:
    https://doc.qt.io/archives/qt-4.8/qt-help-simpletextviewer-example.html
  Example:
    <section title="Find File" ref="./findfile.html">
    ->
    <section title="Find File" ref="findfile.html">
2020-10-26 10:07:47 +01:00
Wolfgang Stöggl fa84b30444
Enable building of Qt online-help in gui.pro (#2851)
- gui.pro: Update the path of the output file, so that it is also built
  inside the help sub-directory (add $$PWD/help/ to the path):
  -o $$PWD/help/online-help.qhc
- Use qcollectiongenerator in case of Qt version < 5.12, otherwise
  qhelpgenerator
- appveyor.yml: Add %QTDIR%\bin to PATH. This allows qhelpgenerator
  or qcollectiongenerator to be found
2020-10-18 08:07:27 +02:00
Wolfgang Stöggl df9f6f38be
Look for Qt online-help file also in FILESDIR (#2844) 2020-10-11 03:49:27 +02:00
fu7mu4 2bb61b331a
Update Japanese translation (#2834) 2020-10-03 15:25:15 +02:00
Daniel Marjamäki 8d20d8afb5 Update Copyright year 2020-10-03 09:15:56 +02:00
Daniel Marjamäki e1ea2ee37d lupdate gui.pro 2020-10-03 09:08:46 +02:00
Daniel Marjamäki bca3605f77 astyle formatting 2020-09-21 19:48:04 +02:00
Oliver Stöneberg 1077b0d2a6
small compileroptions.cmake cleanup (#2817)
* compileroptions.cmake: moved common warnings to proper scope and aligned them with other build systems / fixed some -Wrange-loop-construct clang warnings

* compileroptions.cmake: use check_cxx_compiler_flag() via add_compile_options_safe() helper to avoid compiler version checks
2020-09-21 19:41:28 +02:00
Oliver Stöneberg 7189b303ae
fixed some modernize-loop-convert clang-tidy warnings (#2815) 2020-09-21 19:30:47 +02:00
firewave 57201cf8d5 gui.pro: disable precompiled headers for older VS versions 2020-09-13 23:06:45 +02:00
firewave 56c4546ede added precompiled header for qmake 2020-09-13 20:57:51 +02:00
firewave be45abe6be gui.pro: aligned qmake warnings with make ones 2020-09-13 20:57:51 +02:00
Daniel Marjamäki ebb5ff0e19
Merge pull request #2799 from jubnzv/gui-add-python-path-validation
gui: Add validation for Python path
2020-09-13 12:43:34 +02:00
Georgy Komarov a2f382464b
gui: Add more keyboard shortcuts 2020-09-12 11:56:59 +03:00
Georgy Komarov a3a2e574a5
gui: Add validation for Python path
This commit adds to cppcheck-gui validation for the path to the Python
interpreter entered by the user.
2020-09-12 11:35:00 +03:00
Daniel Marjamäki da1de50deb Clang: The clang parser import should be considered to be an experimental feature for now. There are many problems to solve. 2020-09-04 18:30:29 +02:00
Daniel Marjamäki 51a6f154e0 GUI: If DATADIR is not configured try to guess it. Try to use application path. Or look if there is a cppcheck path. 2020-08-29 21:26:49 +02:00
Daniel Marjamäki 262d37fb47 windows installer: another attempt to make help work. the 'contents' are shown now but for some reason the 'index' is not. 2020-08-28 19:05:11 +02:00
Daniel Marjamäki bb5cad42cd astyle formatting
[ci skip]
2020-08-26 10:15:09 +02:00
Daniel Marjamäki 2028591ecf Travis: Rename VariableContractsDialog::ui to VariableContractsDialog::mUI to follow naming convention 2020-08-24 22:11:07 +02:00
Daniel Marjamäki 6277eece67 Variable contracts 2020-08-24 20:57:49 +02:00
Paul 3523d2b329 Remove unused variable 2020-08-11 14:05:28 -05:00
Daniel Marjamäki d83757f1a1 astyle formatting 2020-08-05 13:58:06 +02:00
Daniel Marjamäki 9693940dad GUI: Try to fix online-help 2020-08-02 21:04:01 +02:00
Daniel Marjamäki 14dfa035c1 GUI: Try to reuse Qt Assistant to show help 2020-08-01 18:56:37 +02:00
Frank Zingsheim 686a1bec99 GUI: Add online help (CMake) 2020-07-26 00:22:28 +02:00
Daniel Marjamäki 1965f2cc9f help: update warning menu screenshot 2020-07-23 16:30:10 +02:00
Daniel Marjamäki f11a089141 help/manual: update explanations about severities 2020-07-23 16:09:24 +02:00
Daniel Marjamäki 5a99b81ed7 GUI: online-help (severities) 2020-07-22 14:31:17 +02:00
Daniel Marjamäki 5455da8fa6 GUI: Updated help (index) 2020-07-21 21:58:51 +02:00
Daniel Marjamäki ca1fcfa8bc GUI: Only suppress warnings by hash during bug hunting 2020-07-21 17:45:56 +02:00
Daniel Marjamäki 4ab04db53c Rename 'cppcheckID' to 'hash' 2020-07-21 11:27:03 +02:00
Daniel Marjamäki ae0ad17152 GUI: quick walk through in online-help 2020-07-21 10:30:50 +02:00
Daniel Marjamäki a68d9e75ef GUI: In ProjectFileDialog; updated choice of vs configurations 2020-07-20 22:06:07 +02:00
Daniel Marjamäki 5fca5830c5 astyle formatting
[ci skip]
2020-07-20 21:41:46 +02:00
Daniel Marjamäki d7f9dc25cd Quick fix for Travis problems. Skip building gui online-help. 2020-07-20 19:19:37 +02:00
Daniel Marjamäki 1c39bed5b0 buildhelp.bat: remove old script 2020-07-20 19:18:06 +02:00
Daniel Marjamäki 65742b9779 gui.pro: build help 2020-07-20 12:43:08 +02:00
Daniel Marjamäki 09241030c3 GUI: Add online help 2020-07-20 11:59:28 +02:00
Daniel Marjamäki 0a84a1fad7 GUI: Add help files that replace the gui-manual.md 2020-07-19 21:40:17 +02:00
Daniel Marjamäki 5df9cd90a6 astyle formatting
[ci skip]
2020-07-19 11:10:53 +02:00
Daniel Marjamäki 7cb65b7f67 GUI: Speedup code editor when selecting another warning in the same file 2020-07-18 18:14:55 +02:00
Daniel Marjamäki 46d997cd71 GUI; Remove unused signal ResultTree::tagged 2020-07-18 17:20:45 +02:00
Daniel Marjamäki 2b05059307 GUI; Tweaked button texts 2020-07-18 17:10:39 +02:00
Daniel Marjamäki 23008e7bc0 GUI: Add button in ProjectFileDialog to exclude a file 2020-07-18 08:56:31 +02:00
Daniel Marjamäki 744b363186 GUI; Tweaks. Add tooltips, change texts. 2020-07-18 08:23:04 +02:00
Daniel Marjamäki 2713474f56 Fixed Cppcheck warning 2020-07-17 12:25:06 +02:00
Daniel Marjamäki 9af288e1dd Fixed #9724 (GUI: The tags do not work anymore) 2020-07-16 23:03:54 +02:00
Daniel Marjamäki b249d9be31 GUI: Refactor tags 2020-07-16 20:19:36 +02:00
Daniel Marjamäki bec78a0960 GUI: Adding suppression with cppcheckId; include all relevant fields 2020-07-16 16:36:55 +02:00
Daniel Marjamäki bdb08232d7 GUI: Fix suppression of multiple cppcheck ids 2020-07-15 20:55:51 +02:00
Daniel Marjamäki 6ab4f39f52 GUI: Suppress cppcheck-id 2020-07-15 13:03:07 +02:00
Daniel Marjamäki 260c53ba6f GUI: Write cppcheck-id in xml report 2020-07-15 07:59:05 +02:00
Daniel Marjamäki 62702a6816 GUI: Use const argument 2020-07-14 18:19:03 +02:00
Daniel Marjamäki 9ff8adcc40 GUI: Remove message box when saving results even though there are no results, to prevent problems with autosave 2020-07-13 12:31:59 +02:00
Daniel Marjamäki 303032b210 gui/test/projectfile: mocked constructors 2020-06-26 20:35:18 +02:00
Daniel Marjamäki c5f9e85ee7 GUI: Add configuration for max recursion in template instantiation 2020-06-26 17:12:02 +02:00
Daniel Marjamäki 0f28e7b88e AboutDialog: Updated copyright year so we don't have to manually tweak it. Thank you Z3 library. 2020-06-14 07:36:19 +02:00
Daniel Marjamäki 37245a8179 Update copyright year 2020-06-13 16:37:12 +02:00
Daniel Marjamäki f78431caee lupdate gui.pro 2020-06-13 16:35:45 +02:00
Oliver Stöneberg 3a90341961
some CMake cleanups and additions (#2639) 2020-05-27 05:15:46 +02:00
Daniel Marjamäki 21eea1d69f Added missing include stdexcept 2020-05-24 09:16:16 +02:00
Oliver Stöneberg 37bc0483a4
made check.h less heavy (#2633) 2020-05-23 07:16:49 +02:00
fu7mu4 9587c3758e
Update Japanese Translation to 2.0 (#2656)
Add translations for Japanese only
2020-05-22 08:07:21 +02:00
Daniel Marjamäki e2ead44a2d dmake updates. externals/z3_version.h should never be added as a dependency 2020-05-19 20:14:29 +02:00
Daniel Marjamäki 64291c6b61 fix Clang execution 2020-05-19 19:17:23 +02:00
Daniel Marjamäki 32e569704b executeCommand in CppCheckExecutor or QCheckThread 2020-05-19 16:04:40 +02:00
Daniel Marjamäki 23999fece5 Try to make Travis happy 2020-05-17 23:14:47 +02:00
Daniel Marjamäki 2ef538c171 Tweak paths when executing addons in Cppcheck 2020-05-17 21:45:37 +02:00
Daniel Marjamäki 547d1b158e Fixed #9723 (GUI: inline suppressions does not work for addons) 2020-05-17 16:50:13 +02:00
Oliver Stöneberg e0e50139cb
cleaned up includes based on include-what-you-use (#2632)
* cleaned up includes based on include-what-you-use

* token.cpp: fixed -Wextra-semi-stmt warning
2020-05-10 16:45:45 +02:00
Daniel Marjamäki 08ddd84780 Update copyright year 2020-05-10 11:16:32 +02:00
Daniel Marjamäki 3e0218299b Revert "Update copyright year"
This reverts commit 6eec6c4bd5.
2020-05-10 11:13:05 +02:00
Daniel Marjamäki 6eec6c4bd5 Update copyright year 2020-05-10 11:11:34 +02:00
Daniel Marjamäki 6b00fe8a22 GUI: Run lupdate 2020-05-10 11:10:07 +02:00
Daniel Marjamäki b5094f298a Bug hunting; Add new 'incomplete' flag for error messages. Used when analysis is incomplete. 2020-05-03 17:20:38 +02:00
Daniel Marjamäki cdc530a25f GUI: When clearing results, remove files in build dir 2020-04-29 18:10:01 +02:00
Daniel Marjamäki e89f5ab593 GUI: Double click on contract to edit it 2020-04-29 17:51:25 +02:00
Daniel Marjamäki 12dfd8a5ca GUI: Show missing/added contracts in tab 2020-04-28 22:09:01 +02:00
Daniel Marjamäki 30e6214f1c Try to make Travis happy 2020-04-27 19:51:46 +02:00
Daniel Marjamäki c19a9c2ad9 GUI: Only edit contract for non-bailout warnings 2020-04-27 19:43:38 +02:00
Daniel Marjamäki dae009ca01 GUI: Try to improve usability for function contracts 2020-04-27 17:36:17 +02:00
Daniel Marjamäki f7096a2232 Bug hunting: basic handling of contracts through GUI 2020-04-27 09:08:50 +02:00
Oliver Stöneberg 1388e9385b
cleaned up setting of compiler options and a few more things in CMake (#2599)
* cleaned up compiler options related code in CMake

* moved cmake_minimum_required() and raised to latest 2.8.x version

* use proper compiler version check / print compiler version

* fixed linking of sanitized builds

* added proper version checks to newer Clang warnings and enabled them / moved tinyxml_objs flags to proper compiler

* disabled -Wdeprecated-declarations for Clang

* compileroptions.cmake: removed unnecessary check for clang++ existence - CMAKE_CXX_COMPILER_ID is determined by CMake

* printInfo.cmake: removed unnecessary message for ANALYZE_ADDRESS - LSAN is part of ASAN and enabled by default

* cleaned up if() comparisons in CMake

* added/adjusted TODOs
2020-04-22 11:04:19 +02:00
Lauri Nurmi e8c5c2b154
Show version number in Cppcheck GUI's title bar (#2615)
Also don't mark the string "Cppcheck" as translatable, as it is
questionable whether the product's name is supposed to be translated ever.
2020-04-22 09:26:21 +02:00
Oliver Stöneberg 1af959af2c
fixed -Wextra-semi-stmt Clang warnings (#2553)
* fixed -Wextra-semi-stmt Clang warnings

* adjusted REDIRECT macro to require a semicolon

* testmathlib.cpp: rolled back accidental change
2020-04-21 17:27:51 +02:00
John Coffey f9074e7b21
Added a header row including the ID to the CSV report. (#2481)
Co-authored-by: John Coffey <jcoffey@gableseng.com>
2020-04-19 18:14:16 +02:00
Oliver Stöneberg 2c1e36e63e
cleaned up includes based on include-what-you-use (#2600)
* cleaned up includes based on include-what-you-use

* check.h: trying to work around Visual Studio 2012 bug

* fixed Visual Studio compilation
2020-04-13 13:44:48 +02:00
Oliver Stöneberg 91beccb304
fixed some clang-tidy warnings in gui code (#2565) 2020-03-07 11:33:08 +01:00
versat ab836b8b7d gui/projectfiledialog.ui: Fix warning about doubly used widget name 2020-02-25 13:53:59 +01:00
Armin Müller 75b1ade316
Typos found by running "codespell" (#2542) 2020-02-17 18:28:58 +01:00
Daniel Marjamäki 0faea7ade3 GUI: ensure safeChecks.classes option is saved 2020-02-14 17:42:47 +01:00
Daniel Marjamäki 0bf9858d57 compiling; you can put z3 files in externals/z3 2020-02-11 17:42:40 +01:00
Daniel Marjamäki a7f57c2cb5 GUI: Improved 'Safe functions' 2020-02-10 21:07:14 +01:00
Daniel Marjamäki e4250f890e GUI: Show bughunting report 2020-02-10 20:24:36 +01:00
Daniel Marjamäki 4e2e944eb9 GUI: ProjectFileDialog, first tab should be activated first 2020-02-10 18:22:52 +01:00
Daniel Marjamäki 125c4832cd appveyor: download and install z3 so the gui can be built 2020-02-10 11:19:18 +01:00
Daniel Marjamäki bb701fd8be GUI: Tweak ProjectFileDialog: Bug hunting, safe class checking 2020-02-09 21:02:28 +01:00
Daniel Marjamäki 359cbdc1eb GUI: Tweak ProjectFileDialog 2020-02-05 14:45:29 +01:00
Daniel Marjamäki 25b5304efc GUI: Simple first hack to allow bughunting in the GUI 2020-02-04 21:20:43 +01:00
Daniel Marjamäki 632dc0f141 GUI: Select parser; Cppcheck or Clang 2020-02-02 10:45:42 +01:00
Daniel Marjamäki fb38e87bf4 astyle formatting
[ci skip]
2020-01-31 14:13:52 +01:00
fuzzelhjb 4690a9a25d
Check specific vs config (#2513)
* add support for selected Visual Studio configurations in the UI and the project file

* skip VS configurations that don't match the one in the project file

* rename xml tags

* disable selected VS config textbox if all VS configs should be analyzed

* on importing a VS project/solution also read all configurations

* add QListWidget for VS configurations

* auto select these configs that were loaded from the cppcheck file

* fine tune UI and handling if no VS solution/project is used

Co-authored-by: Daniel Marjamäki <daniel.marjamaki@gmail.com>
2020-01-31 14:08:38 +01:00
fuzzelhjb 074d08e39e
Check specific Visual Studio configurations (#2503) 2020-01-31 07:08:38 +01:00
Daniel Marjamäki f7a30fc99f Rename Verification => Bughunting 2020-01-18 07:25:57 +01:00
Daniel Marjamäki 4b4f7ea60b Verification; Updated report 2019-12-27 19:05:22 +01:00
Daniel Marjamäki 6890757986 Update Copyright year 2019-12-21 11:23:01 +01:00
Maksim Derbasov 68a67a910e Remove .dump file after plugins execution (#2451) 2019-12-17 08:40:59 +01:00
fu7mu4 e7f929e5dd update translation in Ja (#2426) 2019-12-05 13:26:58 +01:00
Sebastian 95bbc7a1e2
GUI: Print and log messages when addon execution fails (#2408)
This adds an entry to the "Analysis Log" and prints a message via
`qWarning()` when the execution of an addon fails because either the
process failed to finish normally (for example if python binary is not
found) or because the script has issues (for example because of an
unhandled exception).
2019-11-30 12:58:06 +01:00
Sebastian c942c24289
GUI: Fix and update translation files (#2404)
The Korean language file was missing the "language" attribute, so it was
no longer updated before.
The Russian language file had the attribute "sourcelanguage" set to
"ru_RU" which does not make sense and led to some wrong/strange entries.
The France and Korean translation files were missing the "location"
entries, so the GUI-preview with the translated text was not shown and
there were no references to the source-code.
All these errors are fixed.
For the German file I translated the new hint about addons requiring
Python being installed.
2019-11-30 11:20:49 +01: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
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
Daniel Marjamäki 81fff2edf1 Fixed #9464 (Import compile database; only check given configuration) 2019-11-09 17:51:42 +01:00
Georgy Komarov a2b101afd5 gui: update Russian translation (#2304)
* gui: update Russian translations

* gui: fix translation

* correct defines/undefunes
2019-10-29 20:03:47 +01:00
gityash01 5426138786 Update application.cpp (#2279) 2019-10-17 17:53:30 +02:00
Paul Fultz II ad8abdb0c3 Add impossible values to ValueFlow (#2186)
* Add impossible category

* Replace values

* Try to adjust known values

* Add ! for impossible values

* Add impossible with possible values

* Remove contradictions

* Add values when the branch is not dead

* Only copy possible values

* Dont bail on while loops

* Load std lib in valueflow

* Check for function calls

* Fix stl errors

* Fix incorrect impossible check

* Fix heap-after-use error

* Remove impossible values when they are lowered

* Show the bound and remove overlaps

* Infer conditions

* Dont push pointer values through dynamic_cast

* Add test for dynamic_cast issue

* Add shifttoomanybits test

* Add test for div by zero

* Add a test for issue 9315

* Dont make impossible value inconclusive

* Fix FP with shift operator

* Improve handleKnownValuesInLoop for impossible values

* Fix cppcheck warning

* Fix impossible values for ctu

* Bailout for streams

* Check equality conditions

* Fix overflows

* Add regression test for 9332

* Remove duplicate conditions

* Skip impossible values for invalid value

* Check for null

* Rename bound to range

* Formatting
2019-09-20 15:06:37 +02:00
warmsocks a56bc006b7 Fixed a typo in lib/checkother.cpp. Corrected spelling errors found by codespell. (#2170) 2019-09-11 19:21:38 +02:00
fu7mu4 bcc9f81a6e cppcheck_ja.ts is updated (#2140) 2019-09-02 18:57:50 +02:00
PKEuS ee856ca3bb Updated german translation 2019-09-01 13:37:08 +02:00
Daniel Marjamäki c32261c737 Updated copyright year 2019-09-01 11:49:43 +02:00
Daniel Marjamäki a3845b6180 GUI: Updated translations 2019-09-01 11:47:52 +02:00
Daniel Marjamäki 22d7ca648d GUI: Remove the 'Safe Checks' tab in project settings. We need to tweak these checks and settings further. 2019-08-25 18:53:01 +02:00
Daniel Marjamäki cb119f5910 Fixed #8977 (GUI : Inspecting Cppcheck results) 2019-08-23 21:27:32 +02:00
Daniel Marjamäki c7b452c4f6 GUI: keep hidden results 2019-08-22 21:32:18 +02:00
Daniel Marjamäki d661ab09ce GUI: Fixed suppressions when reanalyzing files 2019-08-19 12:59:44 +02:00
Daniel Marjamäki 5d021cb41d GUI: Revert my theme changes. The theme selection will only be for the code editor again. 2019-08-18 21:11:46 +02:00
Daniel Marjamäki 2d9a131817 Refactoring: Rename variables. Do not use leading _. Renamed 'col' to 'column' 2019-08-18 12:19:05 +02:00
Daniel Marjamäki a17f2a6f05 Compiling/Installing : The CFGDIR parameter was removed. Use FILESDIR instead. 2019-08-17 10:53:07 +02:00
Daniel Marjamäki 831f2009f5 GUI: Set current dir when starting the GUI so results are shown properly 2019-08-14 10:23:36 +02:00
Daniel Marjamäki db57769c64 Try to make Travis happy 2019-08-11 17:57:59 +02:00
Daniel Marjamäki 6c55d27f19 Fixed #9240 (GUI: Issue with file names in suppressions (undesired expansion to full path)) 2019-08-11 15:53:23 +02:00
Daniel Marjamäki 0fbbe2ff23 Refactor load/write of cppcheck project. Reuse same string constants in cli and gui. 2019-08-09 21:15:02 +02:00
Daniel Marjamäki 16dc8a0540 GUI: Suppressing addon warnings 2019-08-09 19:00:09 +02:00
Daniel Marjamäki 6b662c7353 Fixed #8777 (GUI: Wrong platform used and shown in "Analysis Log") 2019-07-29 11:22:57 +02:00
Scott Furry 88e2e82039 Correct Signal/Slot signatures (#2035)
Previous commit had updated declarations in Code Editor Style Dialog to use
const QColor& and const QFont::Weight& variables. This change was not totally
complete as const usage was not propagated to Signal/Slot connect statements.

This commit corrects that oversight.
2019-07-25 08:29:42 +02:00
Daniel Marjamäki 37a345c7d0 Fixed constParameter warnings 2019-07-24 08:30:36 +02:00
Daniel Marjamäki 3ec45acc43 astyle formatting
[ci skip]
2019-07-24 08:22:12 +02:00
Daniel Marjamäki 46686c6c20 GUI: Fix test-projectfile testing 2019-07-23 18:09:00 +02:00
Daniel Marjamäki 681bd0a911 GUI: Better settings for extended safe checks 2019-07-23 11:54:38 +02:00
Daniel Marjamäki 8f9912d245 gui.pro: added -Wno-deprecated-declarations 2019-07-23 10:35:20 +02:00
Daniel Marjamäki dab0845ef1 Travis: Revert width=>horizontalAdvance change to fix CI 2019-07-23 10:28:45 +02:00
Daniel Marjamäki 896d953aa3 GUI: Fix a few Wdeprecated warnings 2019-07-22 22:40:11 +02:00
Daniel Marjamäki 70e0c66c35 GUI: Use theme in whole program 2019-07-22 15:55:51 +02:00
Daniel Marjamäki 82c6a72b48 Rename variable pDlg to dlg 2019-07-22 12:50:42 +02:00
Daniel Marjamäki 40600cbc38 GUI: Fixed build directory, use project file path by default 2019-07-17 16:01:54 +02:00
Daniel Marjamäki 97838f104c Fixed #8517 (GUI: Can't copy filename with right click) 2019-07-15 12:58:25 +02:00
fu7mu4 8e4f0c2d89 Update japanese translation (#1997)
* add MATCHCOMPILER=yes flag into readme in Japanese

* remove Donations from readmeja.md

* add cmake instructions in Japanese

* minor improvement in Japanese

* add Japanese translation on gui/cppcheck_ja.ts
2019-07-15 08:47:11 +02:00
Daniel Marjamäki 4854f0034d Fix Cppcheck warning 2019-07-14 22:55:35 +02:00
Wolfgang Stöggl 1c32455ae1 Fix some typos (#1983) 2019-07-12 17:55:44 +02:00
Daniel Marjamäki 68a48daf1f Fix Cppcheck warning 2019-07-12 08:27:10 +02:00
Daniel Marjamäki 4a70208e0e GUI: Activate 'human knowledge' options 2019-07-11 21:05:52 +02:00
Daniel Marjamäki 8eaa50c050 GUI: Tweak the 'Human knowledge' tab 2019-07-11 14:00:46 +02:00
Daniel Marjamäki e0f258db0c GUI: Start adding some 'human knowledge' configuration options 2019-07-11 10:27:18 +02:00
Scott Furry da213d1534 More Zero/Null as pointer constant corrections (#1947)
Further to pull request #1938. Changes were missed in previous commit.

Resolve warnings `warning: zero as null pointer constant` in code by
using C++ 11 recommended `nullptr`.
2019-07-02 20:37:44 +02:00
Scott Furry e459762bcd Suppress Code semantic and syntax warnings (#1936)
Sources were built with Clang but with increased verbosity of error detection.

A number of syntax and semantic warnings were encountered. Commit adds
changes to correct these warnings.

Some changes involve removing extra, and unncessary, semi-colons at EOL
(e.g. at end of switch clause).

Project astyle settings are not currently setup to detect if a file is to
have an extra carriage return after the last line of data. Two files were
altered to ensure an extra carriage return.

An advisory to enhance code was encountered in triage code. Clang advisory
on a for-loop interation value suggested that:
`use reference type 'const QString &' to prevent copying`
2019-06-30 21:43:25 +02:00
Scott Furry a195477470 Correct Zero/Null as pointer constant (#1938)
Building with enhanced clang warnings indicated a large number of
instances with the warning:

`warning: zero as null pointer constant`

Recommended practice in C++11 is to use `nullptr` as value for
a NULL or empty pointer value. All instances where this warning
was encountered were corrected in this commit.

Where warning was encountered in dependency code (i.e. external library)
no chnages were made. Patching will be offered upstream.
2019-06-30 21:39:22 +02:00
PKEuS 21f4574e74 lupdate and lrelease
Updated german translation
2019-06-29 09:50:53 +02:00
Daniel Marjamäki 84cc09d17c Update Copyright 2019-06-29 07:49:14 +02:00
Daniel Marjamäki d8daca30bf lupdate gui.pro 2019-06-29 07:47:36 +02:00
Daniel Marjamäki 0ab3d07f75 Revert "GUI: Show information label if Cppcheck is outdated"
I plan to add something like this again after the release.
2019-06-28 22:36:19 +02:00
Daniel Marjamäki 5f759e89b3 GUI: Show information label if Cppcheck is outdated 2019-06-28 20:13:59 +02:00
Scott Furry 6d3d44835a Add keyboard shortcuts for CodeEditor Widget (#1931)
Functionality for `copy` and `select all` text already exists as part
of widget construction. Commit adds connection of those existing
functions to execution with keyboard shortcuts user would normally expect.
(e.g. CTRL+C for copy text)

Qt does translation of keyboard shortcuts for platform
(i.e. Mac OS uses command key rather than control).
2019-06-28 17:17:24 +02:00
Scott Furry 158194d923 Propagate Monospaced Font to Line Number Area in Code Editor (#1923)
Styling change missed in #1913.
2019-06-25 20:22:02 +02:00
versat b1e2b9d61b astyle formatting
[ci skip]
2019-06-25 15:29:15 +02:00
Daniel Marjamäki b0e56f873f GUI: Use --cli option when running addons to get results in json format 2019-06-25 01:22:50 +02:00
Scott Furry 0d76d078e2 Implement User Selectable Code Editor Style in cppcheck-gui (#1913)
Building on #1874, commit adds user controls to choose
or edit style in cppcheck-gui ONLY. Commit does not
address CodeEditor style usage in triage app at this time.

Code Editor style can be altered from the added "Code Editor"
tab in the user preferences. The user has the option to select
default light, default dark, or to customize.

If user leaves the style set to light or dark defaults, this
will be reflected in the choices shown in the preferences
dialog.

User choice for Code Editor Style is saved in the cppcheck-gui
preferences under the heading "EditorStyle".
2019-06-23 19:04:53 +02:00
Daniel Marjamäki 0947a36c4f astyle formatting
[ci skip]
2019-06-08 07:24:38 +02:00
Scott Furry 32f45490e2 CodeEditor Widget Styling (#1874)
* CodeEditor Widget Styling

With profileration of Qt5 styling methods, problems with presentation
can occur when using cppcheck-gui and user choosen themes. With a dark
theme, a highlighted line in the CodeEditor appears with white text on
a light background or dark colors on a dark background.

Commit makes changes to enforce a default style on the Code Editor widget.
Mechanism is provided, if desired, where a user defined styling can
be provided to CodeEditor widget.

* CodeEditor Widget Styling

With profileration of Qt5 styling methods, problems with presentation
can occur when using cppcheck-gui and user choosen themes. With a dark
theme, a highlighted line in the CodeEditor appears with white text on
a light background or dark colors on a dark background.

Commit makes changes to enforce a default style on the Code Editor widget.
Mechanism is provided, if desired, where a user defined styling can
be provided to CodeEditor widget.

2nd commit - remove declarations in gui/codeeditorstyle.h to possibly
resolve appveyor window builds.
2019-06-08 07:23:48 +02:00
Scott Furry a5c1884810 Minor changes to gui code to silence repeated build warnings (#1872)
Compile of gui would result in repeated warnings from two conditions:

1) gui/erroritem.h:104:30: warning: extra ‘;’ [-Wpedantic]
Message points to Qt Macro Q_DECLARE_METATYPE usage.
Semi Colon at EOL removed.

2) gui/resultstree.h:201:10: warning [-Woverloaded-virtual]
Message is indicating that function ResultsTree::selectionChanged
is being iterpreted as overloading function of the same name
in base clase (QTreeView::selectionChanged).
Refactored - function renamed to ResultsTree::treeSelectionChanged
2019-06-05 10:13:37 +02:00
Scott Furry dc5a38e61c Modify Qt5 CMake and include Qt Charts Option (#1837)
Update CMake search for Qt5 componets to be consistent
with recommended practice from Kitware.
(see https://blog.kitware.com/cmake-finding-qt5-the-right-way/)

Incorporate ability to build cppcheck-gui with Qt Charts
via CMake switch. Option "WITH_QCHARTS" will enable
search for Qt Charts to Qt5 component search and add
build flag "HAVE_QCHART".
2019-05-17 10:17:51 +02:00
Daniel Marjamäki 5b07901253 GUI: Add C++20 option 2019-05-05 10:44:09 +02:00
Daniel Marjamäki 0053476bef Fix Cppcheck warnings 2019-04-30 01:46:02 +02:00
Daniel Marjamäki ff8cf4fe25 gui/test: Add projectfile test 2019-04-20 19:07:14 +02:00
Daniel Marjamäki 3327102aa4 GUI: Test ProjectFile::getCheckSuppressions() 2019-04-19 15:09:55 +02:00
Daniel Marjamäki ae3e53f391 Travis: Try to fix gui/test 2019-04-19 13:45:14 +02:00
Daniel Marjamäki 91c000c09d Travis: Try to reactivate the gui/test tests 2019-04-19 11:57:52 +02:00
Daniel Marjamäki 93b27b2022 cleanup gui/test 2019-04-19 09:41:58 +02:00
Daniel Marjamäki d89923386d Removed gui/test/xmlreport 2019-04-19 08:41:48 +02:00
Daniel Marjamäki fee01099a9 GUI: Fix tests 2019-04-19 07:39:43 +02:00
Daniel Marjamäki b2e3af5869 Fixed #8637 (GUI: Supression filename should accept relative paths) 2019-04-18 09:52:29 +02:00
Daniel Marjamäki ccc830870c GUI: Updated selection of files/folders. Prefer relative paths. 2019-04-16 10:32:34 +02:00
Daniel Marjamäki a0dd853642 analyzing one vs config (first debug config that matches platform) 2019-04-13 20:01:40 +02:00
Daniel Marjamäki d7e08ce75f GUI: Refactoring handling of setting for c++/c std 2019-04-12 12:12:12 +02:00
Daniel Marjamäki f7be03fcbc GUI: removed -std=posix and added -std=c++17 2019-04-12 11:52:28 +02:00
Daniel Marjamäki dfe417c369 msvc compatibility: /constexpr/const/ 2019-04-11 21:06:37 +02:00
Daniel Marjamäki 3c1f6ae5c2 appveyor: /constexpr/const/ 2019-04-10 21:27:07 +02:00
Daniel Marjamäki 37c540b380 Use constexpr 2019-04-10 16:54:16 +02:00
Daniel Marjamäki f6b410b469 GUI: add setting for 'checkHeaders', 'checkUnusedTemplates' and 'maxCtuDepth' to project 2019-04-10 16:49:24 +02:00
Daniel Marjamäki 7237acdb47 GUI: In the project dialog select libraries in a listbox 2019-04-06 16:44:43 +02:00
Sebastian 08d41ab8af
Load std.cfg before all other libraries (#1740)
- CLI: Save the libraries that should be loaded to a list and load them
after the std.cfg has been loaded.
- GUI: Load std.cfg (and windows.cfg / posix.cfg when applicable) before
setting other options and loading the other libraries.
In the project-file-dialog the std.cfg is searched first. If some
other library fails to load is is retried with first loading std.cfg.
- boost.cfg: Enable containers that depend on std containers.
2019-03-15 06:59:37 +01:00
Daniel Marjamäki 6717f49f20 Try to give some credit to the 3rd party libraries we use. 2019-02-10 17:16:53 +01:00
Daniel Marjamäki bd7790fd8c Update copyright year 2019-02-09 07:24:06 +01:00
Daniel Marjamäki 7ac43eda79 lupdate gui.pro 2019-02-09 07:20:17 +01:00
Lauri Nurmi a7a0a54557 Show a clear button in the Quick Filter text field in GUI. (#1603) 2019-01-15 10:35:23 +01:00
Daniel Marjamäki f629fa3d66 Fix Cppcheck warning
[ci skip]
2019-01-12 18:29:34 +01:00
amai2012 e259e7bc6c #8626 twin include. Remove redundant include 2018-12-31 19:47:23 +01:00
Oliver Schode 1dd4c7a71e Fixed typo in warning about modified variable inside assertion (#1542) 2018-12-28 15:24:50 +01:00
Sebastian b51f19d530
Fix some doxygen warnings/issues in the comments (#1537) 2018-12-21 21:23:03 +01:00
fu7mu4 2abb3aa263 fix japanese translation typo and manual version (#1515) 2018-12-09 09:06:56 +01:00
Daniel Marjamäki d9db20db96 Update copyright year 2018-12-08 07:53:28 +01:00
Daniel Marjamäki 7ad93fa1a2 lupdate 2018-12-08 07:51:03 +01:00
Daniel Marjamäki 2c5a31594c fix argument name 2018-12-08 07:37:27 +01:00
Daniel Marjamäki f5c2abaefa Fix shadow warning 2018-11-19 10:21:02 +01:00
Markus Elfring 02c2018f25 Addition of a null pointer check in ProjectFileDialog::removeSuppression() (#1457)
The function “QListWidget::takeItem” is documented in the way
that a null pointer can be returned. This result was not checked
by the function “ProjectFileDialog::removeSuppression” so far.
Thus add a corresponding check so that an inappropriate pointer access
should not happen any more here.

Link: https://sourceforge.net/p/cppcheck/discussion/development/thread/d1d0b65245/#a1bf
Link: https://trac.cppcheck.net/ticket/8814
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
2018-10-29 14:21:56 +01:00
Daniel Marjamäki 4533eb0bd6 GUI: cleanup the code 2018-10-22 21:00:04 +02:00
tompollok ae657d49e8 enable AA_UseHighDpiPixmaps (#1446)
enables AA_UseHighDpiPixmaps for less pixeled icons on 4K displays
2018-10-22 19:07:02 +02:00
Daniel Marjamäki 1a75084d75 GUI: Refactor comparisons 2018-10-20 16:30:40 +02:00
fu7mu4 b31b4706c5 cppcheck_ja.ts is updated (#1435) 2018-10-17 16:03:41 +02:00
Alexander ee2cea026a Fixed bug with incorrect platform used for check if check is run from UI and platform settings is taken from xml file. (#1434) 2018-10-17 12:44:41 +02:00
Markus Elfring 937da6bd46 Put XmlReportV2 object on the stack in ResultsView::readErrorsXml() (#1430)
Dynamic memory allocation was used for a XmlReportV2 object
in the function “ResultsView::readErrorsXml”.
This object was put on the stack instead so that this software
became a bit safer and more efficient.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
2018-10-17 06:38:14 +02:00
Daniel Marjamäki 7833ade128 Updated copyright year 2018-10-13 18:20:31 +02:00
Daniel Marjamäki f9157f2aeb lupdate gui.pro 2018-10-13 18:17:43 +02:00
PKEuS 8f32811b80 Updated german translation 2018-10-13 09:31:02 +02:00
alex babafd75e3 Added support for -U option to the GUI. 2018-10-09 15:05:05 +02:00
Daniel Marjamäki 59731d70e8 triage: set error line properly 2018-09-01 06:39:22 +02:00
Daniel Marjamäki c4000b27f8 Fix Cppcheck warning 2018-08-11 15:31:26 +02:00
Matthias Krüger 017f910c57 gui: fix 2 findings by cppcheck
[gui/projectfiledialog.h:283]: (performance) Function parameter 'shortText' should be passed by const reference.
[gui/projectfiledialog.cpp:675]: (performance) Function parameter 'shortText' should be passed by const reference.

also run dmake
2018-08-09 09:43:11 +02:00
Daniel Marjamäki 9e3b392ec6 GUI: Edit existing suppression in the project file dialog 2018-08-09 06:50:35 +02:00
Daniel Marjamäki ddf7b186bb GUI: Cleanup non-existing projects from the MRU 2018-08-08 11:03:51 +02:00
Daniel Marjamäki f68f793256 GUI: load other results when open recent project 2018-08-08 09:07:05 +02:00
Daniel Marjamäki 90a3759479 Refactoring: early return 2018-08-08 09:00:04 +02:00
Daniel Marjamäki b66af545ca GUI: cleanup the details window 2018-08-07 10:45:00 +02:00
Daniel Marjamäki a24c3b1d36 Fix GUI build 2018-08-05 14:25:43 +02:00
fu7mu4 41d4a6bde6 update cppcheck_ja.ts for 1.84 (#1306) 2018-07-13 22:49:30 +02:00
Daniel Marjamäki 8c228c6ced GUI: better handling of suppressions 2018-07-01 14:24:37 +02:00
Daniel Marjamäki 5e34847592 GUI: Use relative paths in analysis 2018-07-01 08:00:05 +02:00
Daniel Marjamäki db6f4f4a3b Fix a few 'const reference' warnings by Cppcheck 2018-06-23 23:04:54 +02:00