This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/55695] New: Miscompilation of pow() & sqrt() using musl libc
- From: "ojab at ojab dot ru" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 14 Dec 2012 19:44:58 +0000
- Subject: [Bug c/55695] New: Miscompilation of pow() & sqrt() using musl libc
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55695
Bug #: 55695
Summary: Miscompilation of pow() & sqrt() using musl libc
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: ojab@ojab.ru
Created attachment 28966
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28966
Preprocessed source
I'm trying to build spandsp using musl libc and found that sqrt() & pow()
compilation is broken when using <tgmath.h> with gcc-4.8, but no errors with
gcc-4.2.4.
Preprocessed source are the same using both gcc versions (can be found in the
attached file).
According to the one of the musl developers, it can be related to the "tgmath
__RETCAST magic" http://www.openwall.com/lists/musl/2012/12/14/6
musl's tgmath.h source can be found at
http://git.musl-libc.org/cgit/musl/tree/include/tgmath.h
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I..
-I/usr/include/libxml2 -DNDEBUG -msse2 -Wunused-but-set-variable -std=gnu99
-ffast-math -Wall -Wunused-variable -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -fvisibility=hidden -DHAVE_VISIBILITY=1 -pedantic -MT
awgn.lo -MD -MP -MF .deps/awgn.Tpo -c -o awgn.lo awgn.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/include/libxml2 -DNDEBUG
-msse2 -Wunused-but-set-variable -std=gnu99 -ffast-math -Wall -Wunused-variable
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden
-DHAVE_VISIBILITY=1 -pedantic -MT awgn.lo -MD -MP -MF .deps/awgn.Tpo -c awgn.c
-fPIC -DPIC -o .libs/awgn.o
awgn.c: In function 'awgn_init_dbov':
awgn.c:109:5: error: void value not ignored as it ought to be
s->rms = pow(10.0, level/20.0)*32768.0;
^
awgn.c: In function 'awgn':
awgn.c:165:9: error: void value not ignored as it ought to be
fac = sqrt(-2.0*log(r)/r);
^
awgn.c:165:9: error: void value not ignored as it ought to be
awgn.c:165:9: error: void value not ignored as it ought to be
awgn.c:165:9: error: void value not ignored as it ought to be
Please tell me if any other info is needed.