This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

bug in gcc 2.95.2 on ultrasparc


Hi,

I have a problem using gcc 2.95.2 on an ultra 10, when using
the -mcpu=ultrasparc flag. This flag has the consequence that the
architecture is considered to be 64 bit. This has consequences for the
/usr/include/limits.h file. In particular, this sets LONG_MAX to
9223372036854775807L. However, the compiler is still using 'long' type of
32-bit. Result: the LONG_MAX does not fit into a long.

Example program:
----------------
(preprocessor output of "gcc -save-temps -o testit -mcpu=ultrasparc test.c"
is attached)

#include <stdio.h>
#include <limits.h>

int main()
{
  long int longmax = LONG_MAX;

  printf("sizeof: char %d, short %d, int %d, long %d, float %d, double
%d\n",
   sizeof(char), sizeof(short),sizeof(int),
sizeof(long),sizeof(float),sizeof(double));

  printf("LONG_MAX is %ld\n", longmax);

  return 1;
}

Compiling and running it
------------------------
wren->gcctest> gcc -o testit test.c
wren->gcctest> ./testit
sizeof: char 1, short 2, int 4, long 4, float 4, double 8
LONG_MAX is 2147483647

wren->gcctest> gcc -o testit -mcpu=ultrasparc test.c
test.c: In function `main':
test.c:6: warning: overflow in implicit constant conversion
wren->gcctest> ./testit
sizeof: char 1, short 2, int 4, long 4, float 4, double 8
LONG_MAX is -1

All the best,

Kris Thielemans

Output of the compiler when using gcc -v
-----------------------------------------

wren->gcctest> gcc -v -o testit  test.c
Reading specs from
/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs
gcc version 2.95.2 19991024 (release)

/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cpp -lang-c -v -D_
_GNUC__=2 -D__GNUC_MINOR__=95 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__s
parc__ -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(sp
arc) test.c /var/tmp/ccvpnkso.i
GNU CPP version 2.95.2 19991024 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:

/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../sparc-
sun-solaris2.7/include
 /usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/include/g++
 /usr/local/include
End of omitted list.
 /usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cc1
/var/tmp/ccvpnkso.i -quiet -dumpbase test.c -version -o /var/tmp/cc4vkemH.s
GNU C version 2.95.2 19991024 (release) (sparc-sun-solaris2.7) compiled by
GNU C version 2.95.2 19991024 (release).
 /usr/ccs/bin/as -V -Qy -s -o /var/tmp/ccVR2ob5.o /var/tmp/cc4vkemH.s
/usr/ccs/bin/as: WorkShop Compilers 5.0 Alpha 03/27/98 Build
 /usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/collect2 -V -Y
P,/usr/ccs/lib:/usr/lib -Qy -o testit
/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/crt1.o
/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/crti.o
/usr/ccs/lib/values-Xa.o
/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/crtbegin.o -L/usr/
local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2 -L/usr/ccs/bin -L/usr/c
cs/lib -L/usr/local/sol2.7/lib /var/tmp/ccVR2ob5.o -lgcc -lc -lgcc
/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/crtend.o
/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/crtn.o
ld: Software Generation Utilities - Solaris/ELF (3.0)



wren->gcctest> gcc -v -o testit -mcpu=ultrasparc test.c
Reading specs from
/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs
gcc version 2.95.2 19991024 (release)

/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cpp -lang-c -v -D_
_GNUC__=2 -D__GNUC_MINOR__=95 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__s
parc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -
Asystem(unix) -Asystem(svr4) -D__sparc_v9__ -D__GCC_NEW_VARARGS__ -Acpu(spar
c) -Amachine(sparc) test.c /var/tmp/ccHbSM2U.i
GNU CPP version 2.95.2 19991024 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:

/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../sparc-
sun-solaris2.7/include
 /usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/include/g++
 /usr/local/include
End of omitted list.
 /usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cc1
/var/tmp/ccHbSM2U.i -quiet -dumpbase test.c -mcpu=ultrasparc -version -o
/var/tmp/cc2Y9faJ.s
GNU C version 2.95.2 19991024 (release) (sparc-sun-solaris2.7) compiled by
GNU C version 2.95.2 19991024 (release).
test.c: In function `main':
test.c:6: warning: overflow in implicit constant conversion
 /usr/ccs/bin/as -V -Qy -s -xarch=v8plusa -o /var/tmp/ccVtBBUA.o
/var/tmp/cc2Y9faJ.s
/usr/ccs/bin/as: WorkShop Compilers 5.0 Alpha 03/27/98 Build
 /usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/collect2 -V -Y
P,/usr/ccs/lib:/usr/lib -Qy -o testit
/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/crt1.o
/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/crti.o
/usr/ccs/lib/values-Xa.o
/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/crtbegin.o -L/usr/
local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2 -L/usr/ccs/bin -L/usr/c
cs/lib -L/usr/local/sol2.7/lib /var/tmp/ccVtBBUA.o -lgcc -lc -lgcc
/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/crtend.o
/usr/local/sol2.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/crtn.o
ld: Software Generation Utilities - Solaris/ELF (3.0)

Output of uname -a
----------------
wren->gcctest> uname -a
SunOS wren 5.7 Generic_106541-07 sun4u sparc SUNW,Ultra-5_10

Options for configure
----------------------

/usr/local/gcc-2.95.2/configure
--with-gcc-version-trigger=/wren0/gcc-2.95.2/gcc/version.c
--host=sparc-sun-solaris2.7 --prefix=/usr/local/sol2.7 --enable-shared
--enable-threads --enable-cpp
--enable-version-specific-runtime-libs --norecursion

test.i


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]