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]

A bug in GCC 2.95.2 for SPARC


Hi,

I am reporting a bug in GCC 2.95.2 for SPARC. For the example shown
below, the compiler is generating an unaligned double store when
storing parameter (d1+d2):

main+0x009c:        std     %f2, [%sp + 0x64]

This results in a bus error on an UltraSPARC based machine running
Solaris 2.6.

% cat test_gcc.c

#include <stdio.h>

int main()
{
  char c1[4] = "abc\0";
  int i1 = 1;
  int i2 = 2;
  int i3 = 3;
  int i4 = 4;
  int i5 = 5;
  int i6 = 6;
  double d1 = 1.0;
  double d2 = 2.0;
  
  printf("c1 = %s, i1 = %d, i2 = %d, i3 = %d, i4 = %d, i5 = %d, i6 = %d,\
  	 d1+d2 = %3.1f\n", c1, i1, i2, i3, i4, i5, i6, d1+d2);

  return 0;
}

% gcc -Wall -m32 -mcpu=ultrasparc test_gcc.c -o test_gcc

% test_gcc
Bus Error (core dumped)

% gcc -v
Reading specs from .../gcc-2.95.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)

Thanks,

-James


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