Message ID | Y5sR1W/p4K0CEMRU@tucnak |
---|---|
State | New |
Headers | show |
Series | testsuite: Add support for Rust and Modula-2 effective target tests | expand |
On Thu, 15 Dec 2022, Jakub Jelinek wrote: > Hi! > > This patch allows magic comments also for Rust and Modula-2 > for effective target tests etc. and fixes up the Assembly entry > - it is a glob, so /* Assembly can match /whatever Assembly and > not just /* Assembly. > > Tested on x86_64-linux with > make check-g++ RUNTESTFLAGS=i386.exp=pr35513* > and verifying it still uses *.S extension for the property_1_needed > effective target test. > > Ok for trunk? OK. Thanks, Richard. > 2022-12-15 Jakub Jelinek <jakub@redhat.com> > > * lib/target-supports.exp (check_compile): Add support for > Rust and Modula-2. Use \* rather than * for /* comment for > Assembly. > > --- gcc/testsuite/lib/target-supports.exp.jj 2022-11-30 10:29:42.217698938 +0100 > +++ gcc/testsuite/lib/target-supports.exp 2022-12-15 13:08:47.941221943 +0100 > @@ -36,7 +36,9 @@ > # "! Fortran" for Fortran code, > # "/* ObjC", for ObjC > # "// ObjC++" for ObjC++ > -# and "// Go" for Go > +# "// Go" for Go > +# "// Rust" for Rust > +# and "(* Modula-2" for Modula-2 > # If the tool is ObjC/ObjC++ then we overide the extension to .m/.mm to > # allow for ObjC/ObjC++ specific flags. > > @@ -58,13 +60,15 @@ proc check_compile {basename type conten > set options "" > } > switch -glob -- $contents { > - "*/* Assembly*" { set src ${basename}[pid].S } > + "*/\* Assembly*" { set src ${basename}[pid].S } > "*! Fortran*" { set src ${basename}[pid].f90 } > "*// C++*" { set src ${basename}[pid].cc } > "*// D*" { set src ${basename}[pid].d } > "*// ObjC++*" { set src ${basename}[pid].mm } > "*/* ObjC*" { set src ${basename}[pid].m } > "*// Go*" { set src ${basename}[pid].go } > + "*// Rust*" { set src ${basename}[pid].rs } > + "*(\* Modula-2*" { set src ${basename}[pid].mod } > default { > switch -- $tool { > "objc" { set src ${basename}[pid].m } > > Jakub > >
Hi Jakub, On 12/15/22 13:23, Jakub Jelinek wrote: > Hi! > > This patch allows magic comments also for Rust and Modula-2 > for effective target tests etc. and fixes up the Assembly entry > - it is a glob, so /* Assembly can match /whatever Assembly and > not just /* Assembly. > > Tested on x86_64-linux with > make check-g++ RUNTESTFLAGS=i386.exp=pr35513* > and verifying it still uses *.S extension for the property_1_needed > effective target test. > > Ok for trunk? > > 2022-12-15 Jakub Jelinek <jakub@redhat.com> > > * lib/target-supports.exp (check_compile): Add support for > Rust and Modula-2. Use \* rather than * for /* comment for > Assembly. > > --- gcc/testsuite/lib/target-supports.exp.jj 2022-11-30 10:29:42.217698938 +0100 > +++ gcc/testsuite/lib/target-supports.exp 2022-12-15 13:08:47.941221943 +0100 > @@ -36,7 +36,9 @@ > # "! Fortran" for Fortran code, > # "/* ObjC", for ObjC > # "// ObjC++" for ObjC++ > -# and "// Go" for Go > +# "// Go" for Go > +# "// Rust" for Rust > +# and "(* Modula-2" for Modula-2 > # If the tool is ObjC/ObjC++ then we overide the extension to .m/.mm to > # allow for ObjC/ObjC++ specific flags. > > @@ -58,13 +60,15 @@ proc check_compile {basename type conten > set options "" > } > switch -glob -- $contents { > - "*/* Assembly*" { set src ${basename}[pid].S } > + "*/\* Assembly*" { set src ${basename}[pid].S } > "*! Fortran*" { set src ${basename}[pid].f90 } > "*// C++*" { set src ${basename}[pid].cc } > "*// D*" { set src ${basename}[pid].d } > "*// ObjC++*" { set src ${basename}[pid].mm } > "*/* ObjC*" { set src ${basename}[pid].m } > "*// Go*" { set src ${basename}[pid].go } > + "*// Rust*" { set src ${basename}[pid].rs } > + "*(\* Modula-2*" { set src ${basename}[pid].mod } > default { > switch -- $tool { > "objc" { set src ${basename}[pid].m } > > Jakub > LGTM :) Thank you, Arthur
On Dez 15 2022, Jakub Jelinek via Gcc-rust wrote: > @@ -58,13 +60,15 @@ proc check_compile {basename type conten > set options "" > } > switch -glob -- $contents { > - "*/* Assembly*" { set src ${basename}[pid].S } > + "*/\* Assembly*" { set src ${basename}[pid].S } That's a no-op. Either double the backslash or quote with {} instead of "".
On Dez 15 2022, Jakub Jelinek via Gcc-rust wrote: > @@ -58,13 +60,15 @@ proc check_compile {basename type conten > set options "" > } > switch -glob -- $contents { > - "*/* Assembly*" { set src ${basename}[pid].S } > + "*/\* Assembly*" { set src ${basename}[pid].S } > "*! Fortran*" { set src ${basename}[pid].f90 } > "*// C++*" { set src ${basename}[pid].cc } > "*// D*" { set src ${basename}[pid].d } > "*// ObjC++*" { set src ${basename}[pid].mm } > "*/* ObjC*" { set src ${basename}[pid].m } You probably want to quote the * here too.
On Thu, Dec 15, 2022 at 02:03:36PM +0100, Andreas Schwab wrote: > On Dez 15 2022, Jakub Jelinek via Gcc-rust wrote: > > > @@ -58,13 +60,15 @@ proc check_compile {basename type conten > > set options "" > > } > > switch -glob -- $contents { > > - "*/* Assembly*" { set src ${basename}[pid].S } > > + "*/\* Assembly*" { set src ${basename}[pid].S } > > "*! Fortran*" { set src ${basename}[pid].f90 } > > "*// C++*" { set src ${basename}[pid].cc } > > "*// D*" { set src ${basename}[pid].d } > > "*// ObjC++*" { set src ${basename}[pid].mm } > > "*/* ObjC*" { set src ${basename}[pid].m } > > You probably want to quote the * here too. You're right on both, I've committed this follow-up after verifying that Assembly test still works (it works even with \\\* but doesn't with \\\\*) and verifying that changing check_effective_target_property_1_needed to have // Assembly instead of /* Assembly incorrectly works with "*/* Assembly*", "*/\* Assembly*" but correctly doesn't work with "*/\\* Assembly*" or "*/\\\* Assembly*". Committed to trunk. Sorry. 2022-12-15 Jakub Jelinek <jakub@redhat.com> * lib/target-supports.exp (check_compile): Further quoting fixes for /* Assembly, /* ObjC and (* Modula-2 *) checks. --- gcc/testsuite/lib/target-supports.exp.jj 2022-12-15 13:57:40.000000000 +0100 +++ gcc/testsuite/lib/target-supports.exp 2022-12-15 14:14:02.987854385 +0100 @@ -60,15 +60,15 @@ proc check_compile {basename type conten set options "" } switch -glob -- $contents { - "*/\* Assembly*" { set src ${basename}[pid].S } + "*/\\* Assembly*" { set src ${basename}[pid].S } "*! Fortran*" { set src ${basename}[pid].f90 } "*// C++*" { set src ${basename}[pid].cc } "*// D*" { set src ${basename}[pid].d } "*// ObjC++*" { set src ${basename}[pid].mm } - "*/* ObjC*" { set src ${basename}[pid].m } + "*/\\* ObjC*" { set src ${basename}[pid].m } "*// Go*" { set src ${basename}[pid].go } "*// Rust*" { set src ${basename}[pid].rs } - "*(\* Modula-2*" { set src ${basename}[pid].mod } + "*(\\* Modula-2*" { set src ${basename}[pid].mod } default { switch -- $tool { "objc" { set src ${basename}[pid].m } Jakub
--- gcc/testsuite/lib/target-supports.exp.jj 2022-11-30 10:29:42.217698938 +0100 +++ gcc/testsuite/lib/target-supports.exp 2022-12-15 13:08:47.941221943 +0100 @@ -36,7 +36,9 @@ # "! Fortran" for Fortran code, # "/* ObjC", for ObjC # "// ObjC++" for ObjC++ -# and "// Go" for Go +# "// Go" for Go +# "// Rust" for Rust +# and "(* Modula-2" for Modula-2 # If the tool is ObjC/ObjC++ then we overide the extension to .m/.mm to # allow for ObjC/ObjC++ specific flags. @@ -58,13 +60,15 @@ proc check_compile {basename type conten set options "" } switch -glob -- $contents { - "*/* Assembly*" { set src ${basename}[pid].S } + "*/\* Assembly*" { set src ${basename}[pid].S } "*! Fortran*" { set src ${basename}[pid].f90 } "*// C++*" { set src ${basename}[pid].cc } "*// D*" { set src ${basename}[pid].d } "*// ObjC++*" { set src ${basename}[pid].mm } "*/* ObjC*" { set src ${basename}[pid].m } "*// Go*" { set src ${basename}[pid].go } + "*// Rust*" { set src ${basename}[pid].rs } + "*(\* Modula-2*" { set src ${basename}[pid].mod } default { switch -- $tool { "objc" { set src ${basename}[pid].m }