public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* A problem with -ansi?
@ 1998-04-04 14:20 Christian Joensson FOA 72
  1998-04-07 19:34 ` Jim Wilson
  0 siblings, 1 reply; 2+ messages in thread
From: Christian Joensson FOA 72 @ 1998-04-04 14:20 UTC (permalink / raw)
  To: egcs

I found a problem with gcc-2.8.1 on Solaris 2.5 that is based on an old 
posting from Tony Lacey <a.lacey@sheffield.ac.uk> to news:gnu.gcc.bug , 
<199702171551.PAA16907@chive.shef.ac.uk>. In the posting, he gives an example 
code snippet, etest.c that is this one:

#include <stdio.h>
#include <math.h>
 
int main(void)
{
  double  res;
 
  res = erf(0.1);
 
  printf("%f\n", res);
 
} 

I'm not really sure of what's going on, but I'm afraid that someting might be 
working quite that well...

Any comments are greatly appreciated.


-- 
Christian Jvnsson                                   chj@lin.foa.se
Sweden's Defence Research Establishment
Dep't of Communication Systems                      FOA 72



Compiling with gcc-2.8.1, with and without -anis, on Solaris 2.5 give these
two results:

gcc -v -o etest etest.c -lm
Reading specs from /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/specs
gcc version 2.8.1
 /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/cpp -lang-c -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=8 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) etest.c /var/tmp/cca003SF.i
GNU CPP version 2.8.1 (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /home/guneri/gnu-980317/sparc-sun-solaris2.5/include
 /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/include
 /usr/include
End of search list.
 /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/cc1 /var/tmp/cca003SF.i -quiet -dumpbase etest.c -version -o /var/tmp/cca003SF.s
GNU C version 2.8.1 (sparc-sun-solaris2.5) compiled by GNU C version 2.8.1.
 /home/guneri/gnu-980317/sparc-sun-solaris2.5/bin/as -V -Qy -s -o /var/tmp/cca003SF1.o /var/tmp/cca003SF.s
GNU assembler version 980303 (sparc-sun-solaris2.5), using BFD version 2.8.1.0.23
 /home/guneri/gnu-980317/sparc-sun-solaris2.5/bin/ld -V -Y P,/usr/ccs/lib:/usr/lib -Qy -o etest /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crt1.o /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crti.o /usr/ccs/lib/values-Xa.o /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crtbegin.o -L/home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1 -L/home/guneri/gnu-980317/sparc-sun-solaris2.5/lib -L/usr/ccs/bin -L/usr/ccs/lib -L/home/guneri/gnu-980317/lib /var/tmp/cca003SF1.o -lm -lgcc -lc -lgcc /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crtend.o /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crtn.o
GNU ld version 2.8.2 (with BFD 2.8.1.0.23)
  Supported emulations:
   elf32_sparc

./etest 
0.112463

gcc -v -ansi -o etest etest.c -lm
Reading specs from /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/specs
gcc version 2.8.1
 /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/cpp -lang-c89 -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=8 -trigraphs -D__STRICT_ANSI__ -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) etest.c /var/tmp/cca003SP.i
GNU CPP version 2.8.1 (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /home/guneri/gnu-980317/sparc-sun-solaris2.5/include
 /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/include
 /usr/include
End of search list.
 /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/cc1 /var/tmp/cca003SP.i -quiet -dumpbase etest.c -ansi -ansi -version -o /var/tmp/cca003SP.s
GNU C version 2.8.1 (sparc-sun-solaris2.5) compiled by GNU C version 2.8.1.
 /home/guneri/gnu-980317/sparc-sun-solaris2.5/bin/as -V -Qy -s -o /var/tmp/cca003SP1.o /var/tmp/cca003SP.s
GNU assembler version 980303 (sparc-sun-solaris2.5), using BFD version 2.8.1.0.23
 /home/guneri/gnu-980317/sparc-sun-solaris2.5/bin/ld -V -Y P,/usr/ccs/lib:/usr/lib -Qy -o etest /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crt1.o /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crti.o /usr/ccs/lib/values-Xc.o /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crtbegin.o -L/home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1 -L/home/guneri/gnu-980317/sparc-sun-solaris2.5/lib -L/usr/ccs/bin -L/usr/ccs/lib -L/home/guneri/gnu-980317/lib /var/tmp/cca003SP1.o -lm -lgcc -lc -lgcc /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crtend.o /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crtn.o
GNU ld version 2.8.2 (with BFD 2.8.1.0.23)
  Supported emulations:
   elf32_sparc

./etest
1069128089.000000

Doing the similar thing on RHL 5.0/Intel with binutils-2.8.1.0.28-2 added 
using egcs-980328, I get:

gcc -v -o etest etest.c -lm
Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/specs
gcc version egcs-2.91.16 980328 (gcc-2.8.0 release)
 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/cpp -lang-c -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -Di386 -Di586 -Asystem(unix) -Acpu(i386) -Amachine(i386) -D__i386__ -D__i586__ -Asystem(unix) -Acpu(i386) -Amachine(i386) etest.c /tmp/cca08141.i
GNU CPP version egcs-2.91.16 980328 (gcc-2.8.0 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/local/i586-pc-linux-gnu/include
 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/include
 /usr/include
End of search list.
 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/cc1 /tmp/cca08141.i -quiet -dumpbase etest.c -version -o /tmp/cca08141.s
GNU C version egcs-2.91.16 980328 (gcc-2.8.0 release) (i586-pc-linux-gnu) compiled by GNU C version egcs-2.91.16 980328 (gcc-2.8.0 release).
 as -V -Qy -o /tmp/cca081411.o /tmp/cca08141.s
GNU assembler version 980331 (i586-pc-linux-gnu), using BFD version 2.8.1.0.28
 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o etest /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/crtbegin.o -L/usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16 -L/usr/local/i586-pc-linux-gnu/lib -L/usr/local/lib /tmp/cca081411.o -lm -lgcc -lc -lgcc /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/crtend.o /usr/lib/crtn.o

./etest
0.112463

gcc -v -ansi -o etest etest.c -lm 
Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/specs
gcc version egcs-2.91.16 980328 (gcc-2.8.0 release)
 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/cpp -lang-c89 -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=91 -trigraphs -D__STRICT_ANSI__ -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -Di386 -Di586 -Asystem(unix) -Acpu(i386) -Amachine(i386) -D__i386__ -D__i586__ -Asystem(unix) -Acpu(i386) -Amachine(i386) etest.c /tmp/cca08149.i
GNU CPP version egcs-2.91.16 980328 (gcc-2.8.0 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/local/i586-pc-linux-gnu/include
 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/include
 /usr/include
End of search list.
 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/cc1 /tmp/cca08149.i -quiet -dumpbase etest.c -ansi -ansi -version -o /tmp/cca08149.s
GNU C version egcs-2.91.16 980328 (gcc-2.8.0 release) (i586-pc-linux-gnu) compiled by GNU C version egcs-2.91.16 980328 (gcc-2.8.0 release).
 as -V -Qy -o /tmp/cca081491.o /tmp/cca08149.s
GNU assembler version 980331 (i586-pc-linux-gnu), using BFD version 2.8.1.0.28
 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o etest /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/crtbegin.o -L/usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16 -L/usr/local/i586-pc-linux-gnu/lib -L/usr/local/lib /tmp/cca081491.o -lm -lgcc -lc -lgcc /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/crtend.o /usr/lib/crtn.o

./etest 
1069128089.000000








^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: A problem with -ansi?
  1998-04-04 14:20 A problem with -ansi? Christian Joensson FOA 72
@ 1998-04-07 19:34 ` Jim Wilson
  0 siblings, 0 replies; 2+ messages in thread
From: Jim Wilson @ 1998-04-07 19:34 UTC (permalink / raw)
  To: Christian Joensson FOA 72; +Cc: egcs

	#include <math.h>
	...
	res = erf(0.1);

Use of -ansi implies that you want an ANSI C compiler.  ANSI C specifies
exactly those functions that can be declared in the math.h header file.
This is so that implementations do not needlessly clutter the user namespace.
erf is not one of them, and hence when -ansi is used, math.h can not
declare the erf function.  If you have no declaration for erf, then the
compiler assumes it returns an int, and then silently converts the int
return value to double.  Hence this program can not work with -ansi.

Jim

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1998-04-07 19:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-04-04 14:20 A problem with -ansi? Christian Joensson FOA 72
1998-04-07 19:34 ` Jim Wilson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).