Gabriel Dos Reis <[EMAIL PROTECTED]> writes:

> Andreas Jaeger <[EMAIL PROTECTED]> writes:
>
> | Gabriel Dos Reis <[EMAIL PROTECTED]> writes:
> | 
> | > Hi again,
> | >
> | > I just hit this one from tree-ssa-into.c:rewrite_into_ssa()

Note update_ssa has the same problem.

> | >
> | >   /* Initialize dominance frontier.  */
> | >   dfs = (bitmap *) xmalloc (last_basic_block * sizeof (bitmap *));
> | >                                                        ^^^^^^^^
> | >                                                                 
> | > If the sizeof operand really supposed to be "bitmap*" and not "bitmap"?
> | 
> | This indeed looks wrong - and could lead to real memory corruption
> | :-(.  If this is wrong, he should be changed on the 4.0 branch as
> | well,
>
> And if it is wrong, it would be interesting to know wheter we already
> have PRs related to that memory corruption -- but I guess it would be
> hard to know :-)

Yeah.


> Parenthetically, I was wondering who is freeing those extensive
> regions of storage xmalloc/xcalloc()ed here and there?

I went through the file (btw. it's named tree-into-ssa.c) and it does
not look that bad.  I could not find a place which is obviously
wrong.  Looking at rewrite_into_ssa I see:

  interesting_blocks = sbitmap_alloc (last_basic_block);
  dfs = (bitmap *) xmalloc (last_basic_block * sizeof (bitmap *));
  FOR_EACH_BB (bb)
    dfs[bb->index] = BITMAP_ALLOC (NULL);
[...]
  /* Free allocated memory.  */
  FOR_EACH_BB (bb)
    BITMAP_FREE (dfs[bb->index]);
  free (dfs);
  sbitmap_free (interesting_blocks);

So, this does look fine,
Andreas
-- 
 Andreas Jaeger, [EMAIL PROTECTED], http://www.suse.de/~aj
  SUSE Linux Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
   GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126

Attachment: pgp8bWMWVmwy1.pgp
Description: PGP signature

Reply via email to