So it looks like the problem isn't in the pattern matching, it is in the
counting.
If I use this:
/* { dg-final { scan-assembler-times "data1.*?0x3.*? DW_AT_inline" 3 } } */
Everything works. If I change it to:
/* { dg-final { scan-assembler-times "(data1|byte).*?0x3.*? DW_AT_inline" 3 }
} */
Then it fails. But if I change the count from 3 to 2, like this:
/* { dg-final { scan-assembler-times "(data1|byte).*?0x3.*? DW_AT_inline" 2 }
} */
Then it works again.
Now, there are 3 instances of the string in the output file, I know that
because the first
string that I use (with no pipe in it) works and by looking at the assembler
file by hand.
But for some reason when I add the parens to the expression then the
scan-assembler-times thinks
there are only two instances. But there are 3 when I run it by hand and all 3
lines are exactly
identical. This must be a bug in the scan-assembler-times code somewhere.
Steve Ellcey
[email protected]