diff mbox

[testsuite] Add missing dg-require-effective-target alloca to gcc testsuite

Message ID yddpoh6bzm9.fsf@CeBiTec.Uni-Bielefeld.DE
State New
Headers show

Commit Message

Rainer Orth March 24, 2017, 12:58 p.m. UTC
Hi Richard,

>> Similar
>>
>> -m64
>> FAIL: gcc.dg/Walloca-2.c note (test for warnings, line 38)
>> FAIL: gcc.dg/Wvla-larger-than-2.c note (test for warnings, line 25)
>>
>> -m32
>> FAIL: gcc.dg/Walloca-1.c  (test for warnings, line 26)
>> FAIL: gcc.dg/Walloca-1.c (test for excess errors)
>> FAIL: gcc.dg/Walloca-2.c  (test for warnings, line 38)
>> FAIL: gcc.dg/Walloca-2.c (test for excess errors)
>> FAIL: gcc.dg/Wvla-larger-than-2.c note (test for warnings, line 25)
>
> right, just noticed that myself.  Fix in progress...

here's what I committed after similar testing.

	Rainer

Comments

Mike Stump March 24, 2017, 5:13 p.m. UTC | #1
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.
Tom de Vries March 27, 2017, 1:11 p.m. UTC | #2
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
Tom de Vries April 26, 2017, 11:48 a.m. UTC | #3
[ 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.
Jakub Jelinek April 26, 2017, 11:57 a.m. UTC | #4
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
diff mbox

Patch

# 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);
     }
 }