Hmm. This is not good. gcc 3.2, just checked out of CVS, clean tree
and I get this:
2050 s->s->str[s->s->len << s->s->size_shift] = 0;
(gdb) bt
#0 0x080f1875 in string_builder_append (s=0xbffff1b8, from=
{ptr = 0x82e6cc4 "/home/neotron/pike/build/7.3-nodebug-asm/lib/modules/Getopt.pmod", shift = -1073745736}, len=1)
at /home/neotron/pike/7.3/src/stralloc.c:2050
#1 0x0811783c in append_path_unix (s=0xbffff1b8, path=
{ptr = 0x82e6cc4 "/home/neotron/pike/build/7.3-nodebug-asm/lib/modules/Getopt.pmod", shift = 0}, len=64) at /home/neotron/pike/7.3/src/combine_path.h:73
#2 0x081179be in f_combine_path_unix (args=2)
at /home/neotron/pike/7.3/src/stralloc.h:89
#3 0x0806ecfb in opcode_F_CALL_BUILTIN_AND_RETURN (arg1=-1073745496)
at /home/neotron/pike/7.3/src/interpret_functions.h:2059
#4 0x0831a15a in ?? ()
#5 0x08071510 in mega_apply (type=3221221800, args=-1073745496,
arg1=0xbffff1a8, arg2=0xbffff1a8)
at /home/neotron/pike/7.3/src/interpret.c:1415
#6 0x08072139 in apply (o=0x402d7000,
fun=0xbffff1a8 "\200m.\b\220\034\017\b\001", args=65536)
at /home/neotron/pike/7.3/src/interpret.c:1718
#7 0x080c18fd in main (argc=7, argv=0xbffff3d4)
at /home/neotron/pike/7.3/src/main.c:726
#8 0x400b7082 in __libc_start_main () from /lib/i686/libc.so.6
(gdb) p s
$1 = (struct string_builder *) 0xbffff1b8
(gdb) p *s
$2 = {s = 0xbffff1a8, malloced = 256, known_shift = 0}
(gdb) p *s->s
$3 = {refs = 137260416, size_shift = 135208080, len = 1, hval = 27,
next = 0xbffff1a8, str = ""}
(gdb) p from
$4 = {
ptr = 0x82e6cc4 "/home/neotron/pike/build/7.3-nodebug-asm/lib/modules/Getopt.pmod", shift = -1073745736}