On Wed, Sep 27, 2023 at 1:14 PM Jeff Law <jeffreya...@gmail.com> wrote: > > > > On 9/27/23 12:22, Joern Rennecke wrote: > > On Wed, 27 Sept 2023 at 18:22, Jeff Law <jeffreya...@gmail.com> wrote: > > > >> It would help to describe how these patterns were under specified so > >> that folks don't continue to make the same mistake as new tests get added. > > > > dg-final scan-assembler, scan-assembler-not, and scan-assembler-times > > use a tcl regular expression (often referred to abbreviated as RE), as > > described in https://www.tcl.tk/man/tcl8.4/TclCmd/re_syntax.html . > > > > If your RE is not specific enough, it can match LTO information that the > > compiler places into its assembly output when the relevant options are > > provided, which is common when running tests where the test harness > > iterates over a number of optimization option combinations. > > Note that '.' is an atom that can match any character. If you want to > > match a dot specifically, you have to escape it with a backslash: '\.' . > > When you are matching an instruction mnemonic, an effective way to > > avoid matching in LTO information is to enforce matching of word start > > (\m) and/or word end (\M) . > > Note also that the backslash has to be quoted. If the RE is enclosed in > > '"' quotes, extra backslashes are needed. That is not necessary when it > > is enclosed in curly braces. > > > > For example, "ld.w" will be matched in: > > > > .ascii "h\227\022\212ld@w\251jr\254'\320\255vwj\252\026\016\364" > > > > If you write {\mld\.w\M} instead, you avoid this problem. > OK. So that naturally leads to the question, why aren't others seeing > this, both in the RISC-V world and more generally. I'm not aware of any > case where I've run the testsuite and tripped over this issue, nor am I > aware of anyone else tripping over it.
I can answer the more generally part. Most other testcases if not all scan-assembler tries to add spaces that allow not to catch things out of place. Or even file/directory names. The documentation at https://gcc.gnu.org/onlinedocs/gccint/Final-Actions.html (and/or https://gcc.gnu.org/wiki/HowToPrepareATestcase) definitely could be expanded to make a mention of these gotchas really. Thanks, Andrew > > Jeff