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
79a70c1277
MathLib::toLongNumber: Better handling of '\x12' and '\000' char constants
2015-11-20 18:57:48 +01:00
Daniel Marjamäki
52b5446d86
Improve handling of various standard character constants
2015-11-20 10:23:38 +01:00
Daniel Marjamäki
86957214ae
Remove redundant comparisons
2015-11-20 10:11:58 +01:00
Daniel Marjamäki
0022ce8075
Refactor handling of char constants
2015-11-20 10:10:38 +01:00
Daniel Marjamäki
0f9d90d2be
Changed Copyrights. Removed my name.
2015-11-18 20:04:50 +01:00
PKEuS
4f565ba90f
Fixed crashs on garbage code ( #7082 )
2015-11-02 21:30:28 +01:00
PKEuS
1627b19dd6
Refactorizations:
...
- Call std::string::find() with char instead of char* where possible
- Avoid string copying
- Optimized several Token::tokAt/strAt calls
2015-08-16 10:33:51 +02:00
Alexander Mai
7c48bf3ca5
MathLib::isFloat now detects C99 hexadecimal float literals. MathLib::isDecimalFloat was added for C++ and pre-C99 compatibility.
2015-07-26 19:21:53 +02:00
Alexander Mai
bbec54db8e
Implement MathLib::isFloatHex to detect C99 hexadecimal floating pointer literals. Rename MathLib::isHex to MathLib::isIntHex
2015-07-26 08:06:56 +02:00
Daniel Marjamäki
b821e996e1
MathLib: Add TEST_MATHLIB_VALUE that is used to test MathLib::value
2015-07-15 17:36:41 +02:00
Daniel Marjamäki
177fd9c79d
MathLib: make isinf and isnan more portable
2015-07-14 20:48:08 +02:00
Daniel Marjamäki
ac04541d56
MathLib: Add value class. this will allow more type-independant value handling.
2015-07-10 20:36:38 +02:00
Daniel Marjamäki
f36f1e8952
MathLib: Minor tweaks. Use toDoubleNumber instead of std::atof. Only use clang workaround with clang.
2015-07-10 18:34:28 +02:00
Alexander Mai
b6858622eb
#6779 internal error: division overflow. Previous error handling (see #4520 ) was too restrictive.
2015-06-20 23:15:35 +02:00
Martin Ettl
9b14ab15eb
MathLib::intsuffix: Added support for LLU and LU suffixes.
2015-06-16 19:12:18 +02:00
Daniel Marjamäki
2cc23b4bb3
MathLib: Try to keep type suffix in constant calculations
2015-06-15 19:01:56 +02:00
Simon Martin
e5745d7d4a
Restore build with libc++ and revert PR#228 and PR#562.
2015-04-12 20:29:49 +02:00
orbitcowboy
8596794ce7
MathLib:mod: Declared local variable as const. No functional change.
2015-04-07 17:21:28 +02:00
Daniel Marjamäki
ff11ba9847
Updated copyright year to 2015
2015-01-03 12:14:58 +01:00
Alexander Mai
d4e59065df
Fix some (clang) compiler warnings
2014-11-20 20:49:05 +01:00
orbitcowboy
4a2a4474c9
Fixed #6281 : MathLib: Long integer suffix i64 is not supported.
2014-11-20 10:23:09 +01:00
Robert Reif
b7c9187539
Fixed #6280 (MathLib: binary literals are integers)
2014-11-19 06:43:52 +01:00
Robert Reif
7c4a137e14
Fixed #6274 (MathLib::isFloat doesn't recognize long double literal suffix L or l)
2014-11-17 06:53:32 +01:00
orbitcowboy
b9a9f51fe0
MathLib: Added test for isDec() and removed not required state.
2014-11-14 04:29:35 +01:00
Alexander Mai
4d5b463613
Fix clang compiler warning in mathlib.cpp and repair test case for #5895
2014-06-07 13:16:02 +02:00
orbitcowboy
8fe163285f
MathLib: Added missing testcase for incdec.
2014-06-04 08:41:30 +02:00
orbitcowboy
60e80b6fb1
Fixed #5885 - fsanitize=undefined: signed integer overflow: 2147483647 + 1 cannot be represented in type 'int' in lib/tokenize.cpp.
2014-05-29 18:25:01 +02:00
Martin Ettl
af369b4925
astyle run [ci skip]
2014-05-16 23:01:21 +02:00
amai2012
6f31ce334d
#5875 Fix 'lib/mathlib.cpp:559:43: runtime error: division by zero'. Several fixes to MathLib::divide(): avoid division by zero, handle various representation of 0 value, use 'nan.' instead of '-nan.0'
2014-05-31 18:25:23 +02:00
orbitcowboy
ee5cd91d51
MathLib: removed duplicated #include
2014-05-22 17:53:13 +02:00
Alexander Mai
cccddc20bf
#5843 MathLib::toLongNumber()/MathLib::toULongNumber() now use min/max values for bigint/biguint type in case the number to converted cannot be converted properly
2014-05-21 21:36:17 +02:00
PKEuS
ab4f58a146
Partially reverted 1317063b21
. enum class is not part of the common subset of supported C++11 functions of the compilers supported by cppcheck. ( Fixes #5745 )
2014-04-30 21:06:01 +02:00
Alexander Mai
1317063b21
Fix some more (clang++) compiler warnings
2014-04-26 20:44:21 +02:00
Alexander Mai
b5c580a59e
Fix some clang warnings - most related to semantic doxygen errors
2014-04-26 16:17:26 +02:00
orbitcowboy
3d0217b69e
Implemented a slower but shorter version of MathLib::isNullValue() as suggested by PKeuS. Removed not needed test cases. Improved doxygen documentation for MathLib::IsNullValue().
2014-04-14 05:27:38 +02:00
Daniel Marjamäki
28751c8ad0
astyle formatting
...
[ci skip]
2014-04-15 06:32:25 +02:00
Alexander Mai
ac24635056
Convert MathLib::toLongNumber() from template member function to toLongNumber() and toULongNumber() to avoid various problems compiling with Visual Studio
2014-04-14 20:30:38 +02:00
Martin Ettl
82092e412a
MathLib::isNullValue(): Fixed bug in detecting zero values. Improved test coverage of MathLib::IsNullValue().
2014-04-12 02:14:50 +02:00
Alexander Mai
718e42f5ca
Fix some clang warnings about type conversions
2014-04-11 23:35:53 +02:00
Alexander Mai
6da6508913
Extract new function MathLib::isDec() our of isInt()
2014-04-11 22:15:25 +02:00
orbitcowboy
6be53376f4
MathLib:IsNullValue(): removed commented out code.
2014-04-11 01:28:16 +02:00
orbitcowboy
9c08885caf
MathLib:IsNullValue(): using a Finite State Machine to determine a string value contains a numeric NULL value. The NULL value can be Integer, Binary, Hex, Octal. The corresponding unit test cases are also included.
2014-04-11 01:27:05 +02:00
Philipp Kloke
1fafc7f4dc
Refactorization: use MathLib::isNullValue in CheckOther::checkMemsetInvalid2ndParam(); Fixed it to support also float literals like "0.f"
2014-04-11 14:17:36 +02:00
Alexander Mai
ab2f8bfba3
Tidy up MathLib::isInt() - using a state machine approach
2014-04-10 22:46:55 +02:00
Alexander Mai
cba1879fee
Fixed #5571 (Clean up MathLib::isInt())
2014-03-16 11:55:44 +01:00
Daniel Marjamäki
8c7cf090c4
Merge pull request #261 from orbitcowboy/master
...
MathLib:isHex(): fix detection of missing suffixes (U,L).
2014-03-14 13:00:35 +01:00
orbitcowboy
74d10cd6d9
Added function MathLib::isValidSuffix()
2014-03-14 11:46:41 +01:00
orbitcowboy
71ee625aab
MathLib: replaced isHexDigit function by isxdigit.
2014-03-14 09:33:20 +01:00
Daniel Marjamäki
618c26f6bf
Merge pull request #260 from orbitcowboy/master
...
MathLib::isOct() fix missing detection of U and L suffix combinations an...
2014-03-12 05:30:35 +01:00
orbitcowboy
ed793793db
MathLib:isHex(): fix detection of missing suffixes (U,L).
2014-03-11 20:02:04 +01:00
Daniel Marjamäki
af0cf9bbc1
Merge pull request #258 from orbitcowboy/master
...
MathLib::isBin(): fix missing detection of U and L suffix combinations. ...
2014-03-11 06:36:31 +01:00
orbitcowboy
5b4ece4f9c
MathLib::isBin(): fix missing detection of U and L suffix combinations. Added missing test cases.
2014-03-10 17:23:07 +01:00
Martin Ettl
0360840753
MathLib::isOct() fix missing detection of U and L suffix combinations and unittests.
2014-03-09 21:14:14 +01:00
Alexander Mai
a02bbfa47e
Fixed #5492 (Fix small bug in MathLib::isFloat())
2014-02-27 16:08:49 +01:00
Daniel Marjamäki
dea4107245
Fix Cppcheck warning
2014-02-26 06:38:48 +01:00
Alexander Mai
0747b55485
Fixed #5304 (Wrong simplification of numbers like 001E+07 to 1.0)
2014-02-24 18:52:31 +01:00
Alexander Mai
82a2279425
Fixed #5304 (Wrong simplification of numbers like 001E+07 to 1.0)
2014-02-20 16:56:49 +01:00
Daniel Marjamäki
fd3a8a2a18
Update copyright
2014-02-15 07:45:39 +01:00
Martin Ettl
babbee4e73
Fixed typos in comments, no functional changes.
2013-11-09 16:07:28 +01:00
Daniel Marjamäki
8ff412fcee
Fixed #5142 (False positive with floating-point special cases in conditions)
2013-11-04 11:56:43 +01:00
Daniel Marjamäki
769b4617c3
Fixed #5142 (False positive with floating-point special cases in conditions)
2013-11-02 22:58:23 +01:00
Martin Ettl
00987eb120
MathLib: improved constness of local variables. No functional change.
2013-09-29 15:49:02 +02:00
Martin Ettl
0527aefb11
Improved simplifyMathFunctions when simplifying special cases of pow(x,y)-function.
2013-09-29 15:11:09 +02:00
Simon Martin
894f537eba
Remove warnings emitted by clang's -Wsign-conversion
2013-09-22 13:22:52 +02:00
PKEuS
a9a5dc0354
Updated to AStyle 2.03, require this version
2013-08-07 16:27:37 +02:00
Daniel Marjamäki
794aebe3cf
MathLib: Return inf.0 for NAN and INF calculations
2013-07-19 09:27:33 +02:00
PKEuS
917acea2ca
Fixed two spelling mistakes found by ettlmartin
2013-06-12 13:13:05 -07:00
Daniel Marjamäki
b6bcdf2936
Fixed #4520 (segmentation fault of cppcheck (preprocessing))
2013-05-09 18:50:24 +02:00
Daniel Marjamäki
c3d1274db3
Reverted 'simplify NOT' since there are problems related to signedness of numeric values.
2013-04-24 06:32:34 +02:00
Ettl Martin
33cfc1a52e
fixed #4726 : simplify bitwise Not (~ %num%)
2013-04-11 09:16:40 +02:00
Andrew C. Martin
4a73c93750
Fix compiler warnings and comment/string typos
...
- fix g++ warning:
> lib/checkother.cpp:3779: warning: comparison between signed and unsigned integer expressions
- fix suncc warning (see [everything2](http://everything2.com/title/C%252B%252B%253A+static+extern+%2522C%2522 )):
> "lib/checkmemoryleak.cpp", line 578: Warning (Anachronism): Formal argument __compar of type extern "C" int(*)(const void*,const void*) in call to bsearch(const void*, const void*, unsigned long, unsigned long, extern "C" int(*)(const void*,const void*)) is being passed int(*)(const void*,const void*).
- prefer empty() / isEmpty() over "size() > 0" (cases not caught by stlSize)
- fix word misspellings (mostly comments, a few output lines)
- Parenthesis => Parentheses (both variations were used in the codebase)
- fix typo and wording ("never alwayw") in gui/test/data/benchmark/simple.cpp's CheckOther::unsignedPositive():
```
- "An unsigned variable will never alwayw be positive so it is either pointless or "
+ "An unsigned variable can't be negative so it is either pointless or "
```
2013-01-16 07:37:07 -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
acm4me
7da155c8ba
Support for Sun Studio C++ compiler
2012-12-27 11:51:12 +01:00
Daniel Marjamäki
4e92f8dfcd
Fixed #4295 (False positive: Expression '(X & 0xFF00000000000000LL)==0xa00000000000000' always evaluates to false (64-bit value))
2012-11-27 17:37:49 +01:00
Daniel Marjamäki
64faa780fe
Fixed #4087 (div by zero check is invalid for floats)
2012-09-11 16:50:42 +02:00
PKEuS
77b5175ec3
Support 0B... syntax for binary numbers.
2012-09-11 08:39:01 +02:00
PKEuS
95f4bb3e97
Implemented support for binary numbers ( #4113 )
2012-09-10 21:13:32 +02:00
PKEuS
0c812c5ac3
Throw an InternalError when trying to divide (or modulo) by zero in MathLib.
2012-09-06 20:15:32 +02:00
PKEuS
f969530e1f
Revert "Fixed #4087 " which was committed by accident.
...
This reverts commit 0bbef8d803
.
2012-09-05 13:57:57 +02:00
PKEuS
0bbef8d803
Fixed #4087
2012-09-04 21:50:50 +02:00
deepak gupta
24659dee92
Fixed #4087
2012-09-02 14:26:39 +02:00
Daniel Marjamäki
d24badbfda
Fixed #4068 (Endless loop inside MathLib::add())
2012-08-22 20:50:39 +02:00
Daniel Marjamäki
1601baa974
Fixed #4016 (false positive: incorrectLogicOperator)
2012-08-14 16:17:18 +02:00
Daniel Marjamäki
0bb0fdedc2
Fixed #3747 (False 'boolean result in bitwise' message with 'mask' enums)
2012-05-16 18:48:33 +02:00
Edoardo Prezioso
573256350a
Fixed: mathlib.cpp(258): warning C4702: unreachable code.
2012-05-16 15:26:03 +02:00
Ettl Martin
7be01da8e9
fixed ticket 3693. Added modulus operator to Mathlib + unittests. Added a test to checkother to ensure the testcase of ticket 3693 does not trigger an error message.
2012-04-12 14:02:09 +02:00
PKEuS
485e836535
Refactorizations in MathLib.
...
Fixed recently introduced bug on floating point numbers with multiple preceding zeros (for example 004.123)
2012-02-17 19:54:53 +01:00
PKEuS
8ea5df62c4
- Improved support for numbers in code:
...
-- Use MathLib::toLongNumber for conversion in tokenizer (Fix #3610 )
-- Handle octal numbers in tokenizer
- Refactorizations in MathLib::toLongNumber and Settings
2012-02-17 15:47:08 +01:00
Reijo Tomperi
194327048a
Add InternalError and change MathLib to throw it in case of an error.
...
- Previously MathLib errors did not provide a filename, but after this change at least source file name should be printed
and if token is provided, also line number should be printed.
- Change also Token to use InternalError
- Modify Cppcheck-class to catch InternalError instead of Token
- Run dmake to update Makefile
2012-01-08 22:19:44 +02:00
Reijo Tomperi
8cae17fda8
Update year to 2012
2012-01-01 01:05:37 +02:00
PKEuS
dca03c3ce2
Remove unnecessary includes
...
Also add a unit test related to #3427
Also improve the description text in checkclass and remove unused variable.
2011-12-23 23:31:48 +02:00
PKEuS
167a7e3e51
Various code cleanups
2011-12-08 21:28:34 +01:00
Richard Quirk
d5c7c5d098
Remove duplicate expressions on both sides of ||
2011-11-08 21:56:54 +01:00
Edoardo Prezioso
f4cdf57955
Fixed ticket #3229 (Segfault with goto):
...
Don't handle labels, gotos, returns and indentations inside the round braces. This is applied not only for simplifyGoto, but also to simplifyFlowControl.
Rewrite enum badly handled by astyle inside mathlib.cpp and move simplifyFlowControl at the end of the simplifyTokenList in order to catch more dead code, not related to the ticket.
2011-10-18 23:56:35 +02:00
Daniel Marjamäki
6f8e42a5af
changed the astyle formatting flags
2011-10-13 20:53:06 +02:00
Ettl Martin
f441a958cd
mathlib: fixed #2950 : comparison of floating point values
2011-07-29 23:37:40 +02:00
Simon Martin
7346d07871
Fix GCC warning about float comparison. Ticket: #2936
2011-07-24 21:35:21 +02:00
Robert Reif
4149617978
fix #2827 to use numeric comparisons
2011-07-16 23:05:35 -04:00
Reijo Tomperi
226b605774
Change year 2010 -> 2011 in license texts.
2011-01-09 21:33:36 +02:00