> Reverting your patch makes it go away too.  I'll try and look into it
> tomorrow.

tree
build_string (int len, const char *str)
{
  tree s;
  size_t length;
  
  length = len + sizeof (struct tree_string);

  s = ggc_alloc_tree (length);

Breakpoint 5, build_string (len=34,
    str=0x1048e58 "No space for profiling buffer(s)\n")
    at /home/eric/svn/gcc/gcc/tree.c:1124
1124      length = len + sizeof (struct tree_string);
(gdb) next
1131      s = ggc_alloc_tree (length);
(gdb) p length
$1 = 58
(gdb) next
1133      memset (s, 0, sizeof (struct tree_common));
(gdb) p s
$2 = 0xff3803fc

's' should be 8-byte aligned because it's a "tree".

ggc_alloc_stat (size=58) at /home/eric/svn/gcc/gcc/ggc-page.c:1089
1089      if (size < 512)
(gdb) next
1091          order = size_lookup[size];
(gdb)
1092          object_size = OBJECT_SIZE (order);
(gdb)
1103      entry = G.pages[order];
(gdb) p order
$6 = 41
(gdb) p object_size
$7 = 60

Breakpoint 6, init_ggc () at /home/eric/svn/gcc/gcc/ggc-page.c:1548
1548          mask = ~(((unsigned)-1) << ffs (OBJECT_SIZE (order)));
(gdb) p order
$19 = 41
(gdb) next
1549          mask &= 2 * MAX_ALIGNMENT - 1;
(gdb) x/i $pc
0xa931c8 <init_ggc+764>:        ld  [ %fp + -24 ], %g1
(gdb) x/i
0xa931cc <init_ggc+768>:        and  %g1, 0xf, %g1

-- 
Eric Botcazou

Reply via email to