Does this testsuite patch look OK? https://gcc.gnu.org/pipermail/gcc-patches/2023-May/620275.html
Thanks David On Mon, 2023-06-12 at 19:11 -0400, David Malcolm wrote: > Please can someone review this testsuite patch: > https://gcc.gnu.org/pipermail/gcc-patches/2023-May/620275.html > > Thanks > Dave > > On Wed, 2023-05-31 at 14:06 -0400, David Malcolm wrote: > > I have followup patches that require checking for multiline > > patterns > > that have blank lines within them, so this moves the handling of > > multiline patterns before the check for blank lines, allowing for > > such > > multiline patterns. > > > > Doing so uncovers some issues with existing multiline directives, > > which > > the patch fixes. > > > > gcc/testsuite/ChangeLog: > > * c-c++-common/Wlogical-not-parentheses-2.c: Split up the > > multiline directive. > > * gcc.dg/analyzer/malloc-macro-inline-events.c: Remove > > redundant > > dg-regexp directives. > > * gcc.dg/missing-header-fixit-5.c: Split up the multiline > > directives. > > * lib/gcc-dg.exp (gcc-dg-prune): Move call to > > handle-multiline-outputs from prune_gcc_output to here. > > * lib/multiline.exp (dg-end-multiline-output): Move call to > > maybe-handle-nn-line-numbers from prune_gcc_output to here. > > * lib/prune.exp (prune_gcc_output): Move calls to > > maybe-handle-nn-line-numbers and handle-multiline-outputs > > from > > here to the above. > > --- > > .../c-c++-common/Wlogical-not-parentheses-2.c | 2 ++ > > .../gcc.dg/analyzer/malloc-macro-inline-events.c | 5 ----- > > gcc/testsuite/gcc.dg/missing-header-fixit-5.c | 10 > > ++++++++-- > > gcc/testsuite/lib/gcc-dg.exp | 5 +++++ > > gcc/testsuite/lib/multiline.exp | 7 > > ++++++- > > gcc/testsuite/lib/prune.exp | 7 ------ > > - > > 6 files changed, 21 insertions(+), 15 deletions(-) > > > > diff --git a/gcc/testsuite/c-c++-common/Wlogical-not-parentheses- > > 2.c > > b/gcc/testsuite/c-c++-common/Wlogical-not-parentheses-2.c > > index ba8dce84f5d..2d9382014c4 100644 > > --- a/gcc/testsuite/c-c++-common/Wlogical-not-parentheses-2.c > > +++ b/gcc/testsuite/c-c++-common/Wlogical-not-parentheses-2.c > > @@ -12,6 +12,8 @@ foo (int aaa, int bbb) > > /* { dg-begin-multiline-output "" } > > r += !aaa == bbb; > > ^~ > > + { dg-end-multiline-output "" } */ > > +/* { dg-begin-multiline-output "" } > > r += !aaa == bbb; > > ^~~~ > > ( ) > > diff --git a/gcc/testsuite/gcc.dg/analyzer/malloc-macro-inline- > > events.c b/gcc/testsuite/gcc.dg/analyzer/malloc-macro-inline- > > events.c > > index f08aee626a5..9134bb4781e 100644 > > --- a/gcc/testsuite/gcc.dg/analyzer/malloc-macro-inline-events.c > > +++ b/gcc/testsuite/gcc.dg/analyzer/malloc-macro-inline-events.c > > @@ -12,11 +12,6 @@ int test (void *ptr) > > WRAPPED_FREE (ptr); /* { dg-message "in expansion of macro > > 'WRAPPED_FREE'" } */ > > WRAPPED_FREE (ptr); /* { dg-message "in expansion of macro > > 'WRAPPED_FREE'" } */ > > > > - /* Erase the spans indicating the header file > > - (to avoid embedding path assumptions). */ > > - /* { dg-regexp "\[^|\]+/malloc-macro.h:\[0-9\]+:\[0-9\]+:" } */ > > - /* { dg-regexp "\[^|\]+/malloc-macro.h:\[0-9\]+:\[0-9\]+:" } */ > > - > > /* { dg-begin-multiline-output "" } > > NN | #define WRAPPED_FREE(PTR) free(PTR) > > | ^~~~~~~~~ > > diff --git a/gcc/testsuite/gcc.dg/missing-header-fixit-5.c > > b/gcc/testsuite/gcc.dg/missing-header-fixit-5.c > > index 916033c689c..bf44feb24a9 100644 > > --- a/gcc/testsuite/gcc.dg/missing-header-fixit-5.c > > +++ b/gcc/testsuite/gcc.dg/missing-header-fixit-5.c > > @@ -12,14 +12,18 @@ foo (char *m, int i) > > /* { dg-begin-multiline-output "" } > > 11 | if (isdigit (m[0])) > > | ^~~~~~~ > > + { dg-end-multiline-output "" } */ > > + /* { dg-begin-multiline-output "" } > > +++ |+#include <ctype.h> > > 1 | > > { dg-end-multiline-output "" } */ > > { > > return abs (i); /* { dg-warning "implicit declaration of > > function" } */ > > /* { dg-begin-multiline-output "" } > > - 19 | return abs (i); > > + 21 | return abs (i); > > | ^~~ > > + { dg-end-multiline-output "" } */ > > + /* { dg-begin-multiline-output "" } > > +++ |+#include <stdlib.h> > > 1 | > > { dg-end-multiline-output "" } */ > > @@ -27,8 +31,10 @@ foo (char *m, int i) > > else > > putchar (m[0]); /* { dg-warning "implicit declaration of > > function" } */ > > /* { dg-begin-multiline-output "" } > > - 28 | putchar (m[0]); > > + 32 | putchar (m[0]); > > | ^~~~~~~ > > + { dg-end-multiline-output "" } */ > > + /* { dg-begin-multiline-output "" } > > +++ |+#include <stdio.h> > > 1 | > > { dg-end-multiline-output "" } */ > > diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc- > > dg.exp > > index 4ed4233efff..6475cab46de 100644 > > --- a/gcc/testsuite/lib/gcc-dg.exp > > +++ b/gcc/testsuite/lib/gcc-dg.exp > > @@ -364,6 +364,11 @@ proc gcc-dg-prune { system text } { > > # Always remember to clear it in .exp file after executed all > > tests. > > global dg_runtest_extra_prunes > > > > + # Call into multiline.exp to handle any multiline output > > directives. > > + # This is done before the check for blank lines so that > > multiline > > + # output directives can have blank lines within them. > > + set text [handle-multiline-outputs $text] > > + > > # Complain about blank lines in the output (PR other/69006) > > global allow_blank_lines > > if { !$allow_blank_lines } { > > diff --git a/gcc/testsuite/lib/multiline.exp > > b/gcc/testsuite/lib/multiline.exp > > index 73621a0bdbd..4c25bb76f43 100644 > > --- a/gcc/testsuite/lib/multiline.exp > > +++ b/gcc/testsuite/lib/multiline.exp > > @@ -139,7 +139,7 @@ proc dg-end-multiline-output { args } { > > verbose "within dg-end-multiline-output: > > multiline_expected_outputs: $multiline_expected_outputs" 3 > > } > > > > -# Hook to be called by prune.exp's prune_gcc_output to > > +# Hook to be called by gcc-dg.exp's gcc-dg-prune to > > # look for the expected multiline outputs, pruning them, > > # reporting PASS for those that are found, and FAIL for > > # those that weren't found. > > @@ -149,6 +149,11 @@ proc dg-end-multiline-output { args } { > > proc handle-multiline-outputs { text } { > > global multiline_expected_outputs > > global testname_with_flags > > + > > + # If dg-enable-nn-line-numbers was provided, then obscure > > source-margin > > + # line numbers by converting them to "NN" form. > > + set text [maybe-handle-nn-line-numbers $text] > > + > > set index 0 > > foreach entry $multiline_expected_outputs { > > verbose " entry: $entry" 3 > > diff --git a/gcc/testsuite/lib/prune.exp > > b/gcc/testsuite/lib/prune.exp > > index cfe427c99ac..8d37b24e59b 100644 > > --- a/gcc/testsuite/lib/prune.exp > > +++ b/gcc/testsuite/lib/prune.exp > > @@ -108,13 +108,6 @@ proc prune_gcc_output { text } { > > # Many tests that use visibility will still pass on platforms > > that don't support it. > > regsub -all "(^|\n)\[^\n\]*lto1: warning: visibility attribute > > not supported in this configuration; ignored\[^\n\]*" $text "" text > > > > - # If dg-enable-nn-line-numbers was provided, then obscure > > source-margin > > - # line numbers by converting them to "NN" form. > > - set text [maybe-handle-nn-line-numbers $text] > > - > > - # Call into multiline.exp to handle any multiline output > > directives. > > - set text [handle-multiline-outputs $text] > > - > > #send_user "After:$text\n" > > > > return $text >