Commit Graph

1306 Commits

Author SHA1 Message Date
Daniel Marjamäki 14528bcf25 Library: allowed values for the buffer-size attribute: malloc/calloc/strdup 2019-03-20 06:46:55 +01:00
versat 9b6b94336c gnu.cfg: Add buffer-size to xmalloc; add some __builtin_*() functions. 2019-03-19 15:24:02 +01:00
versat bb7888e70b gnu.cfg: Add support for pvalloc() and __builtin_alloca(). 2019-03-18 11:44:35 +01:00
versat 992e1293b7 ruby.cfg: Configure rb_raise() as `noreturn` function.
rb_raise() exits the function and returns to the ruby script.
Used for example to exit a function if arguments are not valid.
2019-03-18 10:04:29 +01:00
Sebastian 19e9e42dd7
Library: Enhance minsize configuration and allow simple values. (#1736)
Some POSIX and Windows functions require buffers of at least some
specific size. This is now possible to configure via for example this
minsize configuration: `<minsize type="value" value="26"/>`.
The range for valid buffer size values is 1 to LLONG_MAX
(9223372036854775807)
2019-03-17 14:22:26 +01:00
Daniel Marjamäki 18668a52b9 Library: Added buffer-size attribute for <alloc> 2019-03-17 10:55:15 +01:00
versat 0cb45b1f42 gtk.cfg: Add more macros and some functions used in the macros. 2019-03-15 14:51:45 +01:00
versat 6f7612de03 boost.cfg: Add argument directions; some fixes; rearrange and document.
- Remove redundant function configurations for the same function since
it is not (yet) possible to configure overloaded functions. Instead mark
the optional arguments with `default="0"` so the configuration works
with a different number of arguments.
- Add documentation to boost.cfg (links and function declarations).
- Rearranged configurations so functions, defines, ... are together now.
- Add `direction` for function arguments where applicable.
- Add some tests to boost.cpp.
2019-03-15 11:13:08 +01: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
versat 7911684399 Run astyle [ci skip]. 2019-03-14 09:58:55 +01:00
versat 3d02c10fde gnu.cfg: Further fixes, enhancements and adding argument directions. 2019-03-14 09:26:27 +01:00
Sebastian Held e9f25bed3f qt.cfg: add logging macro definition (#1738) 2019-03-14 06:14:51 +01:00
versat d5c5feafb2 gnu.cfg: Fixes, enhancements and adding argument directions. 2019-03-13 16:17:16 +01:00
versat 11ee9c6b90 zlib.cfg: Fixes, enhancements and adding argument directions. 2019-03-13 15:03:11 +01:00
Sebastian 1230357146
Library: Add initial configuration with tests for SQLite3 library. (#1737) 2019-03-13 13:57:40 +01:00
orbitcowboy fd2a0f22a7 wxwidgets.cfg: Added support for more interfaces. 2019-03-13 13:41:54 +01:00
orbitcowboy 5a72d834ac wxwidgets.cfg: Added support for more interfaces. 2019-03-13 11:47:13 +01:00
orbitcowboy d0b2dd0b93 wxwidgets.cfg: Added support for more interfaces. 2019-03-12 16:43:50 +01:00
orbitcowboy 46e8c63897 wxwidgets.cfg: Added support for more interfaces. 2019-03-12 16:40:42 +01:00
orbitcowboy 948ee4668d wxwidgets.cfg: Added support for more interfaces. 2019-03-12 16:17:23 +01:00
versat 0a57b76c79 opengl.cfg: Fix size of 64 bit types. 2019-03-12 16:09:08 +01:00
versat 1b74bca973 posix.cfg: Further fixes/enhancements; adding more argument directions. 2019-03-12 13:35:06 +01:00
versat 12941721d2 posix.cfg: Further fixes/enhancements; adding more argument directions. 2019-03-12 11:41:10 +01:00
orbitcowboy 9047751de0 wxwidgets.cfg: Added support for more interfaces. 2019-03-12 11:39:18 +01:00
orbitcowboy 3b9fb54104 wxwidgets.cfg: Added support for wxPropertyGridManager::ShowHeader(). 2019-03-12 09:23:34 +01:00
versat bb6874e4c1 posix.cfg: sched_*() functions: Enhance and add argument directions. 2019-03-12 09:17:43 +01:00
orbitcowboy 2535979f76 wxwidgets.cfg: Added support for more interfaces. 2019-03-12 08:52:12 +01:00
orbitcowboy 1657439b18 wxwidgets.cfg: Added support for more interfaces. 2019-03-11 16:33:35 +01:00
orbitcowboy 00d90d94fe wxwidgets.cfg: Added support for more interfaces. 2019-03-11 16:04:43 +01:00
orbitcowboy 2814814af3 wxwidgets.cfg: Added support for more interfaces. 2019-03-11 16:00:45 +01:00
orbitcowboy 28ba142714 wxwidgets.cfg: Added support for more interfaces. 2019-03-11 15:55:25 +01:00
versat f21c3b13f1 posix.cfg: Further fixes/enhancements; adding more argument directions 2019-03-11 15:40:53 +01:00
orbitcowboy f449e75214 std.cfg: Added support for std::getline(). 2019-03-11 15:32:15 +01:00
versat 33e3ce232a posix.cfg: Fixes, enhancements and adding more argument directions.
Add `<use-retval/>` to htonl(), htons(), ntohl(), ntohs(), inet_addr()
and inet_ntoa().
Enhance argument configurations of message queue functions (mq_*()).
2019-03-11 14:11:47 +01:00
versat 7b958e788d posix.cfg: Fixes and adding more argument directions.
Fixes: The "length" argument of mmap*() and munmap() calls must be
greater than 0.
2019-03-11 11:20:07 +01:00
orbitcowboy b9d2a1291c wxwidgets.cfg: Added support for more interfaces. 2019-03-10 15:37:35 +01:00
orbitcowboy 2f6a4c3885 wxwidgets.cfg: Added support for more interfaces. 2019-03-10 15:25:25 +01:00
orbitcowboy f0d167c328 wxwidgets.cfg: Added support for more interfaces. 2019-03-10 15:18:01 +01:00
orbitcowboy 620e912bfa wxwidgets.cfg: Added support for more interfaces. 2019-03-10 15:13:45 +01:00
orbitcowboy 7dec499219 wxwidgets.cfg: Added support for more interfaces. 2019-03-10 15:11:10 +01:00
orbitcowboy 8fa4b4b7ee wxwidgets.cfg: Added support for more interfaces. 2019-03-10 14:59:39 +01:00
orbitcowboy 5426a984b3 windows.cfg: Removed TEXT()-macro support since it is already handled internally by Cppcheck. A corresponding comment was added into the configuration file. 2019-03-10 14:09:48 +01:00
orbitcowboy 279aef4456 wxwidgets.cfg: Added support for more interfaces. 2019-03-09 12:21:10 +01:00
orbitcowboy 91394c4a48 wxwidgets.cfg: Added support for more interfaces. 2019-03-09 12:19:34 +01:00
orbitcowboy f0f2d1833d windows.cfg: Added support for TEXT()-macro. Ref.: https://docs.microsoft.com/en-us/windows/desktop/api/winnt/nf-winnt-text 2019-03-09 12:07:12 +01:00
orbitcowboy 17033976f5 wxwidgets.cfg: Added support for more interfaces. 2019-03-08 18:10:38 +01:00
orbitcowboy 8bb7a899bd wxwidgets.cfg: Added support for more interfaces. 2019-03-08 18:06:09 +01:00
orbitcowboy e6a00b4dd5 wxwidgets.cfg: Added support for more interfaces. 2019-03-08 17:57:50 +01:00
orbitcowboy 6aef4a16e6 windows.cfg: Fixed wrong arg number in recv(). 2019-03-08 13:04:39 +01:00
orbitcowboy ecff903b4f wxwidgets.cfg: Added support for more interfaces. 2019-03-07 07:57:21 +01:00
orbitcowboy 7a47230983 wxwidgets.cfg: Added support for more interfaces. 2019-03-07 07:53:43 +01:00
orbitcowboy 63368d41bb wxwidgets.cfg: Added support for more interfaces. 2019-03-07 00:55:10 +01:00
Sebastian 0bab9d778b
std.cfg: Fix wprintf(), add comment to swprintf(). (#1729)
wprintf(): The format string must be initialized. So add `<not-uninit/>`
swprintf(): `<formatstr/>` should not be used because Microsoft uses the
same function with a different order of the arguments. Add comment to
document this in the library configuration also. See ticket
https://trac.cppcheck.net/ticket/4790
2019-03-06 21:13:48 +01:00
Sebastian 1fe1fc7008
gnu.cfg: Add support for non-GNU _(string) macro. (#1726)
As can be read here:
https://www.gnu.org/software/gettext//manual/html_node/Mark-Keywords.html
The _(str) macro is typically defined for a project to abbreviate the
gettext(str) call. Although this is not part of GNU it would enhance the
analysis. Cppcheck often does not know what _() is. In daca@home it is
reported thousands of times as a function without configuration.
2019-03-06 10:57:59 +01:00
versat ecba3db9cc posix.cfg: Start specifying direction for arguments to functions.
There are still many functions with arguments that need a direction
specified.
2019-03-06 10:08:46 +01:00
orbitcowboy b7c40d972b boost.cfg: Fixed typo in macro. 2019-03-05 19:00:13 +01:00
orbitcowboy 2ddba8f352 boost.cfg: Added support for BOOST_LOG_ATTRIBUTE_KEYWORD-macro. 2019-03-05 18:53:34 +01:00
orbitcowboy 8c0ab16863 std.cfg: Added support for more interfaces. 2019-03-05 18:13:42 +01:00
orbitcowboy 49937570b2 wxwidgets.cfg: Added more directions-attributes. 2019-03-05 17:45:29 +01:00
versat df73f7f355 std.cfg, windows.cfg: Move strcpy_s from windows.cfg to std.cfg.
strcpy_s belongs to the standard so it must be in std.cfg instead of
windows.cfg.
Configuration for strcpy_s has been improved and tests were added.
Found by daca@home
2019-03-05 15:33:16 +01:00
versat 0ae24b950f std.cfg: Add support for snprintf_s().
sprintf_s works very similar but it is already configured in the
windows library. Configuring sprintf_s in std.cfg leads to conflicts in
the windows configuration tests.
Found by daca@home
2019-03-05 14:44:33 +01:00
versat ce818631ab std.cfg: Add support for ctime_s(). 2019-03-05 13:57:52 +01:00
Sebastian 9efb720a98
std.cfg: Add missing argument directions as far as possible. (#1725)
I added all argument directions i know or where i was able to find
information without too much effort. When in doubt i looked at the
Microsoft SAL annotations and used similar configurations when this
made sense.
2019-03-05 13:45:41 +01:00
Sebastian 0934577dda
Library configuration: function argument direction fixes and enhancements (#1722)
* std.cfg: Add further argument directions (in, out, inout).

* testlibrary.cpp: Add test for function argument direction configuration.

* std.cfg: runastyle and add some more direction configurations.

* library.h: Add documentation for function argument direction enum.

* Do not use "direction" library information for pointer arguments.

Also fix further unmatched uninitvar messages in std configuration
tests.

* std.cfg: Add more argument direction configurations.

* test/cfg/std.c: Add test for argument direction configuration.

* astutils.cpp: Only ignore pointer arguments for out/inout arguments.

* library.h: Use suggested documentation for argument direction enum.
2019-03-04 22:57:40 +01:00
versat 0498b9ec34 opgengl.cfg: Introduce OpenGL library configuration file.
Prepare donate-cpu.py to detect OpenGL library usage but comment it
out for now.
2019-03-04 14:10:06 +01:00
orbitcowboy a4b127f6a8 wxwidgets.cfg: Added more directions-attributes. 2019-03-04 12:11:18 +01:00
orbitcowboy 782958d814 wxwidgets.cfg: Added more directions-attributes. 2019-03-04 10:53:25 +01:00
orbitcowboy 391ed97717 gtk.cfg: Added support for more macros. 2019-03-04 10:43:21 +01:00
orbitcowboy f723c6b191 wxwidgets.cfg: Added more directions-attributes. 2019-03-04 10:32:35 +01:00
orbitcowboy 794d72d776 wxwidgets.cfg: Added more directions-attributes. 2019-03-04 10:26:37 +01:00
orbitcowboy 9c7eff5b69 wxwidgets.cfg: Added more directions-attributes. 2019-03-03 18:42:17 +01:00
orbitcowboy a9658607d7 qt.cfg: Added support for some QTC_ASSERT()-macros. This fixes a bunch of 'unknownMacros'-warnings from daca@home. 2019-03-03 18:42:02 +01:00
orbitcowboy 8c6f1ca24f wxwidgets.cfg: Started to add 'direction'-attributes. 2019-03-03 18:03:18 +01:00
orbitcowboy 7d266e688c gtk.cfg: Added support for more interfaces. 2019-03-03 17:42:58 +01:00
orbitcowboy f66dde018d gtk.cfg: Added support for GTK_DIALOG-macro. 2019-03-03 17:28:05 +01:00
orbitcowboy 915280beec gtk.cfg: Added support for GTK_LABEL-macro. 2019-03-03 17:25:49 +01:00
orbitcowboy 68f4243c89 gtk.cfg: Added support for GTK_TREE_VIEW-macro. 2019-03-03 17:22:35 +01:00
Sebastian 9a5fcddb5d
Library configuration: Enable configuring the direction of arguments. (#1717)
This enhances the library configuration so the direction of function
arguments can be specified (in, out, inout).
isVariableChangedByFunctionCall() uses this information now to avoid
guessing.
2019-03-01 15:47:08 +01:00
orbitcowboy aa4265978c std.cfg: Added support for std::list::remove(). 2019-03-01 15:10:36 +01:00
orbitcowboy 16e3a0ada6 std.cfg: Added support for std::shuffle() and std::random_shuffle(). 2019-03-01 15:05:10 +01:00
versat 24739dc5f2 gtk.cfg: Add support for g_message() and similar printf like functions.
g_error() is special because it never returns.
2019-03-01 11:20:28 +01:00
orbitcowboy 9348a627e0 std.cfg: Added support for more interfaces. 2019-03-01 09:28:46 +01:00
orbitcowboy 360823203f windows.cfg: Ensure the return value is taken into account for memory (re)-allocation functions. 2019-03-01 08:58:53 +01:00
orbitcowboy 2fad53e4f8 std.cfg: Enusre the return value of realloc()-functions is taken into account. 2019-03-01 08:57:59 +01:00
orbitcowboy 910adb0076 wxwidgets.cfg: Added support for more interfaces. 2019-02-28 23:46:17 +01:00
orbitcowboy fa59cb91cb gnu.cfg: Added <use-retval/> to xrealloc() configuration. 2019-02-28 23:45:51 +01:00
orbitcowboy c0bec7ef69 wxwidgets.cfg: Added support for wxDC::DrawEllipse(). 2019-02-28 23:21:46 +01:00
orbitcowboy f70e01b2b1 std.cfg: Added (experimental) support for MIN/MAX-macros. In case it turnes out this causes unexpected side effects, they can be easily removed. 2019-02-28 23:03:38 +01:00
orbitcowboy b222ff14be gnu.cfg: Added support fo xexit(). 2019-02-28 22:55:17 +01:00
orbitcowboy 80e31755da gnu.cfg: Added support for xrealloc(). 2019-02-28 22:48:39 +01:00
orbitcowboy 43daaca19c gnu.cfg: Added support for xstrdup(). 2019-02-28 22:46:16 +01:00
orbitcowboy e6d36913c8 gnu.cfg: Added support for xmalloc() and xcalloc(). Reference: https://gcc.gnu.org/onlinedocs/libiberty/Functions.html 2019-02-28 22:36:52 +01:00
Sebastian 71b1b2dd76
std.cfg: Add support for std::vector::assign(). (#1713)
Reference:
https://en.cppreference.com/w/cpp/container/vector/assign
2019-02-28 18:43:54 +01:00
versat 7ccf4b9a0d qt.cfg: Add support for some QTimer functions.
Reference:
https://doc.qt.io/qt-5/qtimer.html
2019-02-28 16:07:11 +01:00
versat f6c3749015 gtk.cfg: Add support for g_alloca() and g_newa().
References:
https://developer.gnome.org/glib/stable/glib-Memory-Allocation.html#g-alloca
https://github.com/GNOME/glib/blob/master/glib/galloca.h
2019-02-28 15:29:37 +01:00
Martin Ettl fe402498e1 qt.cfg: Added support for Q_DECLARE_PUBLIC()-macro. 2019-02-27 15:38:31 +01:00
Martin Ettl 17c1733b0e gnu.cfg: Added support for asprintf() and vasprintf(). There is a FN with memory leak detection regarding pointer args, which is already mentioned in #8980. A comment has been added. 2019-02-27 15:17:34 +01:00
Thomas Niederberger 084c7c284e Add missing Qt macros (#1709)
Add two Qt macros that were missing
2019-02-27 15:11:34 +01:00
Sebastian 2a45d390f3
gtk.cfg: Add support for gtk_label_new(), enhance gtk_label_get(). (#1706)
References:
https://developer.gnome.org/gtk3/stable/GtkLabel.html#gtk-label-new
https://developer.gnome.org/gtk2/stable/GtkLabel.html#gtk-label-get
Found by daca@home.
2019-02-27 12:56:21 +01:00
Sebastian 13b37631a6
std.cfg: Add support for std::vector::swap() and std::swap() (#1700)
References:
https://en.cppreference.com/w/cpp/container/vector/swap
https://en.cppreference.com/w/cpp/algorithm/swap
2019-02-26 18:21:17 +01:00