------- Comment #9 from rguenth at gcc dot gnu dot org  2008-11-06 13:24 -------
We ICE during greg trying to do

#3  0x0000000000d86888 in force_const_mem (mode=DFmode, x=0x7ffff7e7c410)
    at /space/rguenther/src/svn/gcc-4_3-branch/gcc/varasm.c:3535
3535          align = CONSTANT_ALIGNMENT (make_tree (type, x), align);
(gdb) l
3530      align = GET_MODE_ALIGNMENT (mode == VOIDmode ? word_mode : mode);
3531    #ifdef CONSTANT_ALIGNMENT
3532      {
3533        tree type = lang_hooks.types.type_for_mode (mode, 0);
3534        if (type != NULL_TREE)
3535          align = CONSTANT_ALIGNMENT (make_tree (type, x), align);
3536      }
3537    #endif

and call make_tree with (const_int 1 [0x1]) and double.  Oops.

More reduced C testcase:

void foo(double);
void CreateDefaultTexture(double mnMinimum, double mnMaximum, 
                          unsigned short nCreateWhat)
{
  double d = 0.0;
  for(;;)
    {
      if(nCreateWhat & (0x0001)
         && mnMinimum != 0.0)
        d = mnMinimum;
      if(nCreateWhat & (0x0002)
         && mnMaximum != 0.0)
        d = mnMaximum;
      foo(d);
    }
}


-- 


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

Reply via email to