On Tue, 27 Feb 2018, Thomas Schwinge wrote: > Hi! > > Given that several users have run into this, is this (trunk r256891) OK > to commit to open release branches, too.
Sure. > On Fri, 19 Jan 2018 09:42:08 +0100, Tom de Vries <tom_devr...@mentor.com> > wrote: > > On 01/19/2018 01:59 AM, Cesar Philippidis wrote: > > > Here's the updated patch with the changes that you requested. There are > > > no new regressions in trunk. I tested it on my desktop running driver > > > 387.34 on a Pascal GPU. > > > > > > Is this OK for trunk? > > > > OK with 'PR target/83790' added to the changelog entry. > > > > Thanks, > > - Tom > > > > > > > > trunk-cuda9.diff > > > > > > > > > 2018-01-18 Cesar Philippidis <ce...@codesourcery.com> > > > > > > gcc/ > > > * config/nvptx/nvptx.c (output_init_frag): Don't use generic address > > > spaces for function labels. > > > > > > gcc/testsuite/ > > > * gcc.target/nvptx/indirect_call.c: New test. > > > > > > diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c > > > index 86fc13f4fc0..4cb87c8ad07 100644 > > > --- a/gcc/config/nvptx/nvptx.c > > > +++ b/gcc/config/nvptx/nvptx.c > > > @@ -1899,9 +1899,15 @@ output_init_frag (rtx sym) > > > > > > if (sym) > > > { > > > - fprintf (asm_out_file, "generic("); > > > + bool function = (SYMBOL_REF_DECL (sym) > > > + && (TREE_CODE (SYMBOL_REF_DECL (sym)) == FUNCTION_DECL)); > > > + if (!function) > > > + fprintf (asm_out_file, "generic("); > > > output_address (VOIDmode, sym); > > > - fprintf (asm_out_file, val ? ") + " : ")"); > > > + if (!function) > > > + fprintf (asm_out_file, ")"); > > > + if (val) > > > + fprintf (asm_out_file, " + "); > > > } > > > > > > if (!sym || val) > > > diff --git a/gcc/testsuite/gcc.target/nvptx/indirect_call.c > > > b/gcc/testsuite/gcc.target/nvptx/indirect_call.c > > > new file mode 100644 > > > index 00000000000..39992a7137b > > > --- /dev/null > > > +++ b/gcc/testsuite/gcc.target/nvptx/indirect_call.c > > > @@ -0,0 +1,19 @@ > > > +/* { dg-options "-O2 -msoft-stack" } */ > > > +/* { dg-do run } */ > > > + > > > +int > > > +f1 (int a) > > > +{ > > > + return a + 1; > > > +} > > > + > > > +int (*f2)(int) = f1; > > > + > > > +int > > > +main () > > > +{ > > > + if (f2 (100) != 101) > > > + __builtin_abort(); > > > + > > > + return 0; > > > +} > > > Grüße > Thomas > > -- Richard Biener <rguent...@suse.de> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)