[Bug target/93583] [10 Regression] bootstrap failure on powerpc64le-linux-gnu

rguenther at suse dot de gcc-bugzilla@gcc.gnu.org
Mon Feb 17 11:14:00 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93583

--- Comment #15 from rguenther at suse dot de <rguenther at suse dot de> ---
On Mon, 17 Feb 2020, marxin at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93583
> 
> --- Comment #14 from Martin Liška <marxin at gcc dot gnu.org> ---
> (In reply to Richard Biener from comment #12)
> > void *bar(const char*);
> > static void *__attribute__((malloc,noinline)) foo(const char *p)
> > {
> >   return bar (p);
> > }
> > 
> > int main(int argc, char **argv)
> > {
> >   foo (argv[0]);
> >   return 0;
> > }
> > 
> > 
> > doesn't ICE on x86_64
> 
> In this testcase you don't have foo being transformed to void function:
> 
> gcc malloc.c -c -O2 -fdump-tree-optimized=/dev/stdout
> 
> ;; Function foo (foo, funcdef_no=0, decl_uid=1913, cgraph_uid=1,
> symbol_order=0) (executed once)
> 
> __attribute__((noinline, malloc))
> foo (const char * p)
> {
>   void * _4;
> 
>   <bb 2> [local count: 1073741824]:
>   _4 = bar (p_2(D)); [tail call]
>   return _4;
> 
> }

I do:

__attribute__((noinline, malloc))
foo.isra (const char * p)
{
  <bb 2> [local count: 1073741824]:
  bar (p_1(D)); [tail call]
  return;

}

main (int argc, char * * argv)
{
  char * _1;

  <bb 2> [local count: 1073741824]:
  _1 = *argv_3(D);
  foo.isra (_1);
  return 0;

}


More information about the Gcc-bugs mailing list