Commit Graph

20458 Commits

Author SHA1 Message Date
Daniel Marjamäki 236c1955ac createrelease: automate a little more 2019-06-29 16:17:39 +02:00
rebnridgway 0d7836f3a0 Calculate token scopes in advance rather than as the tokenlist is iterated (#1882)
* Added scopeinfo member to token class

Moved ScopeInfo2 declaration here as well because that's where it needs to be now.

* Added scopeinfo accessors and declaration to class

* Add new method for calculating scopes

This replaces the methods in the TemplateSimplifier which calculate the current scope as the token list is iterated.  The old method required checking if the scope had changed for every token multiple times (for multiple iterations), which was surprisingly costly.  Calculating scopes in advance like this decreases runtime on a worst-case file by around thirty percent.
ScopeInfo objects are disposed of when the TemplateSimplification is done as they are not used later.

* Add calculateScopes method to header

* Removed code that calculated current scope

This has been replaced by code that calculates the scopes up front and stores them with each token, which is much faster.

* Fixed compile errors from extra parentheses

* Added missing code to fix memory leak

* Added code to actually clean up ScopeInfo structs

* Tidy up a dodgy for loop

* Convert argument to const ref

* Calculate missing scopes

As the templatesimplificator expands templates and does multiple passes it needs to make sure all scopes are calculated.

* Remove copying the scope to the next token

This is now done properly when scopes are calculated.

* Remove call to calculateScopes

This is now done by the TemplateSimplifier.

* Recalculate scopes for every pass of simplifyTemplates

* Add code to calculate extra scopes as they are added

I thought that this might be useful for calculating scopes when Tokens are created, but as there are several ways of creating Tokens that don't guarantee that they are placed in a list it is easier to just calculate scopes when you know you have a list and when you know you're adding to a list.

* Fix several bugs and poorly designed code

Remove the global scopes collection, and clean them up instead by iterating through the tokenlist to find them.  This means scopes can be calculated by functions in the Token class as well as in the Tokenizer class without leaking the scope object.
Fix a couple of bugs in the calculateScopes method and make it more efficient.

* Remove unnecessary calls to calculateScopes

* Move brace to correct position

Calculating scopes during insertToken only needs to happen if we created a new Token.

* Handle 'using namespace' declarations separately

This fixes a bug caused by a statement matching 'struct B < 0 > ;'

* Fix argument name mismatch

* Actually use newScopeInfo when inserting Token

* Switch to using shared_ptr to hold scopeInfos

This means ScopeInfo2 objects get properly cleaned up when they are no longer needed.

* Change ScopeInfo member to be a shared_ptr

* Update code to use shared_ptr

* Add missing include for shared_ptr

* Remove unnecessary cleanup code

This has been replaced by shared_ptr for ScopeInfo2 objects
2019-06-29 14:34:22 +02:00
Rikard Falkeborn d1d622b74c Valueflow: support global static const variables (#1861) 2019-06-29 14:33:55 +02:00
Daniel Marjamäki 090fa255e8 daca@home: use Cppcheck-1.88 as base version 2019-06-29 11:01:42 +02:00
Daniel Marjamäki 987be045b8 Update createrelease 2019-06-29 10:49:59 +02:00
Daniel Marjamäki 17c5587ac5 Restore Makefile after release 2019-06-29 10:22:35 +02:00
Daniel Marjamäki 7b3efa3f52 createrelease: Update script 2019-06-29 10:21:03 +02:00
Daniel Marjamäki 4b67780bae cppcheck.wxs: Install more --library configuration files 2019-06-29 09:51:25 +02:00
PKEuS 21f4574e74 lupdate and lrelease
Updated german translation
2019-06-29 09:50:53 +02:00
Daniel Marjamäki 069ecb0a50 1.88: Update Makefile 2019-06-29 09:24:02 +02:00
Daniel Marjamäki faaabc74a7 Set version 1.88 2019-06-29 08:38:13 +02:00
Daniel Marjamäki 4f2c0ee8ac Update AUTHORS 2019-06-29 08:34:21 +02:00
Daniel Marjamäki 341406ab17 Fixed Cppcheck warning; ::AddonInfo::getFullPath can be static 2019-06-29 07:59:55 +02:00
Daniel Marjamäki 0a41f1ad6b Fix Cppcheck warning: Suppressions::dump can be const 2019-06-29 07:53:32 +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 9c3c2d785b Fixed Cppcheck warning 2019-06-29 07:46:25 +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
Rikard Falkeborn 0d69a86bf8 Remove debug printout (#1933) 2019-06-28 22:08:32 +02:00
IOBYTE 8b347aed42 Fixed #8663 (Stack overflow with template disambiguator) (#1932) 2019-06-28 22:07:21 +02:00
Daniel Marjamäki 5f759e89b3 GUI: Show information label if Cppcheck is outdated 2019-06-28 20:13:59 +02:00
Daniel Marjamäki c2144d73b3 windows.cfg: SetClipboardData takes the data so the configuration should not say <leak-ignore>/ (https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setclipboarddata) 2019-06-28 17:30:05 +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
Daniel Marjamäki 325af2399b man: document the <smart-pointer> element 2019-06-28 17:15:53 +02:00
Daniel Marjamäki 481d94f059 reference-cfg-format: Document the direction attribute 2019-06-28 15:18:00 +02:00
IOBYTE 16788df055 template simplifier: various small fixes (#1916)
* fix adding instantiation of first argument to an instantiation

* add support for function pointer template variables

* fix more cases where templates ending in ">>" are changed to end in "> >"

* fix travis build

* standard types can't be a template parameter name

* remove redundant level == 0 checks

* fix lambda in template variable

* fix a test
2019-06-28 11:14:20 +02:00
Carlo Marcelo Arenas Belón ec4e43767e minor improvements (#1929)
* lib: isNonBoolStdType no longer needed

lib/checkbool.cpp:50:13: warning: unused function 'isNonBoolStdType'
      [-Wunused-function]
static bool isNonBoolStdType(const Variable* var)

* cmake: C++11 is required

also change instructions to a more common syntax
2019-06-28 06:57:05 +02:00
Daniel Marjamäki 243db9b69a astyle_client: reformat given source files 2019-06-27 09:24:22 +02:00
Ken-Patrick 927d139488 Fix FP #9165 (#1928)
Properly check the type of the expressions, instead of using the type
of the tokens
2019-06-27 07:48:44 +02:00
Sebastian 2c71b47d4e
Addons scripts: Remove redundant code/characters, fix indentation. (#1926) 2019-06-27 06:59:47 +02:00
Daniel Marjamäki fef7bc584d readme: Add instructions for cmake 2019-06-27 06:51:59 +02:00
Daniel Marjamäki 0f89280b94 astyle: tweaks in client 2019-06-26 20:53:59 +02:00
Daniel Marjamäki 7e68ba5a87 astyle: minor tweaks in client/server scripts 2019-06-26 20:38:21 +02:00
Daniel Marjamäki 76542509a8 astyle: Added client/server 2019-06-26 20:27:02 +02:00
fuzzelhjb 9a7ecd622c add CERT exp15-c check (#1897)
* add CERT exp15-c check

* fix false positive

* remove useless check

* fine tune check and test
2019-06-26 18:49:47 +02:00
Daniel Marjamäki cf1f353ec3 readme.md: Removed 'donations' 2019-06-26 07:43:53 +02:00
Scott Furry fc61596c40 Adjustments to CMake Building (#1925)
From CMake Docs( https://cmake.org/cmake/help/latest/variable/BUILD_SHARED_LIBS.html ),
BUILD_SHARED_LIBS may not be defined. This can result in printinfo.cmake outputing
variable without a value. A conditional is applied to ensure that some output is
provided to the user should variable not be defined.

Removed explicit C++ standard flag. Any setting user would add on the command
line would be replaced due to ordering. `-std=c++0x` would be last value added
to CMAKE_CXX_FLAGS and ultimately the one used by the compiler.
2019-06-26 07:41:48 +02:00
Georgy Komarov be5778c416 misra.py: Expand ~ in file paths (#1924) 2019-06-26 07:30:08 +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
Sebastian d745dcc0eb
gtk.cfg: Add g_error_*() functions (#1922) 2019-06-25 19:19:10 +02:00
Sebastian ba0ca5d087
addons/misra.py: Fix comparison instead of assignment (#1920) 2019-06-25 19:18:31 +02:00
Sebastian d1386112a9
addons/cppcheckdata.py: Fix missing self, and wrong assignment. (#1919)
I am not sure but it looks like "self." is missing here.
And the attribute "inconclusive" is initialized as a "bool", so i guess
"True" should be assigned here?
2019-06-25 19:16:57 +02:00
Sebastian a437a22460
windows.cfg: Add GetDlgItem() (#1921)
Reference:
https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getdlgitem
2019-06-25 15:31:42 +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
Georgy Komarov 5d58b14db8 misra.py: Update output according c97dc79 (#1917) 2019-06-25 00:42:13 +02:00
amai2012 709061ba54 Update include path 2019-06-24 20:53:19 +02:00
Daniel Marjamäki c97dc79815 --addon: Use json for addon output 2019-06-24 19:29:43 +02:00
Paul Fultz II 66e0f06494 Fixx issue 9163: FP returnDanglingLifetime - returning std::string::find (#1912)
* Fixx issue 9163: FP returnDanglingLifetime - returning std::string::find

* Use simpleMatch
2019-06-24 18:52:17 +02:00
fuzzelhjb f36d671bc5 add CERT STR03-C check (#1898)
* add CERT STR03-C check

* fix cert test
2019-06-24 18:41:43 +02:00