Alexander Mai
|
96531d6ffe
|
TokenList::createAst() doesn't validate itself anymore. Remove some duplicated code and fix glitch in TestGarbage::garbageCode162
|
2015-12-12 20:01:03 +01:00 |
Daniel Marjamäki
|
9cb8e9a07e
|
Revert "Fixed #3923 (valueFlowForward: assignment in if should not cause bailout for code in else)"
This reverts commit 04f9b71281 .
|
2015-12-12 16:50:02 +01:00 |
Alexander Mai
|
5b2dacb4b4
|
Correct travis and compiler warnings and comments
|
2015-12-12 16:08:52 +01:00 |
Daniel Marjamäki
|
04f9b71281
|
Fixed #3923 (valueFlowForward: assignment in if should not cause bailout for code in else)
|
2015-12-12 15:50:33 +01:00 |
Alexander Mai
|
9a847d7b14
|
#7208 Cppcheck hangs with 100% CPU load in CheckOther::checkNegativeBitwiseShift (invalidcode). TokenList::validateAst() is running consistency checks on AST
|
2015-12-12 15:39:38 +01:00 |
PKEuS
|
51bb76c5b5
|
Optimization: Skip over expression in brackets in Tokenizer::isFunctionParameterPassedByValue()
|
2015-12-10 15:53:14 +01:00 |
PKEuS
|
37572dc109
|
Small refactorizations:
- Improved formatting of unhandled-char-constant message (Side-effect: fixes #7206)
- Replace nr="-1" by nr="any" in windows.cfg
|
2015-12-10 15:47:46 +01:00 |
Daniel Marjamäki
|
61da95010c
|
Removed unused CppCheck::replaceAll()
|
2015-12-10 13:32:36 +01:00 |
Daniel Marjamäki
|
1f16e72b19
|
Removed --debug-fp. The reduce tool should be used instead.
|
2015-12-10 10:44:36 +01:00 |
Akhilesh Nema
|
932f6ea81b
|
Cppcheck hangs with 100% CPU load in TemplateSimplifier::checkComplicatedSyntaxErrorsInTemplates (invalidcode)
|
2015-12-09 14:00:40 +01:00 |
Dmitry-Me
|
28bf944d81
|
Remove redundant checks
|
2015-12-09 11:10:56 +03:00 |
orbitcowboy
|
eead6862cc
|
Merge pull request #718 from Dmitry-Me/cacheAndReuse3
Cache and reuse value
|
2015-12-08 15:07:59 +01:00 |
Daniel Marjamäki
|
e88a1b0915
|
astyle formatting
|
2015-12-08 14:23:26 +01:00 |
Dmitry-Me
|
f96484b609
|
Cache and reuse value
|
2015-12-08 10:36:03 +03:00 |
Albert ARIBAUD (3ADEV)
|
b8dd71c577
|
Factorize toxml() into a single member function
lib/symboldatabase.cpp and lib/tokenize.cpp both
define a static toxml() function. Make it a single
static ErrorLogger::toxml() member function.
|
2015-12-07 18:21:01 +01:00 |
Akhilesh Nema
|
ca3c19c63d
|
GUI: Fixed compiler warnings
|
2015-12-07 11:24:54 +01:00 |
PKEuS
|
57e9954390
|
Merge pull request #715 from Dmitry-Me/eliminateRepeatedLookup3
Remove repeated lookup
|
2015-12-07 10:47:37 +01:00 |
amai2012
|
7129b1c5b3
|
Merge pull request #716 from Dmitry-Me/betterVariableName7
Better variable name
|
2015-12-07 10:35:34 +01:00 |
Dmitry-Me
|
67f0301f0b
|
Better variable name
|
2015-12-07 12:21:17 +03:00 |
Dmitry-Me
|
f00a73f1a1
|
Remove repeated lookup
|
2015-12-07 11:57:04 +03:00 |
Alexander Mai
|
26b699fd30
|
Fix compiler warnings about incomplete handling of library error codes
|
2015-12-06 12:52:49 +01:00 |
Alexander Mai
|
9d8dffbd79
|
#6269 false positives in case of overloaded standard library functions. Detect memset() with proper argument cound, using new function numberOfArguments()
|
2015-12-06 12:50:05 +01:00 |
PKEuS
|
eb27d3b877
|
Refactorization: Moved condition out of loop and ran AStyle
|
2015-12-06 10:40:22 +01:00 |
Alexander Mai
|
98f2cd021e
|
#7199 SymbolDatabase::validate() should be run in debug mode and print debug messages. In turn correct some test examples with invalid code.
|
2015-12-06 08:14:04 +01:00 |
Alexander Mai
|
5cf923d091
|
Don't run SymbolDatabase::validate on --debug. Replace some NULL by nullptr
|
2015-12-05 21:07:03 +01:00 |
Alexander Mai
|
ba0859e838
|
#6981 crash in checkvaarg.cpp (with possible fix). Avoid segfault. Add SymbolDatabase::validate() to allow validating smyboldatabase
|
2015-12-05 20:55:26 +01:00 |
Alexander Mai
|
5ddc5c0798
|
#7187 internal error; unhandled char constant \e. Support \e char literal support by clang,gcc,tcc
|
2015-12-05 18:53:03 +01:00 |
Alexander Mai
|
86c9387987
|
#7182 crash: CheckMemoryLeak::functionReturnType()
|
2015-12-05 18:43:29 +01:00 |
Alexander Mai
|
e69377d5a8
|
#7183 CheckClass::checkMemset() uint overflow. Plus some minor refactoring
|
2015-12-05 18:22:01 +01:00 |
Alexander Mai
|
6ae1533cb4
|
#7190 Cppcheck hangs with 100% CPU load in Tokenizer::simplifyAttribute (invalidcode). Call validate() once more in Tokenizer::simplifyTokenList1 to trigger invalid code exception
|
2015-12-05 13:55:33 +01:00 |
PKEuS
|
308fd1ba50
|
Fixed false positive 'noCopyConstructor' for static member variable (#7198)
|
2015-12-04 18:26:49 +01:00 |
PKEuS
|
46d6623182
|
Refactorization: Improved performance of Tokenizer::isFunctionParameterPassedByValue()
- Skip it for C code
- Improved performance by around 80% on C++ code (3,5% of entire runtime)
|
2015-12-03 14:44:59 +01:00 |
PKEuS
|
70767a30c4
|
Small refactorizations:
- Avoid calling c_str() for functions that take std::string
- Avoid copying std::list
|
2015-12-03 14:19:30 +01:00 |
Daniel Marjamäki
|
7f4dae8de4
|
Merge pull request #714 from Dmitry-Me/betterVariableNames
Better variable names, more linear code
|
2015-12-03 13:46:28 +01:00 |
PKEuS
|
32e2fb2f78
|
Refactorization: Prefer Token::simpleMatch over Token::Match also for non-const patterns.
|
2015-12-03 13:04:55 +01:00 |
PKEuS
|
00662ec484
|
Refactorization: Improve performance of simplifyTypedef by using Token::simpleMatch by ~15% (forgotten in b8d39a2229 )
|
2015-12-03 12:50:42 +01:00 |
Dmitry-Me
|
cb84b88cb1
|
Better variable names, more linear code
|
2015-12-03 14:20:46 +03:00 |
amai2012
|
f624f6fc25
|
Merge pull request #713 from Dmitry-Me/eliminateRepeatedLookup2
Eliminate repeated lookup
|
2015-12-03 10:18:08 +01:00 |
Dmitry-Me
|
be49abf460
|
Eliminate repeated lookup
|
2015-12-03 11:03:18 +03:00 |
Daniel Marjamäki
|
a51df5f00d
|
Removed unused CppCheck::analyseFile
|
2015-12-03 08:42:12 +01:00 |
PKEuS
|
b8d39a2229
|
Refactorizations:
- Improve performance of simplifyTypedef by using Token::simpleMatch by ~15%
- Simplified code in simplifyTypedef
- Ran AStyle
|
2015-12-02 23:32:50 +01:00 |
PKEuS
|
7ea9e3ca4f
|
Refactorization: Improve performance of simplifyTypedef by adding a pre-check for Token::link() by ~25%
|
2015-12-02 22:41:09 +01:00 |
Dmitry-Me
|
0a3959f201
|
Remove duplicate check
|
2015-12-02 17:28:21 +03:00 |
PKEuS
|
423b254772
|
Merge pull request #711 from Dmitry-Me/moreInterlockedCases
Detect more non-interlocked accesses
|
2015-12-02 14:13:53 +01:00 |
orbitcowboy
|
1a94b876f1
|
preprocessor: Improved constness of local variable.
|
2015-12-02 13:58:24 +01:00 |
Dmitry-Me
|
8f8a0097fe
|
Detect more non-interlocked accesses
|
2015-12-02 10:58:57 +03:00 |
PKEuS
|
c79bc6c59d
|
Refactorization: Call std::string::find_first_of() only once.
|
2015-12-01 23:11:24 +01:00 |
Daniel Marjamäki
|
508b06abaa
|
Fixed #6973 (ValueFlow: dont set possible tokvalues in unreachable code)
|
2015-12-01 07:49:19 +01:00 |
Alexander Mai
|
f762affea0
|
Small refactoring: replace NULL by nullptr, remove redundant static keyword, Tokenizer::setVarId() uses const variable 'notstart'
|
2015-11-30 22:13:49 +01:00 |
Matthias Krüger
|
c7bbc27130
|
Preprocessor: run paths of some error messages through Path::simplifyPath()
teach Path::simplifyPath() to recursively remove "./././" from beginning of paths.
|
2015-11-30 19:30:37 +01:00 |
Daniel Marjamäki
|
9c3f25603e
|
CheckBufferOverrun: Remove old checking of strings and use new ValueFlow-based checking instead (#6973)
|
2015-11-30 16:36:52 +01:00 |
Daniel Marjamäki
|
8fb6f33aca
|
ValueFlow: dont set dynamic values in unreachable code (#6973)
|
2015-11-30 16:15:58 +01:00 |
Daniel Marjamäki
|
1b0bb02f1d
|
invalidTestForOverflow: Fixed some false negatives (#7184)
|
2015-11-30 11:12:51 +01:00 |
Daniel Marjamäki
|
fb8cce647c
|
invalidTestForOverflow: Refactor; move from checkother to checkcondition
|
2015-11-30 08:51:15 +01:00 |
Daniel Marjamäki
|
f6f4f27636
|
CheckOther::checkInvalidTestForOverflow: minor fix, only warn when warnings are enabled.
|
2015-11-29 22:03:42 +01:00 |
Daniel Marjamäki
|
26a07265a8
|
Fixed #7184 (Invalid test for overflow 'p + x < p')
|
2015-11-29 20:59:50 +01:00 |
Daniel Marjamäki
|
4fa888ec44
|
Warn when shifting a negative value, it is UB. (#4931)
|
2015-11-29 16:28:55 +01:00 |
Daniel Marjamäki
|
8a9e068129
|
Fixed #7119 (Cppcheck hangs with 100% CPU load in Tokenizer::copyTokens (invalidcode))
|
2015-11-29 14:56:15 +01:00 |
Alexander Mai
|
53dbcb956f
|
Small refactoring: use a single complete set for reserved for each C/C++. Replace NULL by nullptr
|
2015-11-29 13:23:13 +01:00 |
Alexander Mai
|
f5194accfd
|
Run dmake. Add missing include to lib/checkinternal.cpp
|
2015-11-29 11:09:21 +01:00 |
PKEuS
|
e8522c7883
|
Small refactorizations:
- #include cleanup
- Use std::array instead of std::vector
- Do not create a stringstream to concatenate 4 strings
- Use std::cout instead of printf
|
2015-11-29 10:56:44 +01:00 |
Daniel Marjamäki
|
8bb8290a6f
|
Fixed GCC warnings. unused variable, shadow variable.
|
2015-11-28 18:15:47 +01:00 |
Alexander Mai
|
78489f4293
|
MathLib::characterLiteralToLongNumber can encode unicode char literals, though it's incompatible to gcc/clang
|
2015-11-28 16:37:26 +01:00 |
Daniel Marjamäki
|
5fabe66ff7
|
simplifyCalculations: better handling of && and || in conditions (#4931)
|
2015-11-28 15:00:41 +01:00 |
PKEuS
|
ac17541ca9
|
Refactorizations:
- Fixed a few more MSVC warnings by using correct types
- Store severity as enum instead of string in Settings::Rule
|
2015-11-28 12:30:21 +01:00 |
PKEuS
|
93c02ce826
|
Fixed compiler error introduced in previous commit and several MSVC warnings
|
2015-11-28 10:49:08 +01:00 |
Daniel Marjamäki
|
6b124a37d8
|
Cleanup some casts
|
2015-11-28 10:11:07 +01:00 |
Daniel Marjamäki
|
8689693d6c
|
Fix Travis
|
2015-11-28 09:26:44 +01:00 |
Daniel Marjamäki
|
c0da6c1541
|
simplifyCalculations: handle '(4%1<<1&4!=1)' better. must combine '!' '=' before constant folding. fixed the operator precedence for comparison operators. (#4931)
|
2015-11-28 09:04:22 +01:00 |
Alexander Mai
|
44305fd98e
|
#6940 Unsigned overflow in TestBufferOverrun::negativeArraySize. Don't try to calculate size of array with negative array size
|
2015-11-28 07:27:52 +01:00 |
Alexander Mai
|
c70b71e353
|
#5888 fsanitize=undefined: signed integer overflow: 4611686018427387904 * 2 cannot be represented in type 'long long int' in valueflow.cpp
|
2015-11-27 21:45:08 +01:00 |
Alexander Mai
|
c6ec5ca734
|
Fix MathLib::characterLiteralToLongNumber for LP64 again.
|
2015-11-27 21:43:51 +01:00 |
Alexander Mai
|
d4749c3377
|
Fix excessive left shift of signed integer and some doxygen errors
|
2015-11-27 19:32:28 +01:00 |
Daniel Marjamäki
|
1bf547c716
|
Fixed #4931 (Wrong calculation for '2|0*0&2>>1+0%2*1')
|
2015-11-27 15:02:49 +01:00 |
Daniel Marjamäki
|
1977a18a1e
|
simplifyNumericCalculations: Don't fold negative constants in shift/bitmask calculation. Behaviour is not well defined.
|
2015-11-27 14:16:49 +01:00 |
PKEuS
|
3b4160600d
|
Fixed crash in CheckMemoryLeak::functionReturnType() for unary operator:: (#7172)
|
2015-11-27 11:18:40 +01:00 |
PKEuS
|
0ba3d25917
|
CheckMemoryLeak: Correctly detect new char[...]() as array allocation (#7164)
|
2015-11-27 11:04:18 +01:00 |
Frank Zingsheim
|
70c20515a9
|
Cmake object linkage. Fix #7128: (cppcheck 1.70 doesn't report any warnings)
|
2015-11-26 20:25:09 +01:00 |
Matthias Krüger
|
87ce88d6ab
|
CheckFunctions::checkProhibitedFunctions(): don't warn about alloca when --enable=warning is not given.
|
2015-11-25 22:05:51 +01:00 |
Daniel Marjamäki
|
2737f63f71
|
Wrong calculation of constants (simplifying: +,<<,% operations)
|
2015-11-25 16:46:39 +01:00 |
Benjamin Bannier
|
e84fe33ad0
|
Include cmath for std::fabs
|
2015-11-25 10:16:41 +01:00 |
Alexander Mai
|
a7ab5ecf08
|
Fix some compiler in MathLib::characterLiteralToLongNumber + some small refactoring
|
2015-11-23 20:41:21 +01:00 |
Daniel Marjamäki
|
5135bae777
|
Tokenizer: Cleanup the Tokenizer::tokenizeCondition used by the preprocessor
|
2015-11-23 16:53:30 +01:00 |
Alexander Mai
|
b7030fcfa1
|
Fix compiler error (VS2010) and warning
|
2015-11-22 16:56:44 +01:00 |
Daniel Marjamäki
|
d93cf96a29
|
Fixed #6769 (false positive: Uninitialized struct member: epoch.integer)
|
2015-11-22 16:20:46 +01:00 |
Alexander Mai
|
63b7700660
|
Use clang/gcc-conforming encoding of multicharacter literals
|
2015-11-22 14:20:36 +01:00 |
PKEuS
|
f516de8633
|
Moved a few checks from CheckOther to CheckFunctions
|
2015-11-22 13:49:10 +01:00 |
Alexander Mai
|
9ca6704c81
|
#7162 Support multicharacter char literals.
|
2015-11-22 13:31:31 +01:00 |
Matthias Krüger
|
a610ef9ce8
|
fix internal warning:
[lib/checkfunctions.cpp:44]: (warning) Found simple pattern inside Token::Match() call: "alloca ("
|
2015-11-22 11:00:36 +01:00 |
Alexander Mai
|
b1385dd951
|
Run dmake to update Makefile etc.
|
2015-11-22 10:40:48 +01:00 |
PKEuS
|
57d1196386
|
Replaced CheckNonReentrantFunctions and CheckObsoleteFunctions by generic CheckFunctions which is based on Library (#6529)
|
2015-11-22 09:18:07 +01:00 |
Alexander Mai
|
517922feb6
|
MathLib::characterLiteralToLongNumber now reports more specific error messages for unsupported unicode literals (see #7162)
|
2015-11-22 07:38:38 +01:00 |
Alexander Mai
|
714579401f
|
#7160 Internal error: Unhandled char constant '\1'. Correct MathLib::toLongNumber. Create new utility function MathLib::characterLiteralToLongNumber
|
2015-11-21 22:35:58 +01:00 |
Daniel Marjamäki
|
5f68f3ddf6
|
Fixed #6264 (FP: gimp: struct initialized via pointers to member variables)
|
2015-11-21 19:31:18 +01:00 |
Daniel Marjamäki
|
fb0477affd
|
CheckUninitVar: Fixed false negatives when there are conditions
|
2015-11-21 10:00:21 +01:00 |
Daniel Marjamäki
|
d301cf28ec
|
CheckUninitVar: Small logical fixes in conditions handling.
|
2015-11-21 08:32:25 +01:00 |
PKEuS
|
12af125fd3
|
Fixed false positive stlIfStrFind for function call inside condition.
Removed unnecessary suppressions in .travis_suppressions
|
2015-11-20 20:08:53 +01:00 |
Daniel Marjamäki
|
8fd62e0cf9
|
Fixed #4931 (Wrong calculation of constants (simplifying: +,<<,% operations))
|
2015-11-20 19:43:11 +01:00 |
Daniel Marjamäki
|
79a70c1277
|
MathLib::toLongNumber: Better handling of '\x12' and '\000' char constants
|
2015-11-20 18:57:48 +01:00 |
PKEuS
|
6590d46013
|
Added missing functionality to <container> elements in Librarie, completed STL container definitions in std.cfg
|
2015-11-20 18:22:55 +01:00 |