Commit Graph

64 Commits

Author SHA1 Message Date
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
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 681bd0a911 GUI: Better settings for extended safe checks 2019-07-23 11:54:38 +02:00
Daniel Marjamäki 4a70208e0e GUI: Activate 'human knowledge' options 2019-07-11 21:05:52 +02:00
Daniel Marjamäki 84cc09d17c Update Copyright 2019-06-29 07:49:14 +02:00
Daniel Marjamäki 3327102aa4 GUI: Test ProjectFile::getCheckSuppressions() 2019-04-19 15:09:55 +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
alex babafd75e3 Added support for -U option to the GUI. 2018-10-09 15:05:05 +02:00
Daniel Marjamäki a0906140a6 Suppressions: New extensible Suppressions xml format that allow more attributes. To start with it also allows symbolName. 2018-04-09 06:43:48 +02:00
Daniel Marjamäki 7e4dba6a7e Updated copyright year 2018-03-31 20:59:09 +02:00
Daniel Marjamäki 9800e82d13 GUI: Allow that platform is selected in project dialog 2018-03-13 13:07:10 +01:00
Daniel Marjamäki c4caee6b18 Updated copyright year 2018-01-14 15:37:52 +01:00
Daniel Marjamäki 791f6ecbec GUI: Add 'Clang Analyzer' option 2017-09-22 18:57:53 +02:00
Daniel Marjamäki 6ddcfc3d1c GUI: Updated handling of clang and clang-tidy 2017-09-22 15:41:27 +02:00
Daniel Marjamäki 330ceccdc9 GUI: Rework handling of tags. The allowed tags are now userdefined in the project file 2017-08-18 17:25:08 +02:00
Daniel Marjamäki 018d59b393 GUI: Fix bug when loading project file 2017-08-10 11:15:18 +02:00
Daniel Marjamäki 0561d59d28 GUI: Added checkbox 'Analyze all Visual Studio configurations' in the projectfile dialog 2017-08-10 00:18:04 +02:00
PKEuS b4cf79f1b7 GUI: Refactorizations 2017-08-03 12:43:44 +02:00
Daniel Marjamäki dfc48be70e Fixed #2363 (GUI: Using addons in the checking) 2017-08-03 12:30:28 +02:00
Daniel Marjamäki 037fc6e3a4 GUI: Remove Project class 2017-07-31 12:02:51 +02:00
Daniel Marjamäki 8d704f7709 GUI: Rename methods in ProjectFile 2017-07-28 05:08:59 +02:00
Daniel Marjamäki 84e6163cb8 GUI: Add cppcheck build dir 2016-11-19 20:38:50 +01:00
Daniel Marjamäki 81a38bd7ea GUI: Refactorings 2016-10-02 18:03:21 +02:00
Daniel Marjamäki f555abb0b5 GUI: Expose --project to gui 2016-08-18 21:58:50 +02:00
Lauri Nurmi 996c9244d8 Update copyright year to 2007-2016. 2016-01-01 15:34:45 +02:00
PKEuS 8f22e4924c Updated AStyle to version 2.05.1
Tweaked runastyle.bat a little bit.
2015-12-17 15:53:13 +01:00
Daniel Marjamäki 0f9d90d2be Changed Copyrights. Removed my name. 2015-11-18 20:04:50 +01:00
Daniel Marjamäki ff11ba9847 Updated copyright year to 2015 2015-01-03 12:14:58 +01:00
Daniel Marjamäki 051d42ae6b astyle formatting 2014-11-20 14:20:09 +01:00
orbitcowboy f5d804f71a running astyle 2014-11-20 10:13:03 +01:00
Daniel Marjamäki fd3a8a2a18 Update copyright 2014-02-15 07:45:39 +01:00
Daniel Marjamäki 24a9da3771 GUI: Add suppressions to project file 2013-12-30 22:32:50 +01:00
Daniel Marjamäki 9698387d3a GUI: Add libraries setting to project 2013-12-29 18:06:31 +01:00
Andrew C. Martin bd0d9b9639 fix misspellings & gcc v3.4.6 warnings
1.  fix typos / misspellings
 - Fix misspelling within comments, variable/function names, stdout messages
 - changes the name of an error code: ```stlBoundries``` changed to ```stlBoundaries```.  Alias old name (```stlBoundries```) to the new one.

2.  fix gcc v3.4.6 32bit & 64bit warnings

 - fixes gcc v3.4.6 warnings, except for those in tinyxml and "-Wmissing-declarations" makefile warnings
 - in Preprocessor::handleIncludes(), replace a ```vector <bool>``` with ```stack<bool>``` (see ```vector<bool>``` warning below).
   - this is the only ```vector<bool>``` in the codebase
 - ```vector <bool>``` is actually a case of template specialization, and is not recommended, according to the following links:

http://stackoverflow.com/q/6461487
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2160.html
http://stackoverflow.com/q/670308

 - in the codebase before and after this change, testrunner SEGVs in a number of places on gcc v3.4.6, including ```Check::~Check()```, among others
   - fc42fc95 fixes this particular runtime issue for DJGPP & __sun
2013-02-09 23:43:09 -07:00
Reijo Tomperi 5d5f7085bf Updating year 2012 -> 2013 to .cpp and .h files and man page. 2013-01-01 18:29:08 +02:00
Reijo Tomperi 8cae17fda8 Update year to 2012 2012-01-01 01:05:37 +02:00
Daniel Marjamäki 6f8e42a5af changed the astyle formatting flags 2011-10-13 20:53:06 +02:00
Kimmo Varis 4998c913da GUI: Rename Ignore-feature to Exclude-feature.
Exclude is the correct term to use when removing paths from the
list of checked items. Ignore as a term was a poor choise to begin
with. XML file reading still recognizes and reads  the 'ignore'
element but writes 'exclude' element.

Ticket: #2995 (GUI: Rename ignore-feature to exclude-feature)
2011-08-23 20:44:04 +03:00
Kimmo Varis 1c4e9c662b GUI: Show native path separators.
Show native path separators in project file-dialog. Convert paths
to internal separators when reading from project file and when
reading from the dialog. Convert to native separators when adding
to the dialog (for the user).
2011-02-28 17:18:14 +02:00
Kimmo Varis ae11b064c8 GUI: Small cleanup for projectfile code. 2011-02-28 16:21:03 +02:00
Kimmo Varis 6fc90d1f18 GUI: Write ignore paths to project file. 2011-02-28 16:08:14 +02:00
Kimmo Varis 46f7a81b7b GUI: Take filtering into use in GUI.
Add applying of filtering into list of files to check if we have
an active project file. Filtering is quite much similar to the
filtering in CLI.

If we have directory filter ("gui/") then we check all paths if
they contain "gui" part. In practice we search for string "/gui"
from the paths. If we have filename filtering
("gui/projectfile.cpp") then we check if any of the paths end
with that.
2011-02-28 00:13:28 +02:00
Kimmo Varis e81fa46699 GUI: Convert some projectfile method arguments const. 2011-02-27 18:53:57 +02:00
Kimmo Varis d6f6da10fa GUI: Add ignored paths support to project file.
This patch adds support for ignored paths in the project file.
There is new <ignore> element which can contain one or more
<path> elements with name attribute containing the path to
ignore.
2011-02-27 18:32:53 +02:00
Reijo Tomperi 226b605774 Change year 2010 -> 2011 in license texts. 2011-01-09 21:33:36 +02:00
Kimmo Varis 1e7694d56b GUI: Add new optional root-element to project file.
Add support for new root-element to project file. This element
defines project root directory if given. If not given then project
root is directory where the project file is located.
2010-08-20 23:58:00 +03:00