Message ID | yddpoh6bzm9.fsf@CeBiTec.Uni-Bielefeld.DE |
---|---|
State | New |
Headers | show |
On Mar 24, 2017, at 5:58 AM, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> wrote: > - { /* { dg-warning "statement may fall through" "" { target c } 23 } */ > - int a[i]; /* { dg-warning "statement may fall through" "" { target c++ } 24 } */ > + { /* { dg-warning "statement may fall through" "" { target c } 24 } */ > + int a[i]; /* { dg-warning "statement may fall through" "" { target c++ } 25 } */ Any reason to not use relative line numbers? See testsuite/gcc.dg/dg-test-1.c for a template for how to do it. I think they should work and be better. Indeed, all line numbers should be relative, generally speaking.
On 24/03/17 18:13, Mike Stump wrote: > On Mar 24, 2017, at 5:58 AM, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> wrote: >> - { /* { dg-warning "statement may fall through" "" { target c } 23 } */ >> - int a[i]; /* { dg-warning "statement may fall through" "" { target c++ } 24 } */ >> + { /* { dg-warning "statement may fall through" "" { target c } 24 } */ >> + int a[i]; /* { dg-warning "statement may fall through" "" { target c++ } 25 } */ > > Any reason to not use relative line numbers? See testsuite/gcc.dg/dg-test-1.c for a template for how to do it. I think they should work and be better. Indeed, all line numbers should be relative, generally speaking. > FYI, I've written a script to convert all tests to relative line numbers. See PR80221 - "Contrib script to rewrite testcase from absolute to relative line numbers" ( https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80221 ). Thanks, - Tom
[ reposting with patch removed, was too big for gcc-patches@ ] On 04/26/2017 01:33 PM, Tom de Vries wrote: > On 03/27/2017 03:11 PM, Tom de Vries wrote: >> On 24/03/17 18:13, Mike Stump wrote: >>> On Mar 24, 2017, at 5:58 AM, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> >>> wrote: >>>> - { /* { dg-warning "statement may fall through" "" { target c } >>>> 23 } */ >>>> - int a[i]; /* { dg-warning "statement may fall through" "" { >>>> target c++ } 24 } */ >>>> + { /* { dg-warning "statement may fall through" "" { target c } >>>> 24 } */ >>>> + int a[i]; /* { dg-warning "statement may fall through" "" { >>>> target c++ } 25 } */ >>> >>> Any reason to not use relative line numbers? See >>> testsuite/gcc.dg/dg-test-1.c for a template for how to do it. I think >>> they should work and be better. Indeed, all line numbers should be >>> relative, generally speaking. >>> >> >> FYI, I've written a script to convert all tests to relative line >> numbers. See PR80221 - "Contrib script to rewrite testcase from absolute >> to relative line numbers" ( >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80221 ). > > A more restrictive version of that script (posted at > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80221#c13 ) rewrites a line > from absolute to relative linenumber if: > - the relative line number is '.-1', '.' or '.+1', or > - it's adjacent to a line we will rewrite (with the line numbers being > consecutive) > > Committed. > > Thanks, > - Tom > > 0001-Use-relative-line-number-for-subsequent-dg-directives.patch > > > Use relative line number for subsequent dg directives > > 2017-04-19 Tom de Vries <tom@codesourcery.com> > > PR testsuite/80221 > * c-c++-common/Wimplicit-fallthrough-6.c: Use relative line number for > subsequent dg directives. > * c-c++-common/Wimplicit-fallthrough-7.c: Same. > * c-c++-common/Wint-to-pointer-cast-3.c: Same. > * c-c++-common/attr-fallthrough-2.c: Same. > * c-c++-common/cilk-plus/AN/parser_errors2.c: Same. > * c-c++-common/cilk-plus/AN/parser_errors3.c: Same. > * c-c++-common/cilk-plus/AN/pr61191.c: Same. > * c-c++-common/cilk-plus/AN/pr61963.c: Same. > * c-c++-common/cilk-plus/AN/pr62008.c: Same. > * c-c++-common/cilk-plus/AN/rank_mismatch.c: Same. > * c-c++-common/cilk-plus/CK/cilk_for_errors.c: Same. > * c-c++-common/cilk-plus/CK/errors.c: Same. > * c-c++-common/cilk-plus/CK/no_args_error.c: Same. > * c-c++-common/cilk-plus/PS/clauses1.c: Same. > * c-c++-common/cilk-plus/SE/vlength_errors.c: Same. > * c-c++-common/cpp/pr57580.c: Same. > * c-c++-common/goacc/asyncwait-1.c: Same. > * c-c++-common/goacc/cache-2.c: Same. > * c-c++-common/goacc/declare-2.c: Same. > * c-c++-common/goacc/deviceptr-1.c: Same. > * c-c++-common/goacc/routine-5.c: Same. > * c-c++-common/gomp/clauses-2.c: Same. > * c-c++-common/gomp/ordered-3.c: Same. > * c-c++-common/gomp/pr67501.c: Same. > * c-c++-common/pr20000.c: Same. > * c-c++-common/pr43395.c: Same. > * c-c++-common/pr49706.c: Same. > * c-c++-common/pr77624-1.c: Same. > * c-c++-common/pr77624-2.c: Same. > * c-c++-common/raw-string-14.c: Same. > * c-c++-common/raw-string-16.c: Same. > * c-c++-common/raw-string-3.c: Same. > * c-c++-common/raw-string-4.c: Same. > * c-c++-common/raw-string-5.c: Same. > * c-c++-common/raw-string-6.c: Same. > * g++.dg/abi/mangle41.C: Same. > * g++.dg/conversion/nullptr1.C: Same. > * g++.dg/cpp0x/alias-decl-80296.C: Same. > * g++.dg/cpp0x/auto27.C: Same. > * g++.dg/cpp0x/constexpr-98.C: Same. > * g++.dg/cpp0x/constexpr-diag2.C: Same. > * g++.dg/cpp0x/diag2.C: Same. > * g++.dg/cpp0x/lambda/lambda-syntax1.C: Same. > * g++.dg/cpp0x/nullptr15.C: Same. > * g++.dg/cpp0x/pr31431-2.C: Same. > * g++.dg/cpp0x/pr31431.C: Same. > * g++.dg/cpp0x/pr79118.C: Same. > * g++.dg/cpp0x/static_assert3.C: Same. > * g++.dg/cpp0x/temp_default2.C: Same. > * g++.dg/cpp0x/trailing4.C: Same. > * g++.dg/cpp0x/variadic-ex10.C: Same. > * g++.dg/cpp0x/variadic-ex13.C: Same. > * g++.dg/cpp0x/variadic-ex14.C: Same. > * g++.dg/cpp0x/variadic-ex3.C: Same. > * g++.dg/cpp0x/variadic-ex4.C: Same. > * g++.dg/cpp0x/variadic59.C: Same. > * g++.dg/cpp0x/vt-37737-2.C: Same. > * g++.dg/cpp0x/vt-57397-1.C: Same. > * g++.dg/cpp0x/vt-57397-2.C: Same. > * g++.dg/cpp1z/constexpr-lambda8.C: Same. > * g++.dg/cpp1z/gen-attrs1.C: Same. > * g++.dg/diagnostic/pr71075.C: Same. > * g++.dg/eh/goto2.C: Same. > * g++.dg/eh/goto3.C: Same. > * g++.dg/expr/bitfield4.C: Same. > * g++.dg/expr/bitfield5.C: Same. > * g++.dg/expr/bitfield6.C: Same. > * g++.dg/expr/bool1.C: Same. > * g++.dg/expr/bool3.C: Same. > * g++.dg/expr/cond10.C: Same. > * g++.dg/expr/cond11.C: Same. > * g++.dg/expr/lval3.C: Same. > * g++.dg/expr/lval4.C: Same. > * g++.dg/ext/anon-struct4.C: Same. > * g++.dg/ext/attrib44.C: Same. > * g++.dg/ext/builtin3.C: Same. > * g++.dg/ext/dllimport7.C: Same. > * g++.dg/ext/label5.C: Same. > * g++.dg/ext/no-asm-1.C: Same. > * g++.dg/ext/utf16-4.C: Same. > * g++.dg/ext/vla2.C: Same. > * g++.dg/gomp/block-1.C: Same. > * g++.dg/gomp/block-2.C: Same. > * g++.dg/gomp/block-3.C: Same. > * g++.dg/gomp/block-5.C: Same. > * g++.dg/gomp/linear-2.C: Same. > * g++.dg/gomp/target-1.C: Same. > * g++.dg/gomp/target-2.C: Same. > * g++.dg/gomp/taskgroup-1.C: Same. > * g++.dg/gomp/teams-1.C: Same. > * g++.dg/inherit/pure1.C: Same. > * g++.dg/init/array43.C: Same. > * g++.dg/init/array46.C: Same. > * g++.dg/init/const10.C: Same. > * g++.dg/init/ctor4-1.C: Same. > * g++.dg/init/ctor4.C: Same. > * g++.dg/init/new37.C: Same. > * g++.dg/init/pr25811.C: Same. > * g++.dg/init/pr29043.C: Same. > * g++.dg/init/pr29571.C: Same. > * g++.dg/lookup/duperr1.C: Same. > * g++.dg/lookup/error1.C: Same. > * g++.dg/lookup/koenig5.C: Same. > * g++.dg/lookup/pr77549.C: Same. > * g++.dg/lookup/suggestions1.C: Same. > * g++.dg/lookup/using16.C: Same. > * g++.dg/lookup/using7.C: Same. > * g++.dg/other/anon-union3.C: Same. > * g++.dg/other/array2.C: Same. > * g++.dg/other/error13.C: Same. > * g++.dg/other/error34.C: Same. > * g++.dg/overload/builtin1.C: Same. > * g++.dg/overload/conv-op1.C: Same. > * g++.dg/overload/error3.C: Same. > * g++.dg/overload/koenig1.C: Same. > * g++.dg/overload/operator5.C: Same. > * g++.dg/overload/template5.C: Same. > * g++.dg/overload/unknown1.C: Same. > * g++.dg/overload/using2.C: Same. > * g++.dg/parse/constructor1.C: Same. > * g++.dg/parse/crash36.C: Same. > * g++.dg/parse/crash63.C: Same. > * g++.dg/parse/error11.C: Same. > * g++.dg/parse/error12.C: Same. > * g++.dg/parse/error14.C: Same. > * g++.dg/parse/error2.C: Same. > * g++.dg/parse/error21.C: Same. > * g++.dg/parse/error26.C: Same. > * g++.dg/parse/error36.C: Same. > * g++.dg/parse/friend12.C: Same. > * g++.dg/parse/invalid-op1.C: Same. > * g++.dg/parse/missing-template1.C: Same. > * g++.dg/parse/parser-pr28152-2.C: Same. > * g++.dg/parse/parser-pr28152.C: Same. > * g++.dg/parse/pr16696-permissive.C: Same. > * g++.dg/parse/pr16696.C: Same. > * g++.dg/parse/pr69628.C: Same. > * g++.dg/parse/ret-type2.C: Same. > * g++.dg/parse/specialization1.C: Same. > * g++.dg/parse/template3.C: Same. > * g++.dg/parse/template9.C: Same. > * g++.dg/parse/typename11.C: Same. > * g++.dg/plugin/attribute_plugin-test-1.C: Same. > * g++.dg/pr45330.C: Same. > * g++.dg/rtti/typeid6.C: Same. > * g++.dg/spellcheck-fields.C: Same. > * g++.dg/spellcheck-typenames.C: Same. > * g++.dg/tc1/dr108.C: Same. > * g++.dg/tc1/dr147.C: Same. > * g++.dg/template/arg7.C: Same. > * g++.dg/template/conv11.C: Same. > * g++.dg/template/crash13.C: Same. > * g++.dg/template/crash55.C: Same. > * g++.dg/template/dependent-expr5.C: Same. > * g++.dg/template/error17.C: Same. > * g++.dg/template/error33.C: Same. > * g++.dg/template/error4.C: Same. > * g++.dg/template/error50.C: Same. > * g++.dg/template/error53.C: Same. > * g++.dg/template/friend.C: Same. > * g++.dg/template/func2.C: Same. > * g++.dg/template/local6.C: Same. > * g++.dg/template/member5.C: Same. > * g++.dg/template/meminit1.C: Same. > * g++.dg/template/nested3.C: Same. > * g++.dg/template/nontype6.C: Same. > * g++.dg/template/overload12.C: Same. > * g++.dg/template/ptrmem8.C: Same. > * g++.dg/template/qualified-id1.C: Same. > * g++.dg/template/spec15.C: Same. > * g++.dg/template/static1.C: Same. > * g++.dg/template/static10.C: Same. > * g++.dg/template/static2.C: Same. > * g++.dg/template/ttp25.C: Same. > * g++.dg/template/typedef2.C: Same. > * g++.dg/template/typename2.C: Same. > * g++.dg/template/unify10.C: Same. > * g++.dg/template/unify6.C: Same. > * g++.dg/template/unify7.C: Same. > * g++.dg/template/unify9.C: Same. > * g++.dg/template/varmod1.C: Same. > * g++.dg/ubsan/div-by-zero-1.C: Same. > * g++.dg/ubsan/pr63956.C: Same. > * g++.dg/warn/Waddress-1.C: Same. > * g++.dg/warn/Wconversion2.C: Same. > * g++.dg/warn/Wnull-conversion-1.C: Same. > * g++.dg/warn/Wsubobject-linkage-1.C: Same. > * g++.dg/warn/Wsubobject-linkage-3.C: Same. > * g++.dg/warn/Wswitch-1.C: Same. > * g++.dg/warn/Wtype-limits-Wextra.C: Same. > * g++.dg/warn/Wtype-limits.C: Same. > * g++.dg/warn/Wunused-parm-5.C: Same. > * g++.dg/warn/deprecated-6.C: Same. > * g++.dg/warn/deprecated.C: Same. > * g++.dg/warn/incomplete1.C: Same. > * g++.dg/warn/multiple-overflow-warn-1.C: Same. > * g++.dg/warn/multiple-overflow-warn-2.C: Same. > * g++.dg/warn/multiple-overflow-warn-3.C: Same. > * g++.dg/warn/overflow-warn-1.C: Same. > * g++.dg/warn/overflow-warn-3.C: Same. > * g++.dg/warn/overflow-warn-4.C: Same. > * g++.dg/warn/pr12242.C: Same. > * g++.dg/warn/pr30551-2.C: Same. > * g++.dg/warn/pr30551.C: Same. > * g++.old-deja/g++.benjamin/16077.C: Same. > * g++.old-deja/g++.bob/inherit1.C: Same. > * g++.old-deja/g++.brendan/crash56.C: Same. > * g++.old-deja/g++.brendan/template17.C: Same. > * g++.old-deja/g++.eh/ctor1.C: Same. > * g++.old-deja/g++.jason/bool5.C: Same. > * g++.old-deja/g++.jason/cond.C: Same. > * g++.old-deja/g++.jason/operator.C: Same. > * g++.old-deja/g++.jason/pmf5.C: Same. > * g++.old-deja/g++.law/ctors5.C: Same. > * g++.old-deja/g++.law/missed-error2.C: Same. > * g++.old-deja/g++.law/operators9.C: Same. > * g++.old-deja/g++.law/temps1.C: Same. > * g++.old-deja/g++.mike/for2.C: Same. > * g++.old-deja/g++.mike/ns5.C: Same. > * g++.old-deja/g++.mike/ns7.C: Same. > * g++.old-deja/g++.mike/p10769b.C: Same. > * g++.old-deja/g++.niklas/t120.C: Same. > * g++.old-deja/g++.niklas/t121.C: Same. > * g++.old-deja/g++.ns/koenig5.C: Same. > * g++.old-deja/g++.oliva/overload1.C: Same. > * g++.old-deja/g++.other/crash24.C: Same. > * g++.old-deja/g++.other/crash25.C: Same. > * g++.old-deja/g++.other/decl5.C: Same. > * g++.old-deja/g++.other/lineno5.C: Same. > * g++.old-deja/g++.other/null3.C: Same. > * g++.old-deja/g++.other/overcnv2.C: Same. > * g++.old-deja/g++.other/ptrmem7.C: Same. > * g++.old-deja/g++.other/typename1.C: Same. > * g++.old-deja/g++.other/vaarg3.C: Same. > * g++.old-deja/g++.pt/crash10.C: Same. > * g++.old-deja/g++.pt/crash28.C: Same. > * g++.old-deja/g++.pt/crash38.C: Same. > * g++.old-deja/g++.pt/explicit70.C: Same. > * g++.old-deja/g++.pt/explicit77.C: Same. > * g++.old-deja/g++.pt/expr2.C: Same. > * g++.old-deja/g++.pt/spec5.C: Same. > * g++.old-deja/g++.pt/spec6.C: Same. > * g++.old-deja/g++.pt/typename3.C: Same. > * g++.old-deja/g++.pt/typename5.C: Same. > * g++.old-deja/g++.pt/typename6.C: Same. > * g++.old-deja/g++.pt/typename7.C: Same. > * g++.old-deja/g++.pt/unify4.C: Same. > * g++.old-deja/g++.pt/unify8.C: Same. > * g++.old-deja/g++.pt/vaarg3.C: Same. > * g++.old-deja/g++.robertl/eb22.C: Same. > * g++.old-deja/g++.robertl/eb4.C: Same. > * g++.old-deja/g++.robertl/eb44.C: Same. > * g++.old-deja/g++.robertl/eb69.C: Same. > * g++.old-deja/g++.robertl/eb98.C: Same. > * gcc.dg/20031223-1.c: Same. > * gcc.dg/940510-1.c: Same. > * gcc.dg/990506-0.c: Same. > * gcc.dg/Walloca-1.c: Same. > * gcc.dg/Walloca-2.c: Same. > * gcc.dg/Wconversion-integer.c: Same. > * gcc.dg/Wcxx-compat-8.c: Same. > * gcc.dg/Wimplicit-int-1.c: Same. > * gcc.dg/Wimplicit-int-2.c: Same. > * gcc.dg/Wimplicit-int-4.c: Same. > * gcc.dg/Wpointer-sign-Wall.c: Same. > * gcc.dg/Wpointer-sign-pedantic.c: Same. > * gcc.dg/Wshadow-1.c: Same. > * gcc.dg/Wshadow-3.c: Same. > * gcc.dg/Wswitch-enum-error.c: Same. > * gcc.dg/Wswitch-enum.c: Same. > * gcc.dg/Wswitch-error.c: Same. > * gcc.dg/Wswitch.c: Same. > * gcc.dg/Wtype-limits-Wextra.c: Same. > * gcc.dg/Wtype-limits.c: Same. > * gcc.dg/Wvla-larger-than-2.c: Same. > * gcc.dg/anon-struct-5.c: Same. > * gcc.dg/array-10.c: Same. > * gcc.dg/array-11.c: Same. > * gcc.dg/array-15.c: Same. > * gcc.dg/array-2.c: Same. > * gcc.dg/array-8.c: Same. > * gcc.dg/array-const-2.c: Same. > * gcc.dg/array-const-3.c: Same. > * gcc.dg/bitfld-1.c: Same. > * gcc.dg/bitfld-8.c: Same. > * gcc.dg/builtin-redefine.c: Same. > * gcc.dg/c11-noreturn-1.c: Same. > * gcc.dg/c11-noreturn-2.c: Same. > * gcc.dg/c11-static-assert-3.c: Same. > * gcc.dg/c90-arraydecl-1.c: Same. > * gcc.dg/c90-complex-1.c: Same. > * gcc.dg/c90-complit-1.c: Same. > * gcc.dg/c90-const-expr-11.c: Same. > * gcc.dg/c90-const-expr-7.c: Same. > * gcc.dg/c90-const-expr-8.c: Same. > * gcc.dg/c90-enum-comma-1.c: Same. > * gcc.dg/c90-flex-array-1.c: Same. > * gcc.dg/c90-hexfloat-1.c: Same. > * gcc.dg/c90-idem-qual-1.c: Same. > * gcc.dg/c90-idem-qual-2.c: Same. > * gcc.dg/c90-idem-qual-3.c: Same. > * gcc.dg/c90-mixdecl-1.c: Same. > * gcc.dg/c90-restrict-1.c: Same. > * gcc.dg/c90-return-1.c: Same. > * gcc.dg/c99-array-nonobj-1.c: Same. > * gcc.dg/c99-arraydecl-1.c: Same. > * gcc.dg/c99-complex-1.c: Same. > * gcc.dg/c99-complex-2.c: Same. > * gcc.dg/c99-complit-2.c: Same. > * gcc.dg/c99-const-expr-7.c: Same. > * gcc.dg/c99-const-expr-8.c: Same. > * gcc.dg/c99-flex-array-3.c: Same. > * gcc.dg/c99-flex-array-7.c: Same. > * gcc.dg/c99-flex-array-typedef-7.c: Same. > * gcc.dg/c99-impl-decl-1.c: Same. > * gcc.dg/c99-impl-int-1.c: Same. > * gcc.dg/c99-impl-int-2.c: Same. > * gcc.dg/c99-init-3.c: Same. > * gcc.dg/c99-restrict-1.c: Same. > * gcc.dg/c99-return-1.c: Same. > * gcc.dg/c99-tag-1.c: Same. > * gcc.dg/c99-tag-3.c: Same. > * gcc.dg/call-diag-2.c: Same. > * gcc.dg/cpp/19940712-1.c: Same. > * gcc.dg/cpp/19951025-1.c: Same. > * gcc.dg/cpp/19990413-1.c: Same. > * gcc.dg/cpp/direct2.c: Same. > * gcc.dg/cpp/direct2s.c: Same. > * gcc.dg/cpp/pr28709.c: Same. > * gcc.dg/cpp/pr61854-c90.c: Same. > * gcc.dg/cpp/pr61854-c94.c: Same. > * gcc.dg/cpp/pragma-1.c: Same. > * gcc.dg/cpp/pragma-2.c: Same. > * gcc.dg/cpp/trad/escaped-eof.c: Same. > * gcc.dg/cpp/trad/literals-2.c: Same. > * gcc.dg/cpp/warn-comments-2.c: Same. > * gcc.dg/cpp/warn-comments-3.c: Same. > * gcc.dg/cpp/warn-comments.c: Same. > * gcc.dg/cpp/warn-long-long-2.c: Same. > * gcc.dg/cpp/warn-long-long.c: Same. > * gcc.dg/cpp/warn-redefined-2.c: Same. > * gcc.dg/cpp/warn-redefined.c: Same. > * gcc.dg/darwin-cfstring-2.c: Same. > * gcc.dg/darwin-cfstring-format-1.c: Same. > * gcc.dg/decl-9.c: Same. > * gcc.dg/declspec-1.c: Same. > * gcc.dg/declspec-10.c: Same. > * gcc.dg/declspec-11.c: Same. > * gcc.dg/declspec-13.c: Same. > * gcc.dg/declspec-18.c: Same. > * gcc.dg/declspec-4.c: Same. > * gcc.dg/declspec-5.c: Same. > * gcc.dg/declspec-6.c: Same. > * gcc.dg/declspec-8.c: Same. > * gcc.dg/deprecated-4.c: Same. > * gcc.dg/deprecated.c: Same. > * gcc.dg/dfp/composite-type.c: Same. > * gcc.dg/empty-source-2.c: Same. > * gcc.dg/empty-source-3.c: Same. > * gcc.dg/format/attr-6.c: Same. > * gcc.dg/format/branch-1.c: Same. > * gcc.dg/format/c90-printf-1.c: Same. > * gcc.dg/format/c90-strftime-2.c: Same. > * gcc.dg/format/c99-strftime-1.c: Same. > * gcc.dg/format/cmn-err-1.c: Same. > * gcc.dg/format/few-1.c: Same. > * gcc.dg/format/ms_branch-1.c: Same. > * gcc.dg/format/ms_unnamed-1.c: Same. > * gcc.dg/format/ms_va-1.c: Same. > * gcc.dg/format/unnamed-1.c: Same. > * gcc.dg/format/va-1.c: Same. > * gcc.dg/format/xopen-1.c: Same. > * gcc.dg/funcdef-var-1.c: Same. > * gcc.dg/funcdef-var-2.c: Same. > * gcc.dg/gnu89-const-expr-1.c: Same. > * gcc.dg/gnu89-const-expr-2.c: Same. > * gcc.dg/gnu90-const-expr-1.c: Same. > * gcc.dg/gnu99-const-expr-1.c: Same. > * gcc.dg/gnu99-const-expr-2.c: Same. > * gcc.dg/gnu99-init-2.c: Same. > * gcc.dg/gomp/_Atomic-5.c: Same. > * gcc.dg/gomp/appendix-a/a.24.1.c: Same. > * gcc.dg/gomp/atomic-5.c: Same. > * gcc.dg/gomp/linear-1.c: Same. > * gcc.dg/gomp/pr67500.c: Same. > * gcc.dg/init-bad-1.c: Same. > * gcc.dg/init-bad-2.c: Same. > * gcc.dg/init-bad-3.c: Same. > * gcc.dg/init-string-1.c: Same. > * gcc.dg/label-compound-stmt-1.c: Same. > * gcc.dg/label-decl-2.c: Same. > * gcc.dg/label-decl-4.c: Same. > * gcc.dg/large-size-array-2.c: Same. > * gcc.dg/large-size-array-4.c: Same. > * gcc.dg/lvalue-6.c: Same. > * gcc.dg/m-un-2.c: Same. > * gcc.dg/multiple-overflow-warn-1.c: Same. > * gcc.dg/multiple-overflow-warn-2.c: Same. > * gcc.dg/multiple-overflow-warn-3.c: Same. > * gcc.dg/nested-redef-1.c: Same. > * gcc.dg/no-asm-1.c: Same. > * gcc.dg/no-asm-3.c: Same. > * gcc.dg/no-asm-4.c: Same. > * gcc.dg/noncompile/20010524-1.c: Same. > * gcc.dg/noncompile/incomplete-5.c: Same. > * gcc.dg/noncompile/pr44517.c: Same. > * gcc.dg/noncompile/pr52290.c: Same. > * gcc.dg/noreturn-1.c: Same. > * gcc.dg/overflow-warn-1.c: Same. > * gcc.dg/overflow-warn-2.c: Same. > * gcc.dg/overflow-warn-3.c: Same. > * gcc.dg/overflow-warn-4.c: Same. > * gcc.dg/parm-mismatch-1.c: Same. > * gcc.dg/parser-pr28152-2.c: Same. > * gcc.dg/parser-pr28152.c: Same. > * gcc.dg/pedwarn-init.c: Same. > * gcc.dg/pointer-arith-2.c: Same. > * gcc.dg/pointer-arith-3.c: Same. > * gcc.dg/pointer-arith-4.c: Same. > * gcc.dg/pr14475.c: Same. > * gcc.dg/pr18596-3.c: Same. > * gcc.dg/pr18809-1.c: Same. > * gcc.dg/pr27953.c: Same. > * gcc.dg/pr30457.c: Same. > * gcc.dg/pr30551-2.c: Same. > * gcc.dg/pr30551-3.c: Same. > * gcc.dg/pr30551-4.c: Same. > * gcc.dg/pr30551-5.c: Same. > * gcc.dg/pr30551-6.c: Same. > * gcc.dg/pr30551.c: Same. > * gcc.dg/pr36997.c: Same. > * gcc.dg/pr41842.c: Same. > * gcc.dg/pr48552-1.c: Same. > * gcc.dg/pr48552-2.c: Same. > * gcc.dg/pr59717.c: Same. > * gcc.dg/pr61077.c: Same. > * gcc.dg/pr61096-1.c: Same. > * gcc.dg/pr63626.c: Same. > * gcc.dg/pr64223-1.c: Same. > * gcc.dg/pr64223-2.c: Same. > * gcc.dg/pr8788-1.c: Same. > * gcc.dg/pr8927-1.c: Same. > * gcc.dg/pragma-darwin.c: Same. > * gcc.dg/pragma-diag-5.c: Same. > * gcc.dg/pragma-message.c: Same. > * gcc.dg/redecl-1.c: Same. > * gcc.dg/simd-1.c: Same. > * gcc.dg/simd-5.c: Same. > * gcc.dg/simd-6.c: Same. > * gcc.dg/spellcheck-fields.c: Same. > * gcc.dg/spellcheck-typenames.c: Same. > * gcc.dg/struct-semi-2.c: Same. > * gcc.dg/struct-semi-3.c: Same. > * gcc.dg/transparent-union-3.c: Same. > * gcc.dg/ucnid-8.c: Same. > * gcc.dg/uninit-pr19430-O0.c: Same. > * gcc.dg/uninit-pr19430.c: Same. > * gcc.dg/uninit-pr20644-O0.c: Same. > * gcc.dg/utf-dflt.c: Same. > * gcc.dg/utf-dflt2.c: Same. > * gcc.dg/utf16-4.c: Same. > * gcc.dg/vla-11.c: Same. > * gcc.dg/vla-20.c: Same. > * gcc.dg/vla-init-1.c: Same. > * gcc.dg/vla-init-2.c: Same. > * gcc.dg/vla-init-3.c: Same. > * gcc.dg/weak/weak-6.c: Same. > * gcc.dg/weak/weak-7.c: Same. > * gcc.dg/wtr-int-type-1.c: Same. > * gcc.target/aarch64/mgeneral-regs_1.c: Same. > * gcc.target/arm/polytypes.c: Same. > * gcc.target/i386/spellcheck-options-4.c: Same. > * gcc.target/powerpc/20030218-1.c: Same. > * gcc.target/sh/pr21255-4.c: Same. > * gcc.test-framework/dg-error-exp-XP.c: Same. > * gfortran.dg/array_constructor_30.f03: Same. > * gfortran.dg/class_30.f90: Same. > * gfortran.dg/goacc/subarrays.f95: Same. > * gfortran.dg/gomp/appendix-a/a.23.5.f90: Same. > * gfortran.dg/gomp/appendix-a/a.24.1.f90: Same. > * gfortran.dg/intrinsic_std_1.f90: Same. > * gfortran.dg/pr70006.f90: Same. > * gfortran.dg/warning-directive-1.F90: Same. > * gfortran.dg/warning-directive-2.F90: Same. > * gfortran.dg/warning-directive-3.F90: Same. > * gfortran.dg/warning-directive-4.F90: Same. > * obj-c++.dg/attributes/method-noreturn-1.mm: Same. > * obj-c++.dg/class-extension-1.mm: Same. > * obj-c++.dg/class-extension-2.mm: Same. > * obj-c++.dg/class-protocol-1.mm: Same. > * obj-c++.dg/cxx-ivars-1.mm: Same. > * obj-c++.dg/duplicate-class-1.mm: Same. > * obj-c++.dg/exceptions-3.mm: Same. > * obj-c++.dg/exceptions-4.mm: Same. > * obj-c++.dg/exceptions-5.mm: Same. > * obj-c++.dg/fsf-nsstring-format-1.mm: Same. > * obj-c++.dg/fsf-package-0.m: Same. > * obj-c++.dg/invalid-type-1.mm: Same. > * obj-c++.dg/method-12.mm: Same. > * obj-c++.dg/method-13.mm: Same. > * obj-c++.dg/method-15.mm: Same. > * obj-c++.dg/method-16.mm: Same. > * obj-c++.dg/method-6.mm: Same. > * obj-c++.dg/method-7.mm: Same. > * obj-c++.dg/property/at-property-1.mm: Same. > * obj-c++.dg/property/at-property-14.mm: Same. > * obj-c++.dg/property/at-property-17.mm: Same. > * obj-c++.dg/property/at-property-21.mm: Same. > * obj-c++.dg/property/at-property-5.mm: Same. > * obj-c++.dg/property/dotsyntax-4.mm: Same. > * obj-c++.dg/property/dynamic-3.mm: Same. > * obj-c++.dg/property/dynamic-4.mm: Same. > * obj-c++.dg/property/property-neg-1.mm: Same. > * obj-c++.dg/property/property-neg-6.mm: Same. > * obj-c++.dg/property/synthesize-11.mm: Same. > * obj-c++.dg/property/synthesize-5.mm: Same. > * obj-c++.dg/property/synthesize-6.mm: Same. > * obj-c++.dg/proto-lossage-4.mm: Same. > * obj-c++.dg/protocol-qualifier-2.mm: Same. > * obj-c++.dg/strings/strings-1.mm: Same. > * obj-c++.dg/super-class-1.mm: Same. > * obj-c++.dg/syntax-error-6.mm: Same. > * obj-c++.dg/syntax-error-7.mm: Same. > * obj-c++.dg/syntax-error-9.mm: Same. > * obj-c++.dg/try-catch-13.mm: Same. > * objc.dg/attributes/method-noreturn-1.m: Same. > * objc.dg/bad-receiver-type-2.m: Same. > * objc.dg/bad-receiver-type.m: Same. > * objc.dg/call-super-2.m: Same. > * objc.dg/class-2.m: Same. > * objc.dg/class-extension-1.m: Same. > * objc.dg/class-extension-2.m: Same. > * objc.dg/class-protocol-1.m: Same. > * objc.dg/desig-init-1.m: Same. > * objc.dg/duplicate-class-1.m: Same. > * objc.dg/exceptions-3.m: Same. > * objc.dg/exceptions-4.m: Same. > * objc.dg/exceptions-5.m: Same. > * objc.dg/foreach-6.m: Same. > * objc.dg/foreach-7.m: Same. > * objc.dg/fsf-nsstring-format-1.m: Same. > * objc.dg/fsf-package-0.m: Same. > * objc.dg/invalid-type-1.m: Same. > * objc.dg/method-11.m: Same. > * objc.dg/method-19.m: Same. > * objc.dg/method-2.m: Same. > * objc.dg/method-20.m: Same. > * objc.dg/method-5.m: Same. > * objc.dg/method-6.m: Same. > * objc.dg/method-7.m: Same. > * objc.dg/method-9.m: Same. > * objc.dg/missing-proto-3.m: Same. > * objc.dg/private-1.m: Same. > * objc.dg/property/at-property-1.m: Same. > * objc.dg/property/at-property-14.m: Same. > * objc.dg/property/at-property-17.m: Same. > * objc.dg/property/at-property-21.m: Same. > * objc.dg/property/at-property-5.m: Same. > * objc.dg/property/dynamic-3.m: Same. > * objc.dg/property/dynamic-4.m: Same. > * objc.dg/property/property-neg-1.m: Same. > * objc.dg/property/property-neg-6.m: Same. > * objc.dg/property/synthesize-11.m: Same. > * objc.dg/property/synthesize-5.m: Same. > * objc.dg/property/synthesize-6.m: Same. > * objc.dg/proto-hier-1.m: Same. > * objc.dg/proto-lossage-4.m: Same. > * objc.dg/protocol-qualifier-2.m: Same. > * objc.dg/strings/strings-1.m: Same. > * objc.dg/type-size-1.m: Same.
On Wed, Apr 26, 2017 at 01:48:03PM +0200, Tom de Vries wrote:
> [ reposting with patch removed, was too big for gcc-patches@ ]
I see in various tests you've ended up with ... { target ... } . }
I think it would be better to just use ... { target ... } }
in that case, . is the default, and if target is *-*-*, also remove the {
target ... }.
Are there any spots where the relative line number is with too big bias
(say .+10 or .-10 and more)? I guess those should be decided case by case
whether we want relative, absolute or saved line numbers. If the
diagnostic is within the same function or code block as the stuff it is
relative to, relative is fine, but if e.g. the messages are just at the end
of file and there are unrelated functions in between, it is not a good idea
to use relative.
Jakub
# HG changeset patch # Parent 288df338f490e514591c89d11734d7de56f62460 Adjust c-c++-common/Wimplicit-fallthrough-7.c line numbers diff --git a/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-7.c b/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-7.c --- a/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-7.c +++ b/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-7.c @@ -21,8 +21,8 @@ f (int i) switch (i) { case 1: - { /* { dg-warning "statement may fall through" "" { target c } 23 } */ - int a[i]; /* { dg-warning "statement may fall through" "" { target c++ } 24 } */ + { /* { dg-warning "statement may fall through" "" { target c } 24 } */ + int a[i]; /* { dg-warning "statement may fall through" "" { target c++ } 25 } */ } case 2: bar (99); @@ -31,8 +31,8 @@ f (int i) switch (i) { case 1: - for (int j = 0; j < 10; j++) /* { dg-warning "statement may fall through" "" { target c } 33 } */ - map[j] = j; /* { dg-warning "statement may fall through" "" { target c++ } 34 } */ + for (int j = 0; j < 10; j++) /* { dg-warning "statement may fall through" "" { target c } 34 } */ + map[j] = j; /* { dg-warning "statement may fall through" "" { target c++ } 35 } */ case 2: bar (99); } diff --git a/gcc/testsuite/gcc.dg/Walloca-1.c b/gcc/testsuite/gcc.dg/Walloca-1.c --- a/gcc/testsuite/gcc.dg/Walloca-1.c +++ b/gcc/testsuite/gcc.dg/Walloca-1.c @@ -25,7 +25,7 @@ void foo1 (size_t len, size_t len2, size useit (s); // OK, constant argument to alloca s = alloca (num); // { dg-warning "large due to conversion" "" { target lp64 } } - // { dg-warning "unbounded use of 'alloca'" "" { target { ! lp64 } } 26 } + // { dg-warning "unbounded use of 'alloca'" "" { target { ! lp64 } } 27 } useit (s); s = alloca (30000); /* { dg-warning "is too large" } */ diff --git a/gcc/testsuite/gcc.dg/Walloca-2.c b/gcc/testsuite/gcc.dg/Walloca-2.c --- a/gcc/testsuite/gcc.dg/Walloca-2.c +++ b/gcc/testsuite/gcc.dg/Walloca-2.c @@ -37,8 +37,8 @@ g3 (int n) if (n > 0 && n < 3000) { p = __builtin_alloca (n); // { dg-warning "'alloca' may be too large" "" { target lp64} } - // { dg-message "note:.*argument may be as large as 2999" "note" { target lp64 } 38 } - // { dg-warning "unbounded use of 'alloca'" "" { target { ! lp64 } } 38 } + // { dg-message "note:.*argument may be as large as 2999" "note" { target lp64 } 39 } + // { dg-warning "unbounded use of 'alloca'" "" { target { ! lp64 } } 39 } } else p = __builtin_malloc (n); diff --git a/gcc/testsuite/gcc.dg/Wvla-larger-than-2.c b/gcc/testsuite/gcc.dg/Wvla-larger-than-2.c --- a/gcc/testsuite/gcc.dg/Wvla-larger-than-2.c +++ b/gcc/testsuite/gcc.dg/Wvla-larger-than-2.c @@ -24,7 +24,7 @@ f2 (__SIZE_TYPE__ a) { // 11 * 4 bytes = 44: Not OK. uint32_t x[a]; // { dg-warning "array may be too large" } - // { dg-message "note:.*argument may be as large as 44" "note" { target *-*-* } 25 } + // { dg-message "note:.*argument may be as large as 44" "note" { target *-*-* } 26 } f0 (x); } }