diff options
| author | Scott Turner <scotty@l5computing.com> | 2010-01-16 11:30:44 -0500 |
|---|---|---|
| committer | Jean-Baptiste Queru <jbq@google.com> | 2010-05-07 15:02:36 -0700 |
| commit | c1f8dd9f0b0fe4d3953edefd2d6172573f6b7504 (patch) | |
| tree | c101ce0c0a5b72ffc23b0aaebe6a6c3cc5313899 /libc/arch-arm/bionic/atomics_arm.S | |
| parent | 0be7eda75a14815aaa3e5cd5d5d4e5d25dc35d1c (diff) | |
| download | bionic-c1f8dd9f0b0fe4d3953edefd2d6172573f6b7504.zip bionic-c1f8dd9f0b0fe4d3953edefd2d6172573f6b7504.tar.gz bionic-c1f8dd9f0b0fe4d3953edefd2d6172573f6b7504.tar.bz2 | |
Sometimes the compiler is very right! Found bug in bessel routines for float.
Original compiler error:
target arm C: libm <= bionic/libm/src/e_j0f.c
bionic/libm/src/e_j0f.c: In function 'j0f':
bionic/libm/src/e_j0f.c:66: warning: comparison between signed and unsigned integer expressions
bionic/libm/src/e_j0f.c: In function 'y0f':
bionic/libm/src/e_j0f.c:140: warning: comparison between signed and unsigned integer expressions
target arm C: libm <= bionic/libm/src/e_j1.c
It's subtle but ix is masked with 0x7f000000 so it can never ever have a value
greater than 0x80000000. So I switched to using the unmasked hx and added a
cast as a reward to the compiler for being right.
I checked the original routines that e_j0f.c was ported from (in e_j0.c) and
the double's don't use 0x80000000 so this issue didn't exist there.
Let that be a warning to those that just slap on casts to shut up the compiler,
sometimes it's sniffed out a bug for you. :-)
Similar fixes in the other functions.
Change-Id: I7a776e5d4721fc3a9e3bd89179b67e9af3a2ebfa
Diffstat (limited to 'libc/arch-arm/bionic/atomics_arm.S')
0 files changed, 0 insertions, 0 deletions
