tree ssa and type issues

Andreas Jaeger aj@suse.de
Sat May 21 18:43:00 GMT 2005


Gabriel Dos Reis <gdr@integrable-solutions.net> writes:

> Andreas Jaeger <aj@suse.de> writes:
>
> | Gabriel Dos Reis <gdr@integrable-solutions.net> 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, aj@suse.de, 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20050521/5ac5a46a/attachment.sig>


More information about the Gcc mailing list