http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48835
Mikael Pettersson <mikpe at it dot uu.se> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mikpe at it dot uu.se --- Comment #1 from Mikael Pettersson <mikpe at it dot uu.se> 2011-04-30 16:19:42 UTC --- (In reply to comment #0) > 0x80136f0e <+30>: movel #-2140172272,%d0 > 0x80136f14 <+36>: movel #-2140172268,%d1 > 0x80136f1a <+42>: andil #255,%d2 > 0x80136f20 <+48>: movel %d2,%sp@- > 0x80136f22 <+50>: movel %d1,%sp@- > 0x80136f24 <+52>: movel %d0,%sp@- > 0x80136f26 <+54>: jsr 0x80187a8a <system__string_ops__str_concat_sc> > […] > > See how %d0 and %d1 (arguments to System.String_Ops.Str_Concat) have immense > sizes. I don’t know the Ada calling conventions though, and three things are > pushed, yet "." is a one-byte string, and Direct_Separator is only a char. Translated to hex the values for d0 and d1 are 0x806f9010 and 0x806f9014, which look like pointers into the executable itself. They're probably pointers to string values or something like that. > Program received signal SIGSEGV, Segmentation fault. > 0xc014d428 in memcpy (dstpp=0x8018668a, srcpp=0x80a2688e, len=2149082762) at > memcpy.c:61 'len' is obviously bogus, in hex it is 0x8018668a, which equals dstpp! Either memcpy() is utterly broken (unlikely) or something gave it broken parameters.