https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80552

            Bug ID: 80552
           Summary: Make consecutive relative line numbers more
                    maintainable
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: testsuite
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vries at gcc dot gnu.org
  Target Milestone: ---

[ Spinoff from PR80221: "Contrib script to rewrite testcase from absolute to
relative line numbers" ]

We have patterns using relative line numbers in dg directives like this in
gcc/testsuite/obj-c++.dg/class-extension-2.mm:
...
@implementation MyObject2
@end /* { dg-warning "incomplete implementation of class .MyObject2." } */
     /* { dg-warning "method definition for .-test. not found" "" { target
*-*-* } .-1 } */
     /* { dg-warning "class .MyObject2. does not fully implement the
.MyProtocol. protocol" "" { target *-*-* } .-2 } */
     /* { dg-warning "method definition for .-test2. not found" "" { target
*-*-* } .-3 } */
     /* { dg-warning "class .MyObject2. does not fully implement the
.MyProtocol2. protocol" "" { target *-*-* } .-4 } */
     /* { dg-warning "method definition for .-test3. not found" "" { target
*-*-* } .-5 } */
     /* { dg-warning "class .MyObject2. does not fully implement the
.MyProtocol3. protocol" "" { target *-*-* } .-6 } */
...

A few ideas were generated in PR80221 to deal with this in a less verbose and
more maintainable fashion.

PR80221 comment 7:
...
  foobar;
  /* { dg-warning "warning for foobar" continue }
     { dg-warning "another warning for foobar" continue }
     { dg-error "error for foobar" } */
...

PR80221 comment 10:
...
    foobar;
    /* { dg-warning "warning for foobar" .-1 }
       Bla, bla, reasoning.
       { dg-warning "another warning for foobar" continue }
       Bla, bla, more reasoning.
       { dg-error "error for foobar" continue } */
...

PR80221 comment 11:
...
    foobar;
    /* { dg-begin-same-line-output .-1 }
       ...
       { dg-warning "warning for foobar" }
       ...
       { dg-message "note for foobar" }
       ...
       { dg-error "error for foobar" }
       ...
       { dg-end-same-line-output }  */
...

Reply via email to