diff options
author | Jingwei Zhang <jingwei.zhang@intel.com> | 2015-01-19 17:13:30 +0800 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2015-01-23 12:03:46 -0800 |
commit | 8b24781abd1d49963e5a52a48b85ab5191991ff3 (patch) | |
tree | ebf97445da5e16272553c69fb0655aa39f9ad667 /expectations | |
parent | 194940746a618d361b26838e2c6ff04c358adff7 (diff) | |
download | libcore-8b24781abd1d49963e5a52a48b85ab5191991ff3.zip libcore-8b24781abd1d49963e5a52a48b85ab5191991ff3.tar.gz libcore-8b24781abd1d49963e5a52a48b85ab5191991ff3.tar.bz2 |
Fix the infinite loop issue of the conversion from string to double
This patch provide the additional check for “z”.
The “if” statement checks whether the double precision value z, is at the end of a binade
(a term used to describe the set of numbers in a binary IEEE 754 floating-point format that
all have the same exponent, i.e., a binade is the interval [2n, 2n+1) for some value of n.)
If so, it needs to adjust for the change of ulp (unit of least precision is the spacing
between two consecutive floating-point numbers, i.e., the value the least significant digit
represents if it is 1). The adjustment is done by the “simpleShiftLeftHighPrecision” routine.
This is all necessary, except when z is close to denormal (i.e. DOUBLE_TO_LONGBITS(z)==DOUBLE_NORMAL_MASK)
where no adjustment is needed since the ulp should remain the same once z becomes denormal.
This means we can remove the old hack that counted how many times we'd
incremented or decremented, so this patch removes the DECREMENT_DOUBLE
and INCREMENT_DOUBLE macros.
This patch also contains the float equivalent of everything mentioned above,
plus some new tests.
Finally, this patch removes the USE_LL conditional compilation because it
was always true.
Bug: 18087920
Change-Id: I4a9112f012dfd9eeb8db89f0652528b6c02e8f1e
Signed-off-by: Jingwei Zhang <jingwei.zhang@intel.com>
Signed-off-by: Mingwei Shi <mingwei.shi@intel.com>
Diffstat (limited to 'expectations')
-rw-r--r-- | expectations/knownfailures.txt | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/expectations/knownfailures.txt b/expectations/knownfailures.txt index d85df07..c6d3dd7 100644 --- a/expectations/knownfailures.txt +++ b/expectations/knownfailures.txt @@ -1469,15 +1469,6 @@ ] }, { - description: "Differences between glibc and bionic.", - modes: [host], - bug: 18087920, - result: EXEC_FAILED, - names: [ - "libcore.java.lang.DoubleTest#testParseLargestSubnormalDoublePrecision" - ] -}, -{ description: "Tests failing on host - needing investigation.", modes: [host], bug: 18547404, |