On 11/27/2017 04:34 PM, Jakub Jelinek wrote: > Hi! > > As mentioned in the PR, my C FE rvalue folding patch allows folding > const variable initializers into the uses of those variables in rvalue > contexts more than before, and so we get warnings about UB in the test, > because an unprototyped function is cast to a function type with ellipsis in > it. > > It isn't entirely clear what exactly the test wants to test, as mentioned > in the PR, this is one of the options how to solve it, by dropping the > const it can't be optimized in the FEs (the optimizers can still figure out > the static vars are never written to). Another option would be just > add -w to dg-options, another one is const volatile. > > Regtested on x86_64-linux and i686-linux, ok for trunk? > > 2017-11-27 Jakub Jelinek <ja...@redhat.com> > > PR c/83117 > * gcc.target/x86_64/abi/ms-sysv/gen.cc (make_do_tests_decl): Drop > const from do_test_{u,v}*. > > --- gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/gen.cc.jj 2017-05-22 > 10:49:45.000000000 +0200 > +++ gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/gen.cc 2017-11-27 > 11:57:14.889570915 +0100 > @@ -392,7 +392,7 @@ static void make_do_tests_decl (const ve > continue; > > comma.reset (); > - out << "static __attribute__ ((ms_abi)) long (*const do_test_" > + out << "static __attribute__ ((ms_abi)) long (*do_test_" > << (unaligned ? "u" : "") > << (varargs ? "v" : "") << i << ") ("; > > > Jakub >
I don't have a problem with removing const, it's only there for const-correctness and caution. I just posted to the PR a bit ago and I'm curious if there is a better approach when using assembly stubs that are meant to be called in varying ways. CV would work also, although there's no real need to refetch the address before each use. If you don't have a better way to do this then please use this patch. Thanks! Daniel