IOBYTE
6b4a3bc830
fix #9431 (Invalid syntax error on valid C++ code) ( #2298 )
2019-10-26 17:39:46 +02:00
Sebastian
8fb794e731
libsigc++.cfg: Add configuration for library libsigc++ ( #2291 )
...
* libsigc++.cfg: Add configuration for library libsigc++
Reference: https://libsigcplusplus.github.io/libsigcplusplus/
* Make code compatible with libsigc++-2.0 instead of 3.0
Since Version 3.0 C++14 is required which is not (fully) supported in
some older GCC versions.
2019-10-26 17:37:14 +02:00
Rikard Falkeborn
224ae3c326
Bump simplecpp ( #2297 )
2019-10-26 17:30:04 +02:00
Georgy Komarov
b35091b827
misra.py: Fix 18.8 crash on checking undefined id ( #2299 )
2019-10-26 17:29:38 +02:00
Georgy Komarov
72f07c8a33
Add MISRA checks for rules 21.1 and 21.12 ( #2284 )
...
* Add MISRA 21.1 check
This also required add static field for functions in symboldatabase.
* Add MISRA R21.12
* Use newer ASSERT macroses in tests
2019-10-26 08:32:46 +02:00
Daniel Marjamäki
37bb19f02c
Verify: Fix a false negative in the itc test suite
2019-10-25 21:46:02 +02:00
Maksim Derbasov
48012aceb4
test-my-pr.py: several improvements ( #2294 )
...
* test-my-pr.py: specify remote branch explicitly
When I merged (local) branch to master, `merge-base` returned me not valid commit hash.
* donate_cpu_lib.py: strip filename properly
* test-my-pr.py: reduced packages count; reduced output
* donate_cpu_lib.py: fix previous change
2019-10-24 21:54:22 +02:00
Wolfgang Stöggl
1ea3fc8083
Allow SSIZE_T in addition to ssize_t ( #2263 )
...
The Windows Data Type SSIZE_T is declared in BaseTsd.h
However, it is written in capital letters
- Fixes e.g. the following false positive:
(portability) %zd in format string (no. 1) requires 'ssize_t' but the
argument type is 'SSIZE_T {aka signed long long}'.
[invalidPrintfArgType_sint]
2019-10-24 21:51:20 +02:00
Daniel Marjamäki
fbd59b2fc5
Verify: Add test script itc.py. clarify juliet.py test script
2019-10-24 21:48:34 +02:00
Daniel Marjamäki
8cfc833381
ExprEngine: Better handling of container arguments
2019-10-23 22:04:48 +02:00
Daniel Marjamäki
dedee2b173
SymbolDatabase: Better ValueType handling for containers
2019-10-23 19:54:59 +02:00
Daniel Marjamäki
052c02f8ee
ExprEngine: Refactoring
2019-10-23 18:42:40 +02:00
Daniel Marjamäki
bcfc0d32fe
ExprEngine: ::
2019-10-23 18:23:25 +02:00
Daniel Marjamäki
7b50b76b89
ExprEngine: container value
2019-10-23 18:06:10 +02:00
Daniel Marjamäki
e879de6489
Verify: Update Juliet Testing
2019-10-23 16:49:45 +02:00
Daniel Marjamäki
4d218d1b47
ExprEngine: Clarify output
2019-10-23 16:40:49 +02:00
Daniel Marjamäki
87f65230ae
SymbolDatabase: Better valuetype handling of container addition
2019-10-23 12:42:46 +02:00
Daniel Marjamäki
f131a99ae3
SymbolDatabase: Improved ValueType in range for loop
2019-10-23 11:52:29 +02:00
Maksim Derbasov
2500964b58
[tools] test-my-PR functionality ( #2288 )
...
* test my PR functionallity
* Improvement for test-my-pr script
* test-my-pr align master with branch
2019-10-23 09:12:15 +02:00
Daniel Marjamäki
c5c07b61a6
SymbolDatabase: Fix type for expression 'x = uint8_t(a[b])'
2019-10-22 20:40:36 +02:00
Daniel Marjamäki
cf1dd2e6f6
AST: Fix AST when returning list of lambda functions
2019-10-22 18:39:59 +02:00
Daniel Marjamäki
3699227b12
ExprEngine: Throw exception if there is unhandled expression in assignment LHS
2019-10-22 18:39:59 +02:00
Sebastian
3e4dd9b354
cmdlineparser.cpp: printHelp(): Replace deprecated option in example ( #2290 )
...
`--std=posix` is deprecated and will be removed in the future.
See commit cb06aebdab
.
2019-10-22 15:07:30 +02:00
Sebastian
bca1192e61
std.cfg: Add some missing std::map::*() function configurations ( #2289 )
...
Reference:
https://en.cppreference.com/w/cpp/container/map/equal_range
https://en.cppreference.com/w/cpp/container/map/lower_bound
https://en.cppreference.com/w/cpp/container/map/upper_bound
https://en.cppreference.com/w/cpp/container/map/contains
2019-10-21 13:45:19 +02:00
orbitcowboy
24d6794ba6
windows.cfg: Added support for more interfaces.
2019-10-21 10:09:20 +02:00
versat
6cf0aed737
test/cfg/runtests.sh: Remove verbose output (meant for debugging)
2019-10-21 08:53:21 +02:00
Rikard Falkeborn
73a569be97
TestBufferOverRun: Handle string literals ( #2287 )
2019-10-21 07:11:22 +02:00
Rikard Falkeborn
f83eb127ae
ValueFlow: sizeof string and char literals ( #2285 )
2019-10-20 21:02:28 +02:00
Daniel Marjamäki
78c02f0505
ValueFlow: Fixed false positives after escape scope
2019-10-20 20:57:16 +02:00
Daniel Marjamäki
223ceeb97f
SymbolDatabase: Do not set constructor flag for function in namespace
2019-10-20 18:12:52 +02:00
Daniel Marjamäki
82d8f3e7f5
SymbolDatabase: Fix crash if std::shared_ptr type is only forwarded, not defined
2019-10-20 17:00:15 +02:00
Daniel Marjamäki
e50b9e2bef
Fixed #8784 (False positive uninitialized variable)
2019-10-20 15:20:05 +02:00
Daniel Marjamäki
68ea60d207
Try to make Travis happy
2019-10-20 07:44:56 +02:00
Rikard Falkeborn
5c061c1c12
Set correct type and size of string and char literals ( #2275 )
...
* Set correct type and size of string and char literals
Use that string and char literal tokens store the prefix. This makes
it possible to distinghuish between different type of string literals
(i.e., utf8 encoded strings, utf16, wide strings, etc) which have
different type.
When the tokens holding the string and character values have the correct
type, it is possible to improve Token::getStrSize() to give the correct
result for all string types. Previously, it would return the number of
characters in the string, i.e., it would give the wrong size unless
the type of the string was char*.
Since strings now can have different size (in number of bytes) and
length (in number of elements), add a new helper function that returns
the number of characters. Checkers have been updated to use the correct
functions.
Having the size makes it possible to find more problems with prefixed
strings, and to reduce false positives, for example in the buffer
overflow checker.
Also, improve the stringLiteralWrite error message to also print the
prefix of the string (if there is one).
* Add comment and update string length
2019-10-20 07:11:57 +02:00
Daniel Marjamäki
00fae7fb42
Fixed #9261 (Inconsistent violation report between using global enum and namespaced enum.)
2019-10-20 07:07:38 +02:00
Daniel Marjamäki
4943771e41
Fix #9262 (False positive on variable assignment when putting enum in namespace)
2019-10-19 21:41:50 +02:00
Daniel Marjamäki
9a2b71494f
ValueFlow: Set value for ::
2019-10-19 21:08:59 +02:00
Daniel Marjamäki
574141a492
shadowVariable: Add comment
2019-10-19 18:51:36 +02:00
Daniel Marjamäki
24db81adb5
Fixed #8903 (False positive 'shadows outer variable' when using GCC statement expressions)
2019-10-19 18:50:27 +02:00
Daniel Marjamäki
dc7cf10962
daca2-getpackages: update instructions
2019-10-19 18:49:58 +02:00
Maksim Derbasov
a7a568d75a
donate cpu server: added 2 commands ( #2283 )
2019-10-19 10:52:04 +02:00
Sebastian
f3f00d1780
donate-cpu-server.py: Use "/var/daca@home" as work path by default. ( #2281 )
...
Fall back to "~/daca@home" if "/var/daca@home" does not exist.
Print the used work path when the script starts.
This way we do not have to change the server script before uploading
it to the server while being fully backwards compatible.
2019-10-18 20:04:50 +02:00
IOBYTE
5658dfcaf3
better fix for #9392 that also handles namespaces ( #2282 )
2019-10-18 18:05:48 +02:00
Daniel Marjamäki
e0093c99ce
Fixed #9276 (False positive: ValueFlow does not handle return in switch properly.)
2019-10-18 16:16:56 +02:00
Sebastian
c8e1ca7127
donate-cpu-server.py: Fix PEP8 issues ( #2280 )
2019-10-18 12:57:51 +02:00
versat
cde08fb950
Remove accidentally added files
2019-10-18 12:53:25 +02:00
versat
094caf31ac
std.cfg: Remove redundant configurations for vector::(push|pop)_back()
...
Add tests in std.cpp to verify that a configuration for the functions
exists.
2019-10-18 12:40:10 +02:00
Sebastian
8eea046e5b
std.cfg: Add support for std::fill_n() ( #2273 )
...
Reference: https://en.cppreference.com/w/cpp/algorithm/fill_n
2019-10-18 12:24:57 +02:00
Rikard Falkeborn
6e1c7e48b6
Donate cpu server crash locations ( #2276 )
...
donate-cpu-server: Print grouped stack traces in crash report
Example output:
Packages: psi xenomai
Token::hasKnownValue (this=0x0) at lib/token.h:988
988 return mImpl->mValues && std::any_of(mImpl->mValues->begin(), mImpl->mValues->end(), std::mem_fn(&ValueFlow::Value::isKnown));
#0 Token::hasKnownValue (...) at lib/token.h:988
#1 valueFlowReverse (...) at build/valueflow.cpp:3775
#2 valueFlowBeforeCondition (...) at /usr/include/c++/8/bits/stl_list.h:301
#3 ValueFlow::setValues (...) at build/valueflow.cpp:8403
#4 Tokenizer::simplifyTokens1 (...) at build/tokenize.cpp:11095
#5 CppCheck::checkFile (...) at build/cppcheck.cpp:513
#6 CppCheck::check (...) at /usr/include/c++/8/bits/basic_string.h:936
#7 CppCheckExecutor::check_internal (...) at cli/cppcheckexecutor.cpp:884
#8 CppCheckExecutor::check (...) at cli/cppcheckexecutor.cpp:198
#9 main (...) at cli/main.cpp:95
Packages: broker
valueFlowReverse (tokenlist=tokenlist@entry=0x7fffffffbce0, tok=tok@entry=0x555555cc9930, varToken=varToken@entry=0x555555cc9b70, val=..., val2=..., errorLogger=errorLogger@entry=0x7fffffffcb20, settings=0x7fffffffcd40) at build/valueflow.cpp:3775
3775 if (!assignTok->hasKnownValue()) {
#0 valueFlowReverse (...) at build/valueflow.cpp:3775
#1 valueFlowBeforeCondition (...) at build/valueflow.cpp:4092
#2 ValueFlow::setValues (...) at build/valueflow.cpp:8406
#3 Tokenizer::simplifyTokens1 (...) at build/tokenize.cpp:11095
#4 CppCheck::checkFile (...) at build/cppcheck.cpp:513
#5 CppCheck::check (...) at build/cppcheck.cpp:197
#6 CppCheckExecutor::check_internal (...) at cli/cppcheckexecutor.cpp:884
#7 CppCheckExecutor::check (...) at cli/cppcheckexecutor.cpp:198
#8 main (...) at cli/main.cpp:95
2019-10-18 09:56:15 +02:00
Daniel Marjamäki
3a0a0fdefb
Fixed #9424 (False positive: known condition after function call)
2019-10-18 08:21:07 +02:00