Date: Thu, 6 Apr 2000 17:10:45 +0000 From: mirko.viviani@rccr.cremona.it To: freebsd-hackers@FreeBSD.org Cc: obrien@FreeBSD.org Subject: GCC 2.95.2 __builtin_apply() problems... Message-ID: <200004061510.RAA10378@rccr1.rccr.cremona.it>
next in thread | raw e-mail | index | archive | help
Ciao! This prg seems to have problems with gcc 2.95.2 under FreeBSD. Here (3.4-stable, egcs from ports) it returns: rey:/tmp/tmp> ./conftest 00 00 00 00 30 56 0d 28 00 00 00 00 00 5e 3a c8 07 40 bf bf 97 bc 04 28 7d 82 04 08 04 cf 8a 06 b4 8f 05 28 40 d0 bf bf 5e 3a c8 43 It should return the 'value' at 'retframe+8' instead of 0. The value is a bit shifted 'retvalue+13' and latest byte missed. If you change the value type from 'float' to 'long double' it works correctly. Any hints ? Thanks. <-*- cut -*-> #include <sys/types.h> float value = 400.456; float floatValue() { return value; } void main() { int i; char *(imp) = floatValue; void* retframe; void* frame = __builtin_apply_args(); //malloc(116); retframe = __builtin_apply((void(*)(void))imp, frame, 0); for(i=0; i < 40; i++) printf("%02x ", ((unsigned char *)retframe)[i]); printf("\n"); for(i=0; i < 4; i++) printf("%02x ", ((unsigned char *)&value)[i]); printf("\n"); exit(0); } <-*- cut -*-> -- Bye, Mirko <mirko.viviani@rccr.cremona.it> (NeXTmail, MIME) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200004061510.RAA10378>