[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