------- Comment #1 from pinskia at gcc dot gnu dot org  2005-11-06 04:34 -------
Looks like another one of the call clobbered bugs:
Variable: buf, UID 1612, char[1], is an alias tag, is addressable, call
clobbered, default def: buf_2

Though that should not matter.
Here is a testcase where call clobberness is correct but it should not matter
as there is no way for the change to happen:
extern void bar (unsigned int);
extern void bar1 (const char **);

int
foo (void)
{
  char buf[1] = { 3 };
  const char *p = buf;
  const char **q = &p;
  unsigned int ch;
  switch (**q)
    {
    case 1:  ch = 5; break;
    default: ch = 0; break;
    }

  bar (ch);
  bar1 (q);
  return ch;
}


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |alias
   Last reconfirmed|0000-00-00 00:00:00         |2005-11-06 04:34:23
               date|                            |
            Summary|store_ccp is missing an     |store_ccp is missing an
                   |opportunity!?               |opportunity because of call
                   |                            |clobber/alias load?


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

Reply via email to