------- Comment #2 from kargl at gcc dot gnu dot org  2010-09-10 15:20 -------
The -fdump-tree-original for HJ's original code look like

rcrdrd (character(kind=1)[1:4] & restrict vtyp, integer(kind=4) _vtyp)
{
  static character(kind=1) dbl[1:1] = "D";

  (MEM[(c_char * {ref-all})vtyp] = MEM[(c_char * {ref-all})&dbl];, (void *)
vtyp;);
  __builtin_memset ((void *) vtyp + 1, 32, 3);
}

If I increase the length of DBL to 2, then the dump looks like

rcrdrd (character(kind=1)[1:4] & restrict vtyp, integer(kind=4) _vtyp)
{
  static character(kind=1) dbl[1:2] = "D ";

  __builtin_memmove ((void *) vtyp, (void *) &dbl, 2);
  __builtin_memset ((void *) vtyp + 2, 32, 2);
}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45636

Reply via email to