------- Additional Comments From pinskia at gcc dot gnu dot org  2005-05-15 
18:07 -------
Here is as reduced as I could get it:
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src);

extern char *foo (void);
extern void *malloc(__SIZE_TYPE__) __attribute__((malloc));

char v[100];

void baz()
{
  char *vec;
  char buf[512];

  char *p = buf;
  while (v[(*p)])
    p++;

  if (*p != '#' && (p = foo()) != 0) {
    strcpy ((char*)malloc(10), p);
  }
}

Note it works with the C front-end but that is only because of the difference 
in the trees which are 
produced (stupid C++ front-end produces more trees for the if statement).

-- 


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

Reply via email to