[gnu.g++.bug] g++ version 1.35.0, sunos 4.0.3 on sun 4/260

allen@UXC.CSO.UIUC.EDU (Michael Allen) (08/01/89)

I wanted to overload the builtin hex function to take an unsigned
argument, so I tried:

====================Cut Here for file tryhex.cc===========================
#include <stream.h>

char* hex(unsigned ux, int width =0)
{
  if ( long(ux) < 0 )
    {
      if ( width )
	return form(form("%d%%x",width),ux);
      else
	return form("%x",ux);
    }
  else
    return hex(long(ux));
}

int main()
{
  unsigned long z = 0xffffffff; // its signed value is -1

  cout << "z = " << z << " decimal, " << hex(z) << " hex.\n";
  return 0;
}
====================Cut Here===========================

Results of 'g++ -c tryhex.cc'
In function int main ():
tryhex.cc:20: Segmentation violation
g++: Program cc1plus got fatal signal 11.


I also tried this with the -O flag and the -g flag, each gave the same
error.

Thanks,
Michael Allen