aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorYvan Roux <yvan.roux@linaro.org>2017-04-19 12:00:37 +0200
committerYvan Roux <yvan.roux@linaro.org>2017-04-19 12:00:37 +0200
commit6948a48fbde28299a50b88cb29aece601ed5df22 (patch)
tree81b6a230d11514ab0b316c11bf294284091c604a /gcc
parent50bddd060b7045874acccef516ce1a3659392f32 (diff)
Merge master rev 246990.
Change-Id: I3814d621cd3ca79f87ac2ff2179346f6bbdf330c
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog452
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/Makefile.in19
-rw-r--r--gcc/alias.c8
-rw-r--r--gcc/c-family/ChangeLog11
-rw-r--r--gcc/c-family/c-common.c31
-rw-r--r--gcc/cfgcleanup.c5
-rw-r--r--gcc/cgraph.c2
-rw-r--r--gcc/config/arc/arc-protos.h1
-rw-r--r--gcc/config/arc/arc.c24
-rw-r--r--gcc/config/arc/arc.h14
-rw-r--r--gcc/config/arc/arc.md2
-rw-r--r--gcc/config/arm/arm.c4
-rw-r--r--gcc/config/avr/avr.c11
-rw-r--r--gcc/config/cris/cris.c2
-rw-r--r--gcc/config/i386/i386-builtin-types.def18
-rw-r--r--gcc/config/i386/i386-builtin.def108
-rw-r--r--gcc/config/i386/i386.c29
-rw-r--r--gcc/config/mips/mips.md1
-rw-r--r--gcc/config/rs6000/rs6000-cpus.def24
-rw-r--r--gcc/config/rs6000/rs6000.c170
-rw-r--r--gcc/config/rs6000/sync.md6
-rw-r--r--gcc/config/rs6000/vsx.md3
-rw-r--r--gcc/config/sparc/predicates.md10
-rw-r--r--gcc/config/sparc/sparc.c5
-rw-r--r--gcc/cp/ChangeLog73
-rw-r--r--gcc/cp/class.c8
-rw-r--r--gcc/cp/constexpr.c13
-rw-r--r--gcc/cp/cp-tree.h2
-rw-r--r--gcc/cp/decl.c106
-rw-r--r--gcc/cp/decl.h1
-rw-r--r--gcc/cp/error.c5
-rw-r--r--gcc/cp/parser.c8
-rw-r--r--gcc/cp/pt.c8
-rw-r--r--gcc/cp/tree.c26
-rw-r--r--gcc/cp/typeck.c21
-rw-r--r--gcc/doc/extend.texi21
-rw-r--r--gcc/dwarf2out.c36
-rw-r--r--gcc/expr.c3
-rw-r--r--gcc/fold-const.c24
-rw-r--r--gcc/fortran/ChangeLog27
-rw-r--r--gcc/fortran/class.c1
-rw-r--r--gcc/fortran/expr.c42
-rw-r--r--gcc/fortran/module.c42
-rw-r--r--gcc/gcov-io.c8
-rw-r--r--gcc/gcov-tool.c9
-rw-r--r--gcc/genattrtab.c3
-rw-r--r--gcc/gimple-ssa-split-paths.c10
-rw-r--r--gcc/gimple-ssa-sprintf.c71
-rw-r--r--gcc/haifa-sched.c10
-rw-r--r--gcc/ipa-cp.c6
-rw-r--r--gcc/ipa-split.c9
-rw-r--r--gcc/ipa-visibility.c38
-rw-r--r--gcc/lra-constraints.c62
-rw-r--r--gcc/lra-remat.c9
-rw-r--r--gcc/lto-streamer-out.c2
-rw-r--r--gcc/lto/ChangeLog6
-rw-r--r--gcc/lto/lto.c2
-rw-r--r--gcc/omp-low.c6
-rw-r--r--gcc/optabs.c80
-rw-r--r--gcc/regcprop.c7
-rw-r--r--gcc/reload1.c2
-rw-r--r--gcc/sancov.c2
-rw-r--r--gcc/simplify-rtx.c10
-rw-r--r--gcc/stor-layout.c10
-rw-r--r--gcc/testsuite/ChangeLog892
-rw-r--r--gcc/testsuite/c-c++-common/Wimplicit-fallthrough-6.c16
-rw-r--r--gcc/testsuite/c-c++-common/Wimplicit-fallthrough-7.c8
-rw-r--r--gcc/testsuite/c-c++-common/Wint-to-pointer-cast-3.c4
-rw-r--r--gcc/testsuite/c-c++-common/attr-fallthrough-2.c14
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors2.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors3.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/pr61191.c4
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/pr61963.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/pr62008.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/CK/cilk_for_errors.c6
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/CK/errors.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/CK/no_args_error.c2
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/PS/clauses1.c4
-rw-r--r--gcc/testsuite/c-c++-common/cilk-plus/SE/vlength_errors.c6
-rw-r--r--gcc/testsuite/c-c++-common/cpp/pr57580.c2
-rw-r--r--gcc/testsuite/c-c++-common/goacc/asyncwait-1.c20
-rw-r--r--gcc/testsuite/c-c++-common/goacc/cache-2.c4
-rw-r--r--gcc/testsuite/c-c++-common/goacc/declare-2.c2
-rw-r--r--gcc/testsuite/c-c++-common/goacc/deviceptr-1.c20
-rw-r--r--gcc/testsuite/c-c++-common/goacc/routine-5.c4
-rw-r--r--gcc/testsuite/c-c++-common/gomp/clauses-2.c2
-rw-r--r--gcc/testsuite/c-c++-common/gomp/ordered-3.c2
-rw-r--r--gcc/testsuite/c-c++-common/gomp/pr67501.c2
-rw-r--r--gcc/testsuite/c-c++-common/pr20000.c6
-rw-r--r--gcc/testsuite/c-c++-common/pr43395.c6
-rw-r--r--gcc/testsuite/c-c++-common/pr49706.c6
-rw-r--r--gcc/testsuite/c-c++-common/pr77624-1.c4
-rw-r--r--gcc/testsuite/c-c++-common/pr77624-2.c8
-rw-r--r--gcc/testsuite/c-c++-common/raw-string-14.c14
-rw-r--r--gcc/testsuite/c-c++-common/raw-string-16.c12
-rw-r--r--gcc/testsuite/c-c++-common/raw-string-3.c20
-rw-r--r--gcc/testsuite/c-c++-common/raw-string-4.c10
-rw-r--r--gcc/testsuite/c-c++-common/raw-string-5.c28
-rw-r--r--gcc/testsuite/c-c++-common/raw-string-6.c2
-rw-r--r--gcc/testsuite/c-c++-common/ubsan/bounds-15.c13
-rw-r--r--gcc/testsuite/g++.dg/abi/mangle41.C2
-rw-r--r--gcc/testsuite/g++.dg/conversion/nullptr1.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/alias-decl-59.C11
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/alignas11.C10
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/auto27.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/constexpr-98.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/constexpr-diag2.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/diag2.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/initlist-array5.C7
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-syntax1.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/nullptr15.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr31431-2.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr31431.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr79118.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/static_assert3.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/temp_default2.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/trailing4.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic-ex10.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic-ex3.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic-ex4.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic-init2.C20
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic59.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/vt-37737-2.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/vt-57397-1.C6
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/vt-57397-2.C6
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/constexpr-empty3.C14
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/constexpr-lambda8.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/decomp28.C39
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/gen-attrs1.C20
-rw-r--r--gcc/testsuite/g++.dg/diagnostic/pr71075.C2
-rw-r--r--gcc/testsuite/g++.dg/eh/goto2.C2
-rw-r--r--gcc/testsuite/g++.dg/eh/goto3.C2
-rw-r--r--gcc/testsuite/g++.dg/expr/bitfield4.C4
-rw-r--r--gcc/testsuite/g++.dg/expr/bitfield5.C4
-rw-r--r--gcc/testsuite/g++.dg/expr/bitfield6.C2
-rw-r--r--gcc/testsuite/g++.dg/expr/bool1.C4
-rw-r--r--gcc/testsuite/g++.dg/expr/bool3.C4
-rw-r--r--gcc/testsuite/g++.dg/expr/cond10.C2
-rw-r--r--gcc/testsuite/g++.dg/expr/cond11.C2
-rw-r--r--gcc/testsuite/g++.dg/expr/lval3.C2
-rw-r--r--gcc/testsuite/g++.dg/expr/lval4.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/anon-struct4.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/attrib44.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/builtin3.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/dllimport7.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/label5.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/no-asm-1.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/pr80363.C12
-rw-r--r--gcc/testsuite/g++.dg/ext/utf16-4.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/vla2.C2
-rw-r--r--gcc/testsuite/g++.dg/gomp/block-1.C2
-rw-r--r--gcc/testsuite/g++.dg/gomp/block-2.C2
-rw-r--r--gcc/testsuite/g++.dg/gomp/block-3.C4
-rw-r--r--gcc/testsuite/g++.dg/gomp/block-5.C2
-rw-r--r--gcc/testsuite/g++.dg/gomp/linear-2.C8
-rw-r--r--gcc/testsuite/g++.dg/gomp/target-1.C4
-rw-r--r--gcc/testsuite/g++.dg/gomp/target-2.C4
-rw-r--r--gcc/testsuite/g++.dg/gomp/taskgroup-1.C4
-rw-r--r--gcc/testsuite/g++.dg/gomp/teams-1.C6
-rw-r--r--gcc/testsuite/g++.dg/inherit/pure1.C2
-rw-r--r--gcc/testsuite/g++.dg/init/array43.C2
-rw-r--r--gcc/testsuite/g++.dg/init/array46.C2
-rw-r--r--gcc/testsuite/g++.dg/init/const10.C4
-rw-r--r--gcc/testsuite/g++.dg/init/ctor4-1.C4
-rw-r--r--gcc/testsuite/g++.dg/init/ctor4.C4
-rw-r--r--gcc/testsuite/g++.dg/init/new37.C2
-rw-r--r--gcc/testsuite/g++.dg/init/pr25811.C32
-rw-r--r--gcc/testsuite/g++.dg/init/pr29043.C6
-rw-r--r--gcc/testsuite/g++.dg/init/pr29571.C2
-rw-r--r--gcc/testsuite/g++.dg/init/ref23.C15
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr80212.C18
-rw-r--r--gcc/testsuite/g++.dg/lookup/duperr1.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/error1.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/koenig5.C6
-rw-r--r--gcc/testsuite/g++.dg/lookup/pr77549.C8
-rw-r--r--gcc/testsuite/g++.dg/lookup/suggestions1.C4
-rw-r--r--gcc/testsuite/g++.dg/lookup/using16.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/using7.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/pr79671_0.C26
-rw-r--r--gcc/testsuite/g++.dg/lto/pr79671_1.c5
-rw-r--r--gcc/testsuite/g++.dg/lto/pr80287_0.C92
-rw-r--r--gcc/testsuite/g++.dg/opt/pr80385.C14
-rw-r--r--gcc/testsuite/g++.dg/other/anon-union3.C2
-rw-r--r--gcc/testsuite/g++.dg/other/array2.C2
-rw-r--r--gcc/testsuite/g++.dg/other/error13.C2
-rw-r--r--gcc/testsuite/g++.dg/other/error34.C2
-rw-r--r--gcc/testsuite/g++.dg/overload/builtin1.C2
-rw-r--r--gcc/testsuite/g++.dg/overload/conv-op1.C2
-rw-r--r--gcc/testsuite/g++.dg/overload/error3.C2
-rw-r--r--gcc/testsuite/g++.dg/overload/koenig1.C2
-rw-r--r--gcc/testsuite/g++.dg/overload/operator5.C2
-rw-r--r--gcc/testsuite/g++.dg/overload/template5.C4
-rw-r--r--gcc/testsuite/g++.dg/overload/unknown1.C2
-rw-r--r--gcc/testsuite/g++.dg/overload/using2.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/constructor1.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/crash36.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/crash63.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/error11.C24
-rw-r--r--gcc/testsuite/g++.dg/parse/error12.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/error14.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/error2.C8
-rw-r--r--gcc/testsuite/g++.dg/parse/error21.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/error26.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/error3.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/error36.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/friend12.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/invalid-op1.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/missing-template1.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/parser-pr28152-2.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/parser-pr28152.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/pr16696-permissive.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/pr16696.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/pr69628.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/ret-type2.C10
-rw-r--r--gcc/testsuite/g++.dg/parse/specialization1.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/template3.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/template9.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/typename11.C2
-rw-r--r--gcc/testsuite/g++.dg/plugin/attribute_plugin-test-1.C2
-rw-r--r--gcc/testsuite/g++.dg/pr45330.C4
-rw-r--r--gcc/testsuite/g++.dg/pr80374.C22
-rw-r--r--gcc/testsuite/g++.dg/rtti/typeid6.C2
-rw-r--r--gcc/testsuite/g++.dg/spellcheck-fields.C2
-rw-r--r--gcc/testsuite/g++.dg/spellcheck-typenames.C2
-rw-r--r--gcc/testsuite/g++.dg/tc1/dr108.C2
-rw-r--r--gcc/testsuite/g++.dg/tc1/dr147.C2
-rw-r--r--gcc/testsuite/g++.dg/template/arg7.C2
-rw-r--r--gcc/testsuite/g++.dg/template/conv11.C2
-rw-r--r--gcc/testsuite/g++.dg/template/crash13.C2
-rw-r--r--gcc/testsuite/g++.dg/template/crash55.C2
-rw-r--r--gcc/testsuite/g++.dg/template/dependent-expr5.C24
-rw-r--r--gcc/testsuite/g++.dg/template/error17.C2
-rw-r--r--gcc/testsuite/g++.dg/template/error33.C2
-rw-r--r--gcc/testsuite/g++.dg/template/error4.C2
-rw-r--r--gcc/testsuite/g++.dg/template/error50.C2
-rw-r--r--gcc/testsuite/g++.dg/template/error53.C2
-rw-r--r--gcc/testsuite/g++.dg/template/friend.C2
-rw-r--r--gcc/testsuite/g++.dg/template/func2.C4
-rw-r--r--gcc/testsuite/g++.dg/template/local6.C2
-rw-r--r--gcc/testsuite/g++.dg/template/member5.C2
-rw-r--r--gcc/testsuite/g++.dg/template/meminit1.C2
-rw-r--r--gcc/testsuite/g++.dg/template/nested3.C4
-rw-r--r--gcc/testsuite/g++.dg/template/nontype6.C2
-rw-r--r--gcc/testsuite/g++.dg/template/overload12.C4
-rw-r--r--gcc/testsuite/g++.dg/template/ptrmem8.C8
-rw-r--r--gcc/testsuite/g++.dg/template/qualified-id1.C2
-rw-r--r--gcc/testsuite/g++.dg/template/spec15.C2
-rw-r--r--gcc/testsuite/g++.dg/template/static1.C4
-rw-r--r--gcc/testsuite/g++.dg/template/static10.C2
-rw-r--r--gcc/testsuite/g++.dg/template/static2.C4
-rw-r--r--gcc/testsuite/g++.dg/template/ttp25.C6
-rw-r--r--gcc/testsuite/g++.dg/template/typedef2.C2
-rw-r--r--gcc/testsuite/g++.dg/template/typename2.C2
-rw-r--r--gcc/testsuite/g++.dg/template/unify10.C24
-rw-r--r--gcc/testsuite/g++.dg/template/unify6.C2
-rw-r--r--gcc/testsuite/g++.dg/template/unify7.C2
-rw-r--r--gcc/testsuite/g++.dg/template/unify9.C2
-rw-r--r--gcc/testsuite/g++.dg/template/varmod1.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr79671.C25
-rw-r--r--gcc/testsuite/g++.dg/torture/pr79905.C1
-rw-r--r--gcc/testsuite/g++.dg/ubsan/div-by-zero-1.C2
-rw-r--r--gcc/testsuite/g++.dg/ubsan/div-by-zero-3.C22
-rw-r--r--gcc/testsuite/g++.dg/ubsan/pr63956.C10
-rw-r--r--gcc/testsuite/g++.dg/ubsan/pr80349.C11
-rw-r--r--gcc/testsuite/g++.dg/ubsan/pr80403-2.C14
-rw-r--r--gcc/testsuite/g++.dg/ubsan/pr80403.C11
-rw-r--r--gcc/testsuite/g++.dg/ubsan/pr80404.C12
-rw-r--r--gcc/testsuite/g++.dg/ubsan/pr80405.C11
-rw-r--r--gcc/testsuite/g++.dg/warn/Waddress-1.C16
-rw-r--r--gcc/testsuite/g++.dg/warn/Wconversion2.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wnull-conversion-1.C6
-rw-r--r--gcc/testsuite/g++.dg/warn/Wsubobject-linkage-1.C4
-rw-r--r--gcc/testsuite/g++.dg/warn/Wsubobject-linkage-3.C4
-rw-r--r--gcc/testsuite/g++.dg/warn/Wswitch-1.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wtype-limits-Wextra.C4
-rw-r--r--gcc/testsuite/g++.dg/warn/Wtype-limits.C4
-rw-r--r--gcc/testsuite/g++.dg/warn/Wunused-parm-5.C4
-rw-r--r--gcc/testsuite/g++.dg/warn/deprecated-6.C8
-rw-r--r--gcc/testsuite/g++.dg/warn/deprecated.C8
-rw-r--r--gcc/testsuite/g++.dg/warn/incomplete1.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/multiple-overflow-warn-1.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/multiple-overflow-warn-2.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/multiple-overflow-warn-3.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/overflow-warn-1.C18
-rw-r--r--gcc/testsuite/g++.dg/warn/overflow-warn-3.C20
-rw-r--r--gcc/testsuite/g++.dg/warn/overflow-warn-4.C24
-rw-r--r--gcc/testsuite/g++.dg/warn/pr12242.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/pr30551-2.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/pr30551.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.benjamin/16077.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.bob/inherit1.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/crash56.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/template17.C6
-rw-r--r--gcc/testsuite/g++.old-deja/g++.eh/ctor1.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/bool5.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/cond.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/operator.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/pmf5.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/ctors5.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/missed-error2.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/operators9.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/temps1.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/for2.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/ns5.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/ns7.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/p10769b.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.niklas/t120.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.niklas/t121.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/koenig5.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.oliva/overload1.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/crash24.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/crash25.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/decl5.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/lineno5.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/null3.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/overcnv2.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/typename1.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/vaarg3.C8
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/crash10.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/crash28.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/crash38.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/explicit70.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/explicit77.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/expr2.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/niklas01a.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/spec5.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/spec6.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/typename3.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/typename5.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/typename6.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/typename7.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/unify4.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/unify8.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/vaarg3.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.robertl/eb22.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.robertl/eb4.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.robertl/eb44.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.robertl/eb69.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.robertl/eb98.C2
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20170419-1.c13
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr80357.c18
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr80422.c26
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr80443.c20
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr80153.c48
-rw-r--r--gcc/testsuite/gcc.dg/20031223-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/940510-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/990506-0.c4
-rw-r--r--gcc/testsuite/gcc.dg/Walloca-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/Walloca-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/Wconversion-integer.c4
-rw-r--r--gcc/testsuite/gcc.dg/Wcxx-compat-8.c6
-rw-r--r--gcc/testsuite/gcc.dg/Wimplicit-int-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/Wimplicit-int-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/Wimplicit-int-4.c2
-rw-r--r--gcc/testsuite/gcc.dg/Wpointer-sign-Wall.c2
-rw-r--r--gcc/testsuite/gcc.dg/Wpointer-sign-pedantic.c2
-rw-r--r--gcc/testsuite/gcc.dg/Wshadow-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/Wshadow-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/Wswitch-enum-error.c4
-rw-r--r--gcc/testsuite/gcc.dg/Wswitch-enum.c4
-rw-r--r--gcc/testsuite/gcc.dg/Wswitch-error.c4
-rw-r--r--gcc/testsuite/gcc.dg/Wswitch.c2
-rw-r--r--gcc/testsuite/gcc.dg/Wtype-limits-Wextra.c12
-rw-r--r--gcc/testsuite/gcc.dg/Wtype-limits.c12
-rw-r--r--gcc/testsuite/gcc.dg/Wvla-larger-than-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/anon-struct-5.c4
-rw-r--r--gcc/testsuite/gcc.dg/array-10.c10
-rw-r--r--gcc/testsuite/gcc.dg/array-11.c4
-rw-r--r--gcc/testsuite/gcc.dg/array-15.c24
-rw-r--r--gcc/testsuite/gcc.dg/array-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/array-8.c2
-rw-r--r--gcc/testsuite/gcc.dg/array-const-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/array-const-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/attr-alloc_size-11.c4
-rw-r--r--gcc/testsuite/gcc.dg/bitfld-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/bitfld-8.c2
-rw-r--r--gcc/testsuite/gcc.dg/builtin-redefine.c10
-rw-r--r--gcc/testsuite/gcc.dg/c11-noreturn-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/c11-noreturn-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/c11-static-assert-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/c90-arraydecl-1.c10
-rw-r--r--gcc/testsuite/gcc.dg/c90-complex-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/c90-complit-1.c8
-rw-r--r--gcc/testsuite/gcc.dg/c90-const-expr-11.c4
-rw-r--r--gcc/testsuite/gcc.dg/c90-const-expr-7.c14
-rw-r--r--gcc/testsuite/gcc.dg/c90-const-expr-8.c16
-rw-r--r--gcc/testsuite/gcc.dg/c90-enum-comma-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/c90-flex-array-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/c90-hexfloat-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/c90-idem-qual-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/c90-idem-qual-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/c90-idem-qual-3.c4
-rw-r--r--gcc/testsuite/gcc.dg/c90-mixdecl-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/c90-restrict-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/c90-return-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/c99-array-nonobj-1.c12
-rw-r--r--gcc/testsuite/gcc.dg/c99-arraydecl-1.c22
-rw-r--r--gcc/testsuite/gcc.dg/c99-complex-1.c8
-rw-r--r--gcc/testsuite/gcc.dg/c99-complex-2.c8
-rw-r--r--gcc/testsuite/gcc.dg/c99-complit-2.c34
-rw-r--r--gcc/testsuite/gcc.dg/c99-const-expr-7.c20
-rw-r--r--gcc/testsuite/gcc.dg/c99-const-expr-8.c16
-rw-r--r--gcc/testsuite/gcc.dg/c99-flex-array-3.c30
-rw-r--r--gcc/testsuite/gcc.dg/c99-flex-array-7.c8
-rw-r--r--gcc/testsuite/gcc.dg/c99-flex-array-typedef-7.c8
-rw-r--r--gcc/testsuite/gcc.dg/c99-impl-decl-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/c99-impl-int-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/c99-impl-int-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/c99-init-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/c99-restrict-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/c99-return-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/c99-tag-1.c48
-rw-r--r--gcc/testsuite/gcc.dg/c99-tag-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/call-diag-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/19940712-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/19951025-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/19990413-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/direct2.c8
-rw-r--r--gcc/testsuite/gcc.dg/cpp/direct2s.c4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/pr28709.c4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/pr61854-c90.c4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/pr61854-c94.c4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/pragma-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/pragma-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/trad/escaped-eof.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/trad/literals-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/warn-comments-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/warn-comments-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/warn-comments.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/warn-long-long-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/warn-long-long.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/warn-redefined-2.c6
-rw-r--r--gcc/testsuite/gcc.dg/cpp/warn-redefined.c6
-rw-r--r--gcc/testsuite/gcc.dg/darwin-cfstring-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/darwin-cfstring-format-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/debug/dwarf2/pr80263.c7
-rw-r--r--gcc/testsuite/gcc.dg/debug/pr80321.c26
-rw-r--r--gcc/testsuite/gcc.dg/decl-9.c2
-rw-r--r--gcc/testsuite/gcc.dg/declspec-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/declspec-10.c6
-rw-r--r--gcc/testsuite/gcc.dg/declspec-11.c6
-rw-r--r--gcc/testsuite/gcc.dg/declspec-13.c46
-rw-r--r--gcc/testsuite/gcc.dg/declspec-18.c14
-rw-r--r--gcc/testsuite/gcc.dg/declspec-4.c14
-rw-r--r--gcc/testsuite/gcc.dg/declspec-5.c18
-rw-r--r--gcc/testsuite/gcc.dg/declspec-6.c18
-rw-r--r--gcc/testsuite/gcc.dg/declspec-8.c4
-rw-r--r--gcc/testsuite/gcc.dg/deprecated-4.c8
-rw-r--r--gcc/testsuite/gcc.dg/deprecated.c8
-rw-r--r--gcc/testsuite/gcc.dg/dfp/composite-type.c6
-rw-r--r--gcc/testsuite/gcc.dg/empty-source-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/empty-source-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/format/attr-6.c2
-rw-r--r--gcc/testsuite/gcc.dg/format/branch-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/format/c90-printf-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/format/c90-strftime-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/format/c99-strftime-1.c12
-rw-r--r--gcc/testsuite/gcc.dg/format/cmn-err-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/format/few-1.c28
-rw-r--r--gcc/testsuite/gcc.dg/format/ms_branch-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/format/ms_unnamed-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/format/ms_va-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/format/unnamed-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/format/va-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/format/xopen-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/funcdef-var-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/funcdef-var-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/gnu89-const-expr-1.c18
-rw-r--r--gcc/testsuite/gcc.dg/gnu89-const-expr-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/gnu90-const-expr-1.c18
-rw-r--r--gcc/testsuite/gcc.dg/gnu99-const-expr-1.c18
-rw-r--r--gcc/testsuite/gcc.dg/gnu99-const-expr-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/gnu99-init-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/gomp/_Atomic-5.c18
-rw-r--r--gcc/testsuite/gcc.dg/gomp/appendix-a/a.24.1.c6
-rw-r--r--gcc/testsuite/gcc.dg/gomp/atomic-5.c2
-rw-r--r--gcc/testsuite/gcc.dg/gomp/linear-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/gomp/pr67500.c4
-rw-r--r--gcc/testsuite/gcc.dg/init-bad-1.c24
-rw-r--r--gcc/testsuite/gcc.dg/init-bad-2.c12
-rw-r--r--gcc/testsuite/gcc.dg/init-bad-3.c12
-rw-r--r--gcc/testsuite/gcc.dg/init-string-1.c16
-rw-r--r--gcc/testsuite/gcc.dg/label-compound-stmt-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/label-decl-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/label-decl-4.c2
-rw-r--r--gcc/testsuite/gcc.dg/large-size-array-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/large-size-array-4.c2
-rw-r--r--gcc/testsuite/gcc.dg/lvalue-6.c2
-rw-r--r--gcc/testsuite/gcc.dg/m-un-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/multiple-overflow-warn-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/multiple-overflow-warn-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/multiple-overflow-warn-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/nested-redef-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/no-asm-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/no-asm-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/no-asm-4.c2
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/20010524-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/incomplete-5.c2
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/pr44517.c4
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/pr52290.c4
-rw-r--r--gcc/testsuite/gcc.dg/noreturn-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/overflow-warn-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/overflow-warn-2.c36
-rw-r--r--gcc/testsuite/gcc.dg/overflow-warn-3.c26
-rw-r--r--gcc/testsuite/gcc.dg/overflow-warn-4.c26
-rw-r--r--gcc/testsuite/gcc.dg/parm-mismatch-1.c8
-rw-r--r--gcc/testsuite/gcc.dg/parser-pr28152-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/parser-pr28152.c2
-rw-r--r--gcc/testsuite/gcc.dg/pedwarn-init.c2
-rw-r--r--gcc/testsuite/gcc.dg/pointer-arith-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/pointer-arith-3.c4
-rw-r--r--gcc/testsuite/gcc.dg/pointer-arith-4.c4
-rw-r--r--gcc/testsuite/gcc.dg/pr14475.c6
-rw-r--r--gcc/testsuite/gcc.dg/pr18596-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr18809-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/pr27953.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr30457.c4
-rw-r--r--gcc/testsuite/gcc.dg/pr30551-2.c4
-rw-r--r--gcc/testsuite/gcc.dg/pr30551-3.c4
-rw-r--r--gcc/testsuite/gcc.dg/pr30551-4.c4
-rw-r--r--gcc/testsuite/gcc.dg/pr30551-5.c4
-rw-r--r--gcc/testsuite/gcc.dg/pr30551-6.c4
-rw-r--r--gcc/testsuite/gcc.dg/pr30551.c4
-rw-r--r--gcc/testsuite/gcc.dg/pr36997.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr40340-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr40340-4.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr41842.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr48552-1.c12
-rw-r--r--gcc/testsuite/gcc.dg/pr48552-2.c12
-rw-r--r--gcc/testsuite/gcc.dg/pr54669.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr59717.c226
-rw-r--r--gcc/testsuite/gcc.dg/pr61077.c6
-rw-r--r--gcc/testsuite/gcc.dg/pr61096-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr63626.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr64223-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr64223-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr78582.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr79788-1.c11
-rw-r--r--gcc/testsuite/gcc.dg/pr79788-2.c11
-rw-r--r--gcc/testsuite/gcc.dg/pr80020.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr80100.c9
-rw-r--r--gcc/testsuite/gcc.dg/pr8788-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr8927-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/pragma-darwin.c2
-rw-r--r--gcc/testsuite/gcc.dg/pragma-diag-5.c2
-rw-r--r--gcc/testsuite/gcc.dg/pragma-message.c18
-rw-r--r--gcc/testsuite/gcc.dg/redecl-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/sancov/pr80444.c9
-rw-r--r--gcc/testsuite/gcc.dg/simd-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/simd-5.c2
-rw-r--r--gcc/testsuite/gcc.dg/simd-6.c2
-rw-r--r--gcc/testsuite/gcc.dg/spellcheck-fields.c2
-rw-r--r--gcc/testsuite/gcc.dg/spellcheck-typenames.c2
-rw-r--r--gcc/testsuite/gcc.dg/struct-semi-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/struct-semi-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr57993-2.cpp2
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr80163.c35
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr80359.c12
-rw-r--r--gcc/testsuite/gcc.dg/transparent-union-3.c12
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-4.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-5.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-6.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-10.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-16.c255
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-3.c8
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-5.c3
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr79327-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr79352.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr79376.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr79691.c2
-rw-r--r--gcc/testsuite/gcc.dg/ubsan/pr70878.c9
-rw-r--r--gcc/testsuite/gcc.dg/ucnid-8.c2
-rw-r--r--gcc/testsuite/gcc.dg/uninit-pr19430-O0.c2
-rw-r--r--gcc/testsuite/gcc.dg/uninit-pr19430.c2
-rw-r--r--gcc/testsuite/gcc.dg/uninit-pr20644-O0.c4
-rw-r--r--gcc/testsuite/gcc.dg/unroll-7.c4
-rw-r--r--gcc/testsuite/gcc.dg/utf-dflt.c4
-rw-r--r--gcc/testsuite/gcc.dg/utf-dflt2.c2
-rw-r--r--gcc/testsuite/gcc.dg/utf16-4.c4
-rw-r--r--gcc/testsuite/gcc.dg/vla-11.c2
-rw-r--r--gcc/testsuite/gcc.dg/vla-20.c2
-rw-r--r--gcc/testsuite/gcc.dg/vla-init-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/vla-init-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/vla-init-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/weak/weak-6.c2
-rw-r--r--gcc/testsuite/gcc.dg/weak/weak-7.c2
-rw-r--r--gcc/testsuite/gcc.dg/wtr-int-type-1.c2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/mgeneral-regs_1.c4
-rw-r--r--gcc/testsuite/gcc.target/arc/loop-1.c45
-rw-r--r--gcc/testsuite/gcc.target/arm/polytypes.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/pr70465-2.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/pr80381.c29
-rw-r--r--gcc/testsuite/gcc.target/i386/spellcheck-options-4.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/pr74563.c14
-rw-r--r--gcc/testsuite/gcc.target/powerpc/20030218-1.c2
-rw-r--r--gcc/testsuite/gcc.target/powerpc/20050830-1.c3
-rw-r--r--gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp65
-rw-r--r--gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr80108-1.f9053
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80098-1.c9
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80098-2.c9
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80098-3.c9
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80098-4.c8
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80099-1.c12
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80099-2.c128
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80099-3.c128
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80099-4.c128
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80099-5.c128
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80315-1.c16
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80315-2.c16
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80315-3.c18
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80315-4.c18
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr80343.c50
-rw-r--r--gcc/testsuite/gcc.target/sh/pr21255-4.c4
-rw-r--r--gcc/testsuite/gcc.test-framework/dg-error-exp-XP.c2
-rw-r--r--gcc/testsuite/gfortran.dg/array_constructor_30.f034
-rw-r--r--gcc/testsuite/gfortran.dg/class_30.f902
-rw-r--r--gcc/testsuite/gfortran.dg/class_62.f9029
-rw-r--r--gcc/testsuite/gfortran.dg/deferred_character_3.f902
-rw-r--r--gcc/testsuite/gfortran.dg/do_concurrent_4.f9067
-rw-r--r--gcc/testsuite/gfortran.dg/generic_29.f902
-rw-r--r--gcc/testsuite/gfortran.dg/goacc/multi-clause.f902
-rw-r--r--gcc/testsuite/gfortran.dg/goacc/subarrays.f9512
-rw-r--r--gcc/testsuite/gfortran.dg/gomp/appendix-a/a.23.5.f904
-rw-r--r--gcc/testsuite/gfortran.dg/gomp/appendix-a/a.24.1.f902
-rw-r--r--gcc/testsuite/gfortran.dg/intrinsic_std_1.f904
-rw-r--r--gcc/testsuite/gfortran.dg/pr41922.f902
-rw-r--r--gcc/testsuite/gfortran.dg/pr70006.f9010
-rw-r--r--gcc/testsuite/gfortran.dg/proc_ptr_comp_48.f9047
-rw-r--r--gcc/testsuite/gfortran.dg/submodule_twice.f907
-rw-r--r--gcc/testsuite/gfortran.dg/submodule_unexp.f902
-rw-r--r--gcc/testsuite/gfortran.dg/warning-directive-1.F902
-rw-r--r--gcc/testsuite/gfortran.dg/warning-directive-2.F902
-rw-r--r--gcc/testsuite/gfortran.dg/warning-directive-3.F902
-rw-r--r--gcc/testsuite/gfortran.dg/warning-directive-4.F902
-rw-r--r--gcc/testsuite/gnat.dg/debug10.adb68
-rw-r--r--gcc/testsuite/gnat.dg/debug10_pkg.ads138
-rw-r--r--gcc/testsuite/lib/target-libpath.exp21
-rw-r--r--gcc/testsuite/obj-c++.dg/attributes/method-noreturn-1.mm4
-rw-r--r--gcc/testsuite/obj-c++.dg/class-extension-1.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/class-extension-2.mm16
-rw-r--r--gcc/testsuite/obj-c++.dg/class-protocol-1.mm4
-rw-r--r--gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/duplicate-class-1.mm4
-rw-r--r--gcc/testsuite/obj-c++.dg/exceptions-3.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/exceptions-4.mm8
-rw-r--r--gcc/testsuite/obj-c++.dg/exceptions-5.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/fsf-nsstring-format-1.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/fsf-package-0.m2
-rw-r--r--gcc/testsuite/obj-c++.dg/invalid-type-1.mm4
-rw-r--r--gcc/testsuite/obj-c++.dg/method-12.mm6
-rw-r--r--gcc/testsuite/obj-c++.dg/method-13.mm6
-rw-r--r--gcc/testsuite/obj-c++.dg/method-15.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/method-16.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/method-6.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/method-7.mm6
-rw-r--r--gcc/testsuite/obj-c++.dg/property/at-property-1.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/property/at-property-14.mm4
-rw-r--r--gcc/testsuite/obj-c++.dg/property/at-property-17.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/property/at-property-21.mm4
-rw-r--r--gcc/testsuite/obj-c++.dg/property/at-property-5.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/property/dotsyntax-4.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/property/dynamic-3.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/property/dynamic-4.mm4
-rw-r--r--gcc/testsuite/obj-c++.dg/property/property-neg-1.mm4
-rw-r--r--gcc/testsuite/obj-c++.dg/property/property-neg-6.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/property/synthesize-11.mm4
-rw-r--r--gcc/testsuite/obj-c++.dg/property/synthesize-5.mm6
-rw-r--r--gcc/testsuite/obj-c++.dg/property/synthesize-6.mm6
-rw-r--r--gcc/testsuite/obj-c++.dg/proto-lossage-4.mm6
-rw-r--r--gcc/testsuite/obj-c++.dg/protocol-qualifier-2.mm6
-rw-r--r--gcc/testsuite/obj-c++.dg/strings/strings-1.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/super-class-1.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/syntax-error-6.mm6
-rw-r--r--gcc/testsuite/obj-c++.dg/syntax-error-7.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/syntax-error-9.mm2
-rw-r--r--gcc/testsuite/obj-c++.dg/try-catch-13.mm6
-rw-r--r--gcc/testsuite/objc.dg/attributes/method-noreturn-1.m4
-rw-r--r--gcc/testsuite/objc.dg/bad-receiver-type-2.m12
-rw-r--r--gcc/testsuite/objc.dg/bad-receiver-type.m2
-rw-r--r--gcc/testsuite/objc.dg/call-super-2.m2
-rw-r--r--gcc/testsuite/objc.dg/class-2.m2
-rw-r--r--gcc/testsuite/objc.dg/class-extension-1.m2
-rw-r--r--gcc/testsuite/objc.dg/class-extension-2.m16
-rw-r--r--gcc/testsuite/objc.dg/class-protocol-1.m4
-rw-r--r--gcc/testsuite/objc.dg/desig-init-1.m2
-rw-r--r--gcc/testsuite/objc.dg/duplicate-class-1.m4
-rw-r--r--gcc/testsuite/objc.dg/exceptions-3.m2
-rw-r--r--gcc/testsuite/objc.dg/exceptions-4.m2
-rw-r--r--gcc/testsuite/objc.dg/exceptions-5.m2
-rw-r--r--gcc/testsuite/objc.dg/foreach-6.m2
-rw-r--r--gcc/testsuite/objc.dg/foreach-7.m4
-rw-r--r--gcc/testsuite/objc.dg/fsf-nsstring-format-1.m2
-rw-r--r--gcc/testsuite/objc.dg/fsf-package-0.m2
-rw-r--r--gcc/testsuite/objc.dg/invalid-type-1.m2
-rw-r--r--gcc/testsuite/objc.dg/method-11.m2
-rw-r--r--gcc/testsuite/objc.dg/method-19.m2
-rw-r--r--gcc/testsuite/objc.dg/method-2.m6
-rw-r--r--gcc/testsuite/objc.dg/method-20.m2
-rw-r--r--gcc/testsuite/objc.dg/method-5.m6
-rw-r--r--gcc/testsuite/objc.dg/method-6.m6
-rw-r--r--gcc/testsuite/objc.dg/method-7.m6
-rw-r--r--gcc/testsuite/objc.dg/method-9.m2
-rw-r--r--gcc/testsuite/objc.dg/missing-proto-3.m2
-rw-r--r--gcc/testsuite/objc.dg/private-1.m2
-rw-r--r--gcc/testsuite/objc.dg/property/at-property-1.m2
-rw-r--r--gcc/testsuite/objc.dg/property/at-property-14.m4
-rw-r--r--gcc/testsuite/objc.dg/property/at-property-17.m2
-rw-r--r--gcc/testsuite/objc.dg/property/at-property-21.m4
-rw-r--r--gcc/testsuite/objc.dg/property/at-property-5.m2
-rw-r--r--gcc/testsuite/objc.dg/property/dynamic-3.m2
-rw-r--r--gcc/testsuite/objc.dg/property/dynamic-4.m4
-rw-r--r--gcc/testsuite/objc.dg/property/property-neg-1.m4
-rw-r--r--gcc/testsuite/objc.dg/property/property-neg-6.m2
-rw-r--r--gcc/testsuite/objc.dg/property/synthesize-11.m4
-rw-r--r--gcc/testsuite/objc.dg/property/synthesize-5.m6
-rw-r--r--gcc/testsuite/objc.dg/property/synthesize-6.m6
-rw-r--r--gcc/testsuite/objc.dg/proto-hier-1.m2
-rw-r--r--gcc/testsuite/objc.dg/proto-lossage-4.m6
-rw-r--r--gcc/testsuite/objc.dg/protocol-qualifier-2.m6
-rw-r--r--gcc/testsuite/objc.dg/strings/strings-1.m2
-rw-r--r--gcc/testsuite/objc.dg/type-size-1.m4
-rw-r--r--gcc/tree-affine.c80
-rw-r--r--gcc/tree-core.h4
-rw-r--r--gcc/tree-ssa-dom.c2
-rw-r--r--gcc/tree-ssa-dse.c3
-rw-r--r--gcc/tree-ssa-loop-ivopts.c65
-rw-r--r--gcc/tree-ssa-structalias.c4
-rw-r--r--gcc/tree-streamer-in.c2
-rw-r--r--gcc/tree-streamer-out.c2
-rw-r--r--gcc/tree-vrp.c56
-rw-r--r--gcc/tree.h7
-rw-r--r--gcc/ubsan.c16
739 files changed, 6121 insertions, 2050 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bf3119afa1d..d52db8a3609 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,432 @@
+2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
+ Vladimir Makarov <vmakarov@redhat.com>
+
+ * config/sparc/predicates.md (input_operand): Add comment. Return
+ true for any memory operand when LRA is in progress.
+ * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
+
+2017-04-18 Jeff Law <law@redhat.com>
+
+ PR target/74563
+ * mips.md ({return,simple_return}_internal): Do not overwrite
+ operands[0].
+
+2017-04-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/80443
+ * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
+ instead of adding 1, subtract -1 and similarly instead of subtracting
+ 1 add -1.
+
+2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR rtl-optimization/80357
+ * haifa-sched.c (tmp_bitmap): New variable.
+ (model_recompute): Handle duplicate use records.
+ (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
+ (free_global_sched_pressure_data): Free it.
+
+2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ Revert:
+ 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
+ * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
+ (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
+ instead of SYSTEM_HEADER_DIR.
+
+2017-04-18 Jeff Law <law@redhat.com>
+
+ PR middle-end/80422
+ * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
+ predecessors after walking up the insn chain.
+
+2017-04-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/80263
+ * dwarf2out.c (modified_type_die): Try harder not to emit internal
+ sizetype type into debug info.
+
+2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/80099
+ * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
+ unneeded test for TARGET_UPPER_REGS_SF.
+ * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
+
+2017-04-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/80444
+ * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
+ instead of gsi_after_labels.
+
+2017-04-18 Jeff Law <law@redhat.com>
+
+ * regcprop.c (maybe_mode_change): Avoid creating copies of the
+ stack pointer.
+
+ Revert:
+ 2017-04-13 Jeff Law <law@redhat.com>
+ * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
+ in operands[1] if it is a MEM and TARGET_MIPS16 is active.
+
+2017-04-18 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/79453
+ * config/avr/avr.c (intl.h): Include it.
+ (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
+
+2017-04-18 Martin Liska <mliska@suse.cz>
+
+ PR gcov-profile/78783
+ * gcov-tool.c (gcov_output_files): Validate that destination
+ file is either removed by the tool or by a user.
+
+2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
+ Guy Benyei <guybe@mellanox.com>
+
+ * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
+ block, and do not negate it, the stored id is already negative.
+
+2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
+
+2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/80098
+ * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
+ masks of options that should be turned off if the VSX vector
+ options are turned off.
+ (OTHER_P8_VECTOR_MASKS): Likewise.
+ (OTHER_VSX_VECTOR_MASKS): Likewise.
+ * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
+ rs6000_disable_incompatible_switches to validate no type switches
+ like -mvsx.
+ (rs6000_incompatible_switch): New function to disallow turning on
+ other vector options if -mno-vsx, -mno-power8-vector, or
+ -mno-power9-vector are specified.
+
+2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
+
+2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
+ * config/arc/arc.c (arc_decl_pretend_args): Likewise.
+ * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
+ (ARG_POINTER_CFA_OFFSET): Likewise.
+
+2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.c (arc_mode_dependent_address_p): Relax
+ conditions to take advantage of various optimizations.
+
+2017-04-13 Jeff Law <law@redhat.com>
+
+ * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
+ in operands[1] if it is a MEM and TARGET_MIPS16 is active.
+ (zero_extendsidi2_dext): Likewise.
+
+2017-04-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/80403
+ * fold-const.c (fold_ternary_loc): Revert
+ use op0 instead of fold_convert_loc (loc, type, arg0) part of
+ 2017-04-12 change.
+
+2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/80343
+ * lra-remat.c (update_scratch_ops): Assign original hard reg to
+ new scratch pseudo.
+
+2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
+
+ PR sanitizer/80414
+ * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
+ to ubsan_encode_value.
+
+2017-04-13 Jeff Law <law@redhat.com>
+
+ * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
+ appearing in DEBUG_INSNs.
+
+2017-04-13 Martin Liska <mliska@suse.cz>
+
+ PR gcov-profile/80413
+ * gcov-io.c (gcov_write_string): Copy to buffer just when
+ allocated size is greater than zero.
+
+2017-04-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/80321
+ * dwarf2out.c (decls_for_scope): Ignore declarations of
+ current_function_decl in BLOCK_NONLOCALIZED_VARS.
+
+2017-04-12 Jan Hubicka <hubicka@ucw.cz>
+
+ PR lto/69953
+ * ipa-visibility.c (non_local_p): Fix typos.
+ (localize_node): When localizing symbol in same comdat group,
+ dissolve the group only when we know external symbols are going
+ to be privatized.
+ (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
+
+2017-04-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/79390
+ * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
+ order does not result in usable sequence, retry with reversed operand
+ order.
+
+ PR sanitizer/80403
+ PR sanitizer/80404
+ PR sanitizer/80405
+ * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
+ to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
+ op0 instead of fold_convert_loc (loc, type, arg0).
+
+2017-04-12 Jeff Law <law@redhat.com>
+
+ * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
+ has a delay slot in the generated code.
+
+ * config/cris/cris.md (cris_preferred_reload_class): Return
+ GENNONACR_REGS rather than GENERAL_REGS.
+
+2017-04-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/80163
+ * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
+ vs. ZERO_EXTEND based on signedness of treeop0's type rather than
+ signedness of the result type.
+
+2017-04-12 Richard Biener <rguenther@suse.de>
+ Jeff Law <law@redhat.com>
+
+ PR tree-optimization/80359
+ * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
+ trim stores to TARGET_MEM_REFs.
+
+2017-04-12 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/79390
+ * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
+ threading case even more.
+
+2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/80382
+ * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
+ for quad_address_p for TImode, instead of just not indexed_address.
+
+2017-04-12 Richard Biener <rguenther@suse.de>
+ Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ PR middle-end/79671
+ * alias.c (component_uses_parent_alias_set_from): Handle
+ TYPE_TYPELESS_STORAGE.
+ (get_alias_set): Likewise.
+ * tree-core.h (tree_type_common): Add typeless_storage flag.
+ * tree.h (TYPE_TYPELESS_STORAGE): New macro.
+ * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
+ for types containing members with TYPE_TYPELESS_STORAGE.
+ (place_field): Likewise.
+ (layout_type): Likewise for ARRAY_TYPE.
+ * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
+ * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
+ TYPE_TYPELESS_STORAGE.
+ * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
+
+2017-04-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/80349
+ * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
+ first argument to type.
+
+2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ PR target/80376
+ PR target/80315
+ * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
+ CONST0_RTX (mode) rather than const0_rtx where appropriate.
+ (rs6000_expand_binop_builtin): Likewise.
+ (rs6000_expand_ternop_builtin): Likewise; also add missing
+ vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
+ vshasigma built-ins.
+ * doc/extend.texi: Document that vec_xxpermdi's third argument
+ must be a constant.
+
+2017-04-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
+ Use shift_const cost parameter when calculating gain of STV shifts.
+
+2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/70478
+ * lra-constraints.c (process_alt_operands): Check memory for
+ disfavoring memory insn operand.
+
+2017-04-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/80100
+ * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
+ left shift in unsigned HOST_WIDE_INT type.
+
+ PR rtl-optimization/80385
+ * simplify-rtx.c (simplify_unary_operation_1): Don't transform
+ (not (neg X)) into (plus X -1) for complex or non-integral modes.
+
+ PR libgomp/80394
+ * omp-low.c (scan_omp_task): Don't optimize away empty tasks
+ if they have any depend clauses.
+
+2017-04-11 Martin Liska <mliska@suse.cz>
+
+ PR ipa/80212
+ * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
+ * ipa-split.c (split_function): Create a local comdat symbol
+ if caller is in a comdat group.
+
+2017-04-11 Martin Liska <mliska@suse.cz>
+
+ PR ipa/80212
+ * ipa-cp.c (determine_versionability): Handle calls_comdat_local
+ flags.
+
+2017-04-11 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/80364
+ * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
+ always use the int type. Use INTEGRAL_TYPE_P() rather than testing
+ for INTEGER_TYPE.
+ (directive::set_width, directive::set_precision, format_character):
+ Adjust.
+ (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
+ INTEGER_TYPE.
+
+2017-04-11 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/80389
+ * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
+ conflict, set target->arch_name instead of target->cpu_name.
+
+2017-04-11 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/80374
+ * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
+ build_zero_cst, remove fold_convertible_p check again.
+
+2017-04-11 Martin Liska <mliska@suse.cz>
+
+ PR sanitizer/70878
+ * ubsan.c (instrument_object_size): Do not instrument register
+ variables.
+
+2017-04-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/80381
+ * config/i386/i386-builtin-types.def
+ (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
+ V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
+ V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
+ V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
+ V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
+ V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
+ V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
+ V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
+ V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
+ V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
+ V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
+ V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
+ V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
+ V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
+ V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
+ V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
+ V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
+ V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
+ * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
+ __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
+ __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
+ __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
+ __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
+ __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
+ __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
+ __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
+ __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
+ __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
+ __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
+ __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
+ __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
+ __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
+ __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
+ __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
+ __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
+ __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
+ __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
+ __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
+ __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
+ __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
+ __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
+ __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
+ __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
+ __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
+ __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
+ __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
+ aliases.
+ * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
+ flag to second_arg_count, handle 4 argument function type _COUNT
+ aliases, handle second_arg_count on second argument rather than last.
+
+2017-04-10 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/80374
+ * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
+ record anything if we can not convert integer_zero_node to the
+ desired type.
+
+2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
+
+ PR target/80108
+ * config/rs6000/rs6000.c (rs6000_option_override_internal):
+ Enhance special handling given to the TARGET_P9_MINMAX option in
+ relation to certain other options.
+
+2017-04-10 Bin Cheng <bin.cheng@arm.com>
+
+ PR tree-optimization/80153
+ * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
+ remove POINTER_PLUS_EXPR's base part directly, rather than through
+ aff_tree.
+
+2017-04-10 Richard Biener <rguenther@suse.de>
+ Bin Cheng <bin.cheng@arm.com>
+
+ PR tree-optimization/80153
+ * tree-affine.c (aff_combination_to_tree): Get base pointer from
+ the first element of pointer type aff_tree. Build result expr in
+ aff_tree's type.
+ (add_elt_to_tree): Convert to type unconditionally. Remove other
+ fold_convert calls.
+ * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
+ (rewrite_use_nonlinear_expr): Check invariant using iv information.
+
+2017-04-10 Richard Biener <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (find_func_aliases): Properly handle
+ asm inputs.
+
+2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/70478
+ * lra-constraints.c (curr_small_class_check): New.
+ (update_and_check_small_class_inputs): New.
+ (process_alt_operands): Update curr_small_class_check. Disfavor
+ alternative insn memory operands. Check available regs for small
+ class operands.
+
2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
PR target/80057
@@ -40,7 +469,7 @@
PR middle-end/80344
* gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
-
+
2017-04-10 Jakub Jelinek <jakub@redhat.com>
PR target/80324
@@ -1118,14 +1547,14 @@
matching condition.
2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
- Richard Biener <rguenth@suse.de>
+ Richard Biener <rguenth@suse.de>
PR tree-optimization/79908
PR tree-optimization/80136
* tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
been cast away, gimplify_and_add suffices.
-2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
+2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
* tree-vrp.c (identify_jump_threads): Delete avail_exprs.
@@ -1299,7 +1728,7 @@
conditional jump, if the jump is the last insn of the loop.
2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
- Richard Biener <rguenth@suse.de>
+ Richard Biener <rguenth@suse.de>
PR tree-optimization/79908
* tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
@@ -1456,7 +1885,7 @@
2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
- * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
+ * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
to age-old versions of binutils and glibc.
2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
@@ -1468,7 +1897,7 @@
* doc/contrib.texi (Contributors): Add Segher Boessenkool.
2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
-
+
* doc/install.texi (Specific) <arm-*-eabi>: Remove old
requirement for binutils 2.13.
@@ -1803,7 +2232,7 @@
* doc/gccint.texi: Ditto.
2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
-
+
* doc/install.texi (Specific) <avr>: Remove reference to
binutils 2.13.
@@ -1875,7 +2304,7 @@
* doc/install.texi (Specific) <mips-*-*>: Remove description of
issue that only occurred with binutils below 2.18.
-
+
2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
* doc/install.texi (Specific) <cris-axis-elf>: No longer
@@ -1984,8 +2413,8 @@
2017-03-10 Martin Liska <mliska@suse.cz>
- PR target/65705
- PR target/69804
+ PR target/65705
+ PR target/69804
* toplev.c (process_options): Enable MPX with LSAN and UBSAN.
* tree-chkp.c (chkp_walk_pointer_assignments): Verify that
FIELD != NULL.
@@ -2172,7 +2601,8 @@
2017-03-08 Martin Sebor <msebor@redhat.com>
PR target/79928
- * config/nds32/nds32.c (nds32_option_override):
+ * config/nds32/nds32.c (nds32_option_override):
+ Fix misspelled diagnostic.
2017-03-08 Jakub Jelinek <jakub@redhat.com>
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 13e43917633..800d2dec51f 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20170410
+20170419
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index e38b726e887..23bac1b2aca 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -517,18 +517,11 @@ CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
# macro is also used in a double-quoted context.
SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e 's,[^/]*/\.\.\/,,' -e ta`
-# Path to the system headers on the build machine
-ifeq ($(build),$(host))
-BUILD_SYSTEM_HEADER_DIR = $(SYSTEM_HEADER_DIR)
-else
-BUILD_SYSTEM_HEADER_DIR = `echo $(CROSS_SYSTEM_HEADER_DIR) | sed -e :a -e 's,[^/]*/\.\.\/,,' -e ta`
-endif
-
# Control whether to run fixincludes.
STMP_FIXINC = @STMP_FIXINC@
# Test to see whether <limits.h> exists in the system header files.
-LIMITS_H_TEST = [ -f $(BUILD_SYSTEM_HEADER_DIR)/limits.h ]
+LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ]
# Directory for prefix to system directories, for
# each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc.
@@ -579,7 +572,7 @@ ifeq ($(enable_multiarch),yes)
else
ifeq ($(enable_multiarch),auto)
# SYSTEM_HEADER_DIR is makefile syntax, cannot be evaluated in configure.ac
- if_multiarch = $(if $(wildcard $(shell echo $(BUILD_SYSTEM_HEADER_DIR))/../../usr/lib/*/crti.o),$(1))
+ if_multiarch = $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib/*/crti.o),$(1))
else
if_multiarch =
endif
@@ -3003,11 +2996,11 @@ stmp-fixinc: gsyslimits.h macro_list fixinc_list \
sysroot_headers_suffix=`echo $${ml} | sed -e 's/;.*$$//'`; \
multi_dir=`echo $${ml} | sed -e 's/^[^;]*;//'`; \
fix_dir=include-fixed$${multi_dir}; \
- if ! $(inhibit_libc) && test ! -d ${BUILD_SYSTEM_HEADER_DIR}; then \
+ if ! $(inhibit_libc) && test ! -d ${SYSTEM_HEADER_DIR}; then \
echo The directory that should contain system headers does not exist: >&2 ; \
- echo " ${BUILD_SYSTEM_HEADER_DIR}" >&2 ; \
+ echo " ${SYSTEM_HEADER_DIR}" >&2 ; \
tooldir_sysinc=`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`; \
- if test "x${BUILD_SYSTEM_HEADER_DIR}" = "x$${tooldir_sysinc}"; \
+ if test "x${SYSTEM_HEADER_DIR}" = "x$${tooldir_sysinc}"; \
then sleep 1; else exit 1; fi; \
fi; \
$(mkinstalldirs) $${fix_dir}; \
@@ -3018,7 +3011,7 @@ stmp-fixinc: gsyslimits.h macro_list fixinc_list \
export TARGET_MACHINE srcdir SHELL MACRO_LIST && \
cd $(build_objdir)/fixincludes && \
$(SHELL) ./fixinc.sh "$${gcc_dir}/$${fix_dir}" \
- $(BUILD_SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS) ); \
+ $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS) ); \
rm -f $${fix_dir}/syslimits.h; \
if [ -f $${fix_dir}/limits.h ]; then \
mv $${fix_dir}/limits.h $${fix_dir}/syslimits.h; \
diff --git a/gcc/alias.c b/gcc/alias.c
index cc31ee0e261..efd89ce1679 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -613,6 +613,10 @@ component_uses_parent_alias_set_from (const_tree t)
{
const_tree found = NULL_TREE;
+ if (AGGREGATE_TYPE_P (TREE_TYPE (t))
+ && TYPE_TYPELESS_STORAGE (TREE_TYPE (t)))
+ return const_cast <tree> (t);
+
while (handled_component_p (t))
{
switch (TREE_CODE (t))
@@ -883,6 +887,10 @@ get_alias_set (tree t)
variant. */
t = TYPE_MAIN_VARIANT (t);
+ if (AGGREGATE_TYPE_P (t)
+ && TYPE_TYPELESS_STORAGE (t))
+ return 0;
+
/* Always use the canonical type as well. If this is a type that
requires structural comparisons to identify compatible types
use alias set zero. */
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index ff6edbdbef6..10cf7617acb 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,14 @@
+2017-04-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/79788
+ PR middle-end/80375
+ * c-common.c (c_common_type_for_mode): Don't handle
+ widest_*_literal_type_node here.
+ c_common_signed_or_unsigned_type): Likewise.
+ (c_common_nodes_and_builtins): Set widest_*_literal_type_node
+ to *intTI_type_node or *intDI_type_node depending on whether
+ TImode is supported by the target or not.
+
2017-04-10 Martin Liska <mliska@suse.cz>
PR sanitizer/80350
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index 824fdc71233..26d5be370d1 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -2179,10 +2179,6 @@ c_common_type_for_mode (machine_mode mode, int unsignedp)
return (unsignedp ? int_n_trees[i].unsigned_type
: int_n_trees[i].signed_type);
- if (mode == TYPE_MODE (widest_integer_literal_type_node))
- return unsignedp ? widest_unsigned_literal_type_node
- : widest_integer_literal_type_node;
-
if (mode == QImode)
return unsignedp ? unsigned_intQI_type_node : intQI_type_node;
@@ -2412,8 +2408,6 @@ c_common_signed_or_unsigned_type (int unsignedp, tree type)
return (unsignedp ? int_n_trees[i].unsigned_type
: int_n_trees[i].signed_type);
- if (type1 == widest_integer_literal_type_node || type1 == widest_unsigned_literal_type_node)
- return unsignedp ? widest_unsigned_literal_type_node : widest_integer_literal_type_node;
#if HOST_BITS_PER_WIDE_INT >= 64
if (type1 == intTI_type_node || type1 == unsigned_intTI_type_node)
return unsignedp ? unsigned_intTI_type_node : intTI_type_node;
@@ -2534,10 +2528,6 @@ c_common_signed_or_unsigned_type (int unsignedp, tree type)
return (unsignedp ? int_n_trees[i].unsigned_type
: int_n_trees[i].signed_type);
- if (TYPE_OK (widest_integer_literal_type_node))
- return (unsignedp ? widest_unsigned_literal_type_node
- : widest_integer_literal_type_node);
-
#if HOST_BITS_PER_WIDE_INT >= 64
if (TYPE_OK (intTI_type_node))
return unsignedp ? unsigned_intTI_type_node : intTI_type_node;
@@ -4164,17 +4154,16 @@ c_common_nodes_and_builtins (void)
#endif
/* Create the widest literal types. */
- widest_integer_literal_type_node
- = make_signed_type (HOST_BITS_PER_WIDE_INT * 2);
- lang_hooks.decls.pushdecl (build_decl (UNKNOWN_LOCATION,
- TYPE_DECL, NULL_TREE,
- widest_integer_literal_type_node));
-
- widest_unsigned_literal_type_node
- = make_unsigned_type (HOST_BITS_PER_WIDE_INT * 2);
- lang_hooks.decls.pushdecl (build_decl (UNKNOWN_LOCATION,
- TYPE_DECL, NULL_TREE,
- widest_unsigned_literal_type_node));
+ if (targetm.scalar_mode_supported_p (TImode))
+ {
+ widest_integer_literal_type_node = intTI_type_node;
+ widest_unsigned_literal_type_node = unsigned_intTI_type_node;
+ }
+ else
+ {
+ widest_integer_literal_type_node = intDI_type_node;
+ widest_unsigned_literal_type_node = unsigned_intDI_type_node;
+ }
signed_size_type_node = c_common_signed_type (size_type_node);
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index d55b0ceb832..f68a964e31e 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -2017,6 +2017,11 @@ try_crossjump_to_edge (int mode, edge e1, edge e2,
if (newpos2 != NULL_RTX)
src2 = BLOCK_FOR_INSN (newpos2);
+ /* Check that SRC1 and SRC2 have preds again. They may have changed
+ above due to the call to flow_find_cross_jump. */
+ if (EDGE_COUNT (src1->preds) == 0 || EDGE_COUNT (src2->preds) == 0)
+ return false;
+
if (dir == dir_backward)
{
#define SWAP(T, X, Y) do { T tmp = (X); (X) = (Y); (Y) = tmp; } while (0)
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 92ae0910c60..e505b10e211 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -2123,6 +2123,8 @@ cgraph_node::dump (FILE *f)
fprintf (f, " only_called_at_exit");
if (tm_clone)
fprintf (f, " tm_clone");
+ if (calls_comdat_local)
+ fprintf (f, " calls_comdat_local");
if (icf_merged)
fprintf (f, " icf_merged");
if (merged_comdat)
diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h
index 063ca5a4794..93a64cfebac 100644
--- a/gcc/config/arc/arc-protos.h
+++ b/gcc/config/arc/arc-protos.h
@@ -111,7 +111,6 @@ extern int arc_label_align (rtx_insn *label);
extern bool arc_need_delay (rtx_insn *insn);
extern bool arc_text_label (rtx_insn *insn);
-extern int arc_decl_pretend_args (tree decl);
extern bool arc_short_comparison_p (rtx, int);
extern bool arc_epilogue_uses (int regno);
extern bool arc_eh_uses (int regno);
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index 0563a74b724..92fecad93d9 100644
--- a/gcc/config/arc/arc.c
+++ b/gcc/config/arc/arc.c
@@ -5509,13 +5509,9 @@ arc_mode_dependent_address_p (const_rtx addr, addr_space_t)
{
/* SYMBOL_REF is not mode dependent: it is either a small data reference,
which is valid for loads and stores, or a limm offset, which is valid for
- loads. */
- /* Scaled indices are scaled by the access mode; likewise for scaled
- offsets, which are needed for maximum offset stores. */
+ loads. Scaled indices are scaled by the access mode. */
if (GET_CODE (addr) == PLUS
- && (GET_CODE (XEXP ((addr), 0)) == MULT
- || (CONST_INT_P (XEXP ((addr), 1))
- && !SMALL_INT (INTVAL (XEXP ((addr), 1))))))
+ && GET_CODE (XEXP ((addr), 0)) == MULT)
return true;
return false;
}
@@ -6573,8 +6569,6 @@ arc_reorg (void)
rtx_insn *lp_simple = NULL;
rtx_insn *next = NULL;
rtx op0 = XEXP (XVECEXP (PATTERN (insn), 0, 1), 0);
- HOST_WIDE_INT loop_end_id
- = -INTVAL (XEXP (XVECEXP (PATTERN (insn), 0, 4), 0));
int seen_label = 0;
for (lp = prev;
@@ -6585,6 +6579,9 @@ arc_reorg (void)
if (!lp || !NONJUMP_INSN_P (lp)
|| dead_or_set_regno_p (lp, LP_COUNT))
{
+ HOST_WIDE_INT loop_end_id
+ = INTVAL (XEXP (XVECEXP (PATTERN (insn), 0, 4), 0));
+
for (prev = next = insn, lp = NULL ; prev || next;)
{
if (prev)
@@ -9342,17 +9339,6 @@ arc_text_label (rtx_insn *label)
return false;
}
-/* Return the size of the pretend args for DECL. */
-
-int
-arc_decl_pretend_args (tree decl)
-{
- /* struct function is in DECL_STRUCT_FUNCTION (decl), but no
- pretend_args there... See PR38391. */
- gcc_assert (decl == current_function_decl);
- return crtl->args.pretend_args_size;
-}
-
/* Without this, gcc.dg/tree-prof/bb-reorg.c fails to assemble
when compiling with -O2 -freorder-blocks-and-partition -fprofile-use
-D_PROFILE_USE; delay branch scheduling then follows a crossing jump
diff --git a/gcc/config/arc/arc.h b/gcc/config/arc/arc.h
index 08644eb7cdd..1ffb5dec51e 100644
--- a/gcc/config/arc/arc.h
+++ b/gcc/config/arc/arc.h
@@ -1515,10 +1515,11 @@ extern enum arc_function_type arc_compute_function_type (struct function *);
/* Called by crtstuff.c to make calls to function FUNCTION that are defined in
SECTION_OP, and then to switch back to text section. */
#undef CRT_CALL_STATIC_FUNCTION
-#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
- asm (SECTION_OP "\n\t" \
- "bl @" USER_LABEL_PREFIX #FUNC "\n" \
- TEXT_SECTION_ASM_OP);
+#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
+ asm (SECTION_OP "\n\t" \
+ "add r12,pcl,@" USER_LABEL_PREFIX #FUNC "@pcl\n\t" \
+ "jl [r12]\n" \
+ TEXT_SECTION_ASM_OP);
/* This macro expands to the name of the scratch register r12, used for
temporary calculations according to the ABI. */
@@ -1581,11 +1582,6 @@ extern enum arc_function_type arc_compute_function_type (struct function *);
#define INIT_EXPANDERS arc_init_expanders ()
-#define CFA_FRAME_BASE_OFFSET(FUNDECL) (-arc_decl_pretend_args ((FUNDECL)))
-
-#define ARG_POINTER_CFA_OFFSET(FNDECL) \
- (FIRST_PARM_OFFSET (FNDECL) + arc_decl_pretend_args ((FNDECL)))
-
enum
{
ARC_LRA_PRIORITY_NONE, ARC_LRA_PRIORITY_NONCOMPACT, ARC_LRA_PRIORITY_COMPACT
diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
index 88b7fca8c08..f707bd0755e 100644
--- a/gcc/config/arc/arc.md
+++ b/gcc/config/arc/arc.md
@@ -5070,7 +5070,7 @@
{
/* ??? Can do better for when a scratch register
is known. But that would require extra testing. */
- return "push_s r0\;add r0,pcl,%4-(.&-4)\;sr r0,[2]; LP_START\;add r0,pcl,.L__GCC__LP%1-(.&-4)\;sr r0,[3]; LP_END\;pop_s r0";
+ return "push_s r0\;add r0,pcl,%4@pcl\;sr r0,[2]; LP_START\;add r0,pcl,.L__GCC__LP%1@pcl\;sr r0,[3]; LP_END\;pop_s r0";
}
/* Check if the loop end is in range to be set by the lp instruction. */
size = INTVAL (operands[3]) < 2 ? 0 : 2048;
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index a9b61a33942..a2d80cfd645 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -3098,15 +3098,15 @@ arm_configure_build_target (struct arm_build_target *target,
arm_selected_tune = arm_selected_cpu;
arm_selected_cpu = arm_selected_arch;
+ target->arch_name = arm_selected_arch->name;
}
else
{
/* Architecture and CPU are essentially the same.
Prefer the CPU setting. */
arm_selected_arch = NULL;
+ target->core_name = arm_selected_cpu->name;
}
-
- target->core_name = arm_selected_cpu->name;
}
else
{
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 7f5a22b8edf..dde712c49c7 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -20,6 +20,7 @@
#include "config.h"
#include "system.h"
+#include "intl.h"
#include "coretypes.h"
#include "backend.h"
#include "target.h"
@@ -9797,28 +9798,28 @@ avr_pgm_check_var_decl (tree node)
case VAR_DECL:
if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
- reason = "variable";
+ reason = _("variable");
break;
case PARM_DECL:
if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
- reason = "function parameter";
+ reason = _("function parameter");
break;
case FIELD_DECL:
if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
- reason = "structure field";
+ reason = _("structure field");
break;
case FUNCTION_DECL:
if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (TREE_TYPE (node))),
as)
- reason = "return type of function";
+ reason = _("return type of function");
break;
case POINTER_TYPE:
if (as = avr_nonconst_pointer_addrspace (node), as)
- reason = "pointer";
+ reason = _("pointer");
break;
}
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index 21137bda9c6..8c134a6bc8b 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -1597,7 +1597,7 @@ cris_preferred_reload_class (rtx x ATTRIBUTE_UNUSED, reg_class_t rclass)
&& rclass != SRP_REGS
&& rclass != CC0_REGS
&& rclass != SPECIAL_REGS)
- return GENERAL_REGS;
+ return GENNONACR_REGS;
return rclass;
}
diff --git a/gcc/config/i386/i386-builtin-types.def b/gcc/config/i386/i386-builtin-types.def
index 2922324fe12..1334633c65f 100644
--- a/gcc/config/i386/i386-builtin-types.def
+++ b/gcc/config/i386/i386-builtin-types.def
@@ -1146,6 +1146,24 @@ DEF_FUNCTION_TYPE_ALIAS (V8SI_FTYPE_V8SI_SI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V8SI_FTYPE_V8SI_V4SI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V4DI_FTYPE_V4DI_INT, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V4DI_FTYPE_V4DI_V2DI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V16HI_FTYPE_V16HI_INT_V16HI_UHI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V16HI_FTYPE_V16HI_V8HI_V16HI_UHI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V16SI_FTYPE_V16SI_INT_V16SI_UHI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V16SI_FTYPE_V16SI_V4SI_V16SI_UHI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V2DI_FTYPE_V2DI_INT_V2DI_UQI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V2DI_FTYPE_V2DI_V2DI_V2DI_UQI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V32HI_FTYPE_V32HI_INT_V32HI_USI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V32HI_FTYPE_V32HI_V8HI_V32HI_USI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V4DI_FTYPE_V4DI_INT_V4DI_UQI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V4DI_FTYPE_V4DI_V2DI_V4DI_UQI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V4SI_FTYPE_V4SI_INT_V4SI_UQI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V4SI_FTYPE_V4SI_V4SI_V4SI_UQI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V8DI_FTYPE_V8DI_INT_V8DI_UQI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V8DI_FTYPE_V8DI_V2DI_V8DI_UQI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V8HI_FTYPE_V8HI_INT_V8HI_UQI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V8HI_FTYPE_V8HI_V8HI_V8HI_UQI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V8SI_FTYPE_V8SI_INT_V8SI_UQI, COUNT)
+DEF_FUNCTION_TYPE_ALIAS (V8SI_FTYPE_V8SI_V4SI_V8SI_UQI, COUNT)
DEF_FUNCTION_TYPE_ALIAS (V2DF_FTYPE_V2DF_V2DF, SWAP)
DEF_FUNCTION_TYPE_ALIAS (V4SF_FTYPE_V4SF_V4SF, SWAP)
diff --git a/gcc/config/i386/i386-builtin.def b/gcc/config/i386/i386-builtin.def
index 4ef4a01dc32..43b5b620e47 100644
--- a/gcc/config/i386/i386-builtin.def
+++ b/gcc/config/i386/i386-builtin.def
@@ -1338,22 +1338,22 @@ BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_rorv8di_mask, "__builtin_ia32_p
BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_rorvv16si_mask, "__builtin_ia32_prorvd512_mask", IX86_BUILTIN_PRORVD512, UNKNOWN, (int) V16SI_FTYPE_V16SI_V16SI_V16SI_UHI)
BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_rorvv8di_mask, "__builtin_ia32_prorvq512_mask", IX86_BUILTIN_PRORVQ512, UNKNOWN, (int) V8DI_FTYPE_V8DI_V8DI_V8DI_UQI)
BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_pshufdv3_mask, "__builtin_ia32_pshufd512_mask", IX86_BUILTIN_PSHUFD512, UNKNOWN, (int) V16SI_FTYPE_V16SI_INT_V16SI_UHI)
-BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashlv16si3_mask, "__builtin_ia32_pslld512_mask", IX86_BUILTIN_PSLLD512, UNKNOWN, (int) V16SI_FTYPE_V16SI_V4SI_V16SI_UHI)
-BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashlv16si3_mask, "__builtin_ia32_pslldi512_mask", IX86_BUILTIN_PSLLDI512, UNKNOWN, (int) V16SI_FTYPE_V16SI_INT_V16SI_UHI)
-BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashlv8di3_mask, "__builtin_ia32_psllq512_mask", IX86_BUILTIN_PSLLQ512, UNKNOWN, (int) V8DI_FTYPE_V8DI_V2DI_V8DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashlv8di3_mask, "__builtin_ia32_psllqi512_mask", IX86_BUILTIN_PSLLQI512, UNKNOWN, (int) V8DI_FTYPE_V8DI_INT_V8DI_UQI)
+BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashlv16si3_mask, "__builtin_ia32_pslld512_mask", IX86_BUILTIN_PSLLD512, UNKNOWN, (int) V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashlv16si3_mask, "__builtin_ia32_pslldi512_mask", IX86_BUILTIN_PSLLDI512, UNKNOWN, (int) V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashlv8di3_mask, "__builtin_ia32_psllq512_mask", IX86_BUILTIN_PSLLQ512, UNKNOWN, (int) V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashlv8di3_mask, "__builtin_ia32_psllqi512_mask", IX86_BUILTIN_PSLLQI512, UNKNOWN, (int) V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT)
BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_ashlvv16si_mask, "__builtin_ia32_psllv16si_mask", IX86_BUILTIN_PSLLVV16SI, UNKNOWN, (int) V16SI_FTYPE_V16SI_V16SI_V16SI_UHI)
BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_ashlvv8di_mask, "__builtin_ia32_psllv8di_mask", IX86_BUILTIN_PSLLVV8DI, UNKNOWN, (int) V8DI_FTYPE_V8DI_V8DI_V8DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashrv16si3_mask, "__builtin_ia32_psrad512_mask", IX86_BUILTIN_PSRAD512, UNKNOWN, (int) V16SI_FTYPE_V16SI_V4SI_V16SI_UHI)
-BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashrv16si3_mask, "__builtin_ia32_psradi512_mask", IX86_BUILTIN_PSRADI512, UNKNOWN, (int) V16SI_FTYPE_V16SI_INT_V16SI_UHI)
-BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashrv8di3_mask, "__builtin_ia32_psraq512_mask", IX86_BUILTIN_PSRAQ512, UNKNOWN, (int) V8DI_FTYPE_V8DI_V2DI_V8DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashrv8di3_mask, "__builtin_ia32_psraqi512_mask", IX86_BUILTIN_PSRAQI512, UNKNOWN, (int) V8DI_FTYPE_V8DI_INT_V8DI_UQI)
+BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashrv16si3_mask, "__builtin_ia32_psrad512_mask", IX86_BUILTIN_PSRAD512, UNKNOWN, (int) V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashrv16si3_mask, "__builtin_ia32_psradi512_mask", IX86_BUILTIN_PSRADI512, UNKNOWN, (int) V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashrv8di3_mask, "__builtin_ia32_psraq512_mask", IX86_BUILTIN_PSRAQ512, UNKNOWN, (int) V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_ashrv8di3_mask, "__builtin_ia32_psraqi512_mask", IX86_BUILTIN_PSRAQI512, UNKNOWN, (int) V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT)
BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_ashrvv16si_mask, "__builtin_ia32_psrav16si_mask", IX86_BUILTIN_PSRAVV16SI, UNKNOWN, (int) V16SI_FTYPE_V16SI_V16SI_V16SI_UHI)
BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_ashrvv8di_mask, "__builtin_ia32_psrav8di_mask", IX86_BUILTIN_PSRAVV8DI, UNKNOWN, (int) V8DI_FTYPE_V8DI_V8DI_V8DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_lshrv16si3_mask, "__builtin_ia32_psrld512_mask", IX86_BUILTIN_PSRLD512, UNKNOWN, (int) V16SI_FTYPE_V16SI_V4SI_V16SI_UHI)
-BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_lshrv16si3_mask, "__builtin_ia32_psrldi512_mask", IX86_BUILTIN_PSRLDI512, UNKNOWN, (int) V16SI_FTYPE_V16SI_INT_V16SI_UHI)
-BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_lshrv8di3_mask, "__builtin_ia32_psrlq512_mask", IX86_BUILTIN_PSRLQ512, UNKNOWN, (int) V8DI_FTYPE_V8DI_V2DI_V8DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_lshrv8di3_mask, "__builtin_ia32_psrlqi512_mask", IX86_BUILTIN_PSRLQI512, UNKNOWN, (int) V8DI_FTYPE_V8DI_INT_V8DI_UQI)
+BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_lshrv16si3_mask, "__builtin_ia32_psrld512_mask", IX86_BUILTIN_PSRLD512, UNKNOWN, (int) V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_lshrv16si3_mask, "__builtin_ia32_psrldi512_mask", IX86_BUILTIN_PSRLDI512, UNKNOWN, (int) V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_lshrv8di3_mask, "__builtin_ia32_psrlq512_mask", IX86_BUILTIN_PSRLQ512, UNKNOWN, (int) V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_lshrv8di3_mask, "__builtin_ia32_psrlqi512_mask", IX86_BUILTIN_PSRLQI512, UNKNOWN, (int) V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT)
BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_lshrvv16si_mask, "__builtin_ia32_psrlv16si_mask", IX86_BUILTIN_PSRLVV16SI, UNKNOWN, (int) V16SI_FTYPE_V16SI_V16SI_V16SI_UHI)
BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_avx512f_lshrvv8di_mask, "__builtin_ia32_psrlv8di_mask", IX86_BUILTIN_PSRLVV8DI, UNKNOWN, (int) V8DI_FTYPE_V8DI_V8DI_V8DI_UQI)
BDESC (OPTION_MASK_ISA_AVX512F, CODE_FOR_subv16si3_mask, "__builtin_ia32_psubd512_mask", IX86_BUILTIN_PSUBD512, UNKNOWN, (int) V16SI_FTYPE_V16SI_V16SI_V16SI_UHI)
@@ -1783,36 +1783,36 @@ BDESC (OPTION_MASK_ISA_AVX512DQ | OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx_andnotv
BDESC (OPTION_MASK_ISA_AVX512DQ | OPTION_MASK_ISA_AVX512VL, CODE_FOR_sse2_andnotv2df3_mask, "__builtin_ia32_andnpd128_mask", IX86_BUILTIN_ANDNPD128_MASK, UNKNOWN, (int) V2DF_FTYPE_V2DF_V2DF_V2DF_UQI)
BDESC (OPTION_MASK_ISA_AVX512DQ | OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx_andnotv8sf3_mask, "__builtin_ia32_andnps256_mask", IX86_BUILTIN_ANDNPS256_MASK, UNKNOWN, (int) V8SF_FTYPE_V8SF_V8SF_V8SF_UQI)
BDESC (OPTION_MASK_ISA_AVX512DQ | OPTION_MASK_ISA_AVX512VL, CODE_FOR_sse_andnotv4sf3_mask, "__builtin_ia32_andnps128_mask", IX86_BUILTIN_ANDNPS128_MASK, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_V4SF_UQI)
-BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv8hi3_mask, "__builtin_ia32_psllwi128_mask", IX86_BUILTIN_PSLLWI128_MASK, UNKNOWN, (int) V8HI_FTYPE_V8HI_INT_V8HI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv4si3_mask, "__builtin_ia32_pslldi128_mask", IX86_BUILTIN_PSLLDI128_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SI_INT_V4SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv2di3_mask, "__builtin_ia32_psllqi128_mask", IX86_BUILTIN_PSLLQI128_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DI_INT_V2DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv8hi3_mask, "__builtin_ia32_psllw128_mask", IX86_BUILTIN_PSLLW128_MASK, UNKNOWN, (int) V8HI_FTYPE_V8HI_V8HI_V8HI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv4si3_mask, "__builtin_ia32_pslld128_mask", IX86_BUILTIN_PSLLD128_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SI_V4SI_V4SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv2di3_mask, "__builtin_ia32_psllq128_mask", IX86_BUILTIN_PSLLQ128_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DI_V2DI_V2DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv16hi3_mask, "__builtin_ia32_psllwi256_mask", IX86_BUILTIN_PSLLWI256_MASK , UNKNOWN, (int) V16HI_FTYPE_V16HI_INT_V16HI_UHI)
-BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv16hi3_mask, "__builtin_ia32_psllw256_mask", IX86_BUILTIN_PSLLW256_MASK, UNKNOWN, (int) V16HI_FTYPE_V16HI_V8HI_V16HI_UHI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv8si3_mask, "__builtin_ia32_pslldi256_mask", IX86_BUILTIN_PSLLDI256_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SI_INT_V8SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv8si3_mask, "__builtin_ia32_pslld256_mask", IX86_BUILTIN_PSLLD256_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SI_V4SI_V8SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv4di3_mask, "__builtin_ia32_psllqi256_mask", IX86_BUILTIN_PSLLQI256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4DI_INT_V4DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv4di3_mask, "__builtin_ia32_psllq256_mask", IX86_BUILTIN_PSLLQ256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4DI_V2DI_V4DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv4si3_mask, "__builtin_ia32_psradi128_mask", IX86_BUILTIN_PSRADI128_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SI_INT_V4SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv4si3_mask, "__builtin_ia32_psrad128_mask", IX86_BUILTIN_PSRAD128_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SI_V4SI_V4SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv8si3_mask, "__builtin_ia32_psradi256_mask", IX86_BUILTIN_PSRADI256_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SI_INT_V8SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv8si3_mask, "__builtin_ia32_psrad256_mask", IX86_BUILTIN_PSRAD256_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SI_V4SI_V8SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv2di3_mask, "__builtin_ia32_psraqi128_mask", IX86_BUILTIN_PSRAQI128_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DI_INT_V2DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv2di3_mask, "__builtin_ia32_psraq128_mask", IX86_BUILTIN_PSRAQ128_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DI_V2DI_V2DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv4di3_mask, "__builtin_ia32_psraqi256_mask", IX86_BUILTIN_PSRAQI256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4DI_INT_V4DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv4di3_mask, "__builtin_ia32_psraq256_mask", IX86_BUILTIN_PSRAQ256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4DI_V2DI_V4DI_UQI)
+BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv8hi3_mask, "__builtin_ia32_psllwi128_mask", IX86_BUILTIN_PSLLWI128_MASK, UNKNOWN, (int) V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv4si3_mask, "__builtin_ia32_pslldi128_mask", IX86_BUILTIN_PSLLDI128_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv2di3_mask, "__builtin_ia32_psllqi128_mask", IX86_BUILTIN_PSLLQI128_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv8hi3_mask, "__builtin_ia32_psllw128_mask", IX86_BUILTIN_PSLLW128_MASK, UNKNOWN, (int) V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv4si3_mask, "__builtin_ia32_pslld128_mask", IX86_BUILTIN_PSLLD128_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv2di3_mask, "__builtin_ia32_psllq128_mask", IX86_BUILTIN_PSLLQ128_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv16hi3_mask, "__builtin_ia32_psllwi256_mask", IX86_BUILTIN_PSLLWI256_MASK , UNKNOWN, (int) V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv16hi3_mask, "__builtin_ia32_psllw256_mask", IX86_BUILTIN_PSLLW256_MASK, UNKNOWN, (int) V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv8si3_mask, "__builtin_ia32_pslldi256_mask", IX86_BUILTIN_PSLLDI256_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv8si3_mask, "__builtin_ia32_pslld256_mask", IX86_BUILTIN_PSLLD256_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv4di3_mask, "__builtin_ia32_psllqi256_mask", IX86_BUILTIN_PSLLQI256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashlv4di3_mask, "__builtin_ia32_psllq256_mask", IX86_BUILTIN_PSLLQ256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv4si3_mask, "__builtin_ia32_psradi128_mask", IX86_BUILTIN_PSRADI128_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv4si3_mask, "__builtin_ia32_psrad128_mask", IX86_BUILTIN_PSRAD128_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv8si3_mask, "__builtin_ia32_psradi256_mask", IX86_BUILTIN_PSRADI256_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv8si3_mask, "__builtin_ia32_psrad256_mask", IX86_BUILTIN_PSRAD256_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv2di3_mask, "__builtin_ia32_psraqi128_mask", IX86_BUILTIN_PSRAQI128_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv2di3_mask, "__builtin_ia32_psraq128_mask", IX86_BUILTIN_PSRAQ128_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv4di3_mask, "__builtin_ia32_psraqi256_mask", IX86_BUILTIN_PSRAQI256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv4di3_mask, "__builtin_ia32_psraq256_mask", IX86_BUILTIN_PSRAQ256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT)
BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_andv8si3_mask, "__builtin_ia32_pandd256_mask", IX86_BUILTIN_PANDD256, UNKNOWN, (int) V8SI_FTYPE_V8SI_V8SI_V8SI_UQI)
BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_andv4si3_mask, "__builtin_ia32_pandd128_mask", IX86_BUILTIN_PANDD128, UNKNOWN, (int) V4SI_FTYPE_V4SI_V4SI_V4SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv4si3_mask, "__builtin_ia32_psrldi128_mask", IX86_BUILTIN_PSRLDI128_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SI_INT_V4SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv4si3_mask, "__builtin_ia32_psrld128_mask", IX86_BUILTIN_PSRLD128_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SI_V4SI_V4SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv8si3_mask, "__builtin_ia32_psrldi256_mask", IX86_BUILTIN_PSRLDI256_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SI_INT_V8SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv8si3_mask, "__builtin_ia32_psrld256_mask", IX86_BUILTIN_PSRLD256_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SI_V4SI_V8SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv2di3_mask, "__builtin_ia32_psrlqi128_mask", IX86_BUILTIN_PSRLQI128_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DI_INT_V2DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv2di3_mask, "__builtin_ia32_psrlq128_mask", IX86_BUILTIN_PSRLQ128_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DI_V2DI_V2DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv4di3_mask, "__builtin_ia32_psrlqi256_mask", IX86_BUILTIN_PSRLQI256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4DI_INT_V4DI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv4di3_mask, "__builtin_ia32_psrlq256_mask", IX86_BUILTIN_PSRLQ256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4DI_V2DI_V4DI_UQI)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv4si3_mask, "__builtin_ia32_psrldi128_mask", IX86_BUILTIN_PSRLDI128_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv4si3_mask, "__builtin_ia32_psrld128_mask", IX86_BUILTIN_PSRLD128_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv8si3_mask, "__builtin_ia32_psrldi256_mask", IX86_BUILTIN_PSRLDI256_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv8si3_mask, "__builtin_ia32_psrld256_mask", IX86_BUILTIN_PSRLD256_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv2di3_mask, "__builtin_ia32_psrlqi128_mask", IX86_BUILTIN_PSRLQI128_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv2di3_mask, "__builtin_ia32_psrlq128_mask", IX86_BUILTIN_PSRLQ128_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv4di3_mask, "__builtin_ia32_psrlqi256_mask", IX86_BUILTIN_PSRLQI256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv4di3_mask, "__builtin_ia32_psrlq256_mask", IX86_BUILTIN_PSRLQ256_MASK, UNKNOWN, (int) V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT)
BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_andv4di3_mask, "__builtin_ia32_pandq256_mask", IX86_BUILTIN_PANDQ256, UNKNOWN, (int) V4DI_FTYPE_V4DI_V4DI_V4DI_UQI)
BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_andv2di3_mask, "__builtin_ia32_pandq128_mask", IX86_BUILTIN_PANDQ128, UNKNOWN, (int) V2DI_FTYPE_V2DI_V2DI_V2DI_UQI)
BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx2_andnotv8si3_mask, "__builtin_ia32_pandnd256_mask", IX86_BUILTIN_PANDND256, UNKNOWN, (int) V8SI_FTYPE_V8SI_V8SI_V8SI_UQI)
@@ -1983,14 +1983,14 @@ BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx2_lshrvv4di_mask, "__builtin_ia32_p
BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx2_lshrvv2di_mask, "__builtin_ia32_psrlv2di_mask", IX86_BUILTIN_PSRLVV2DI_MASK, UNKNOWN, (int) V2DI_FTYPE_V2DI_V2DI_V2DI_UQI)
BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx2_lshrvv8si_mask, "__builtin_ia32_psrlv8si_mask", IX86_BUILTIN_PSRLVV8SI_MASK, UNKNOWN, (int) V8SI_FTYPE_V8SI_V8SI_V8SI_UQI)
BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx2_lshrvv4si_mask, "__builtin_ia32_psrlv4si_mask", IX86_BUILTIN_PSRLVV4SI_MASK, UNKNOWN, (int) V4SI_FTYPE_V4SI_V4SI_V4SI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv16hi3_mask, "__builtin_ia32_psrawi256_mask", IX86_BUILTIN_PSRAWI256_MASK, UNKNOWN, (int) V16HI_FTYPE_V16HI_INT_V16HI_UHI)
-BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv16hi3_mask, "__builtin_ia32_psraw256_mask", IX86_BUILTIN_PSRAW256_MASK, UNKNOWN, (int) V16HI_FTYPE_V16HI_V8HI_V16HI_UHI)
-BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv8hi3_mask, "__builtin_ia32_psrawi128_mask", IX86_BUILTIN_PSRAWI128_MASK, UNKNOWN, (int) V8HI_FTYPE_V8HI_INT_V8HI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv8hi3_mask, "__builtin_ia32_psraw128_mask", IX86_BUILTIN_PSRAW128_MASK, UNKNOWN, (int) V8HI_FTYPE_V8HI_V8HI_V8HI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv16hi3_mask, "__builtin_ia32_psrlwi256_mask", IX86_BUILTIN_PSRLWI256_MASK, UNKNOWN, (int) V16HI_FTYPE_V16HI_INT_V16HI_UHI)
-BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv16hi3_mask, "__builtin_ia32_psrlw256_mask", IX86_BUILTIN_PSRLW256_MASK, UNKNOWN, (int) V16HI_FTYPE_V16HI_V8HI_V16HI_UHI)
-BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv8hi3_mask, "__builtin_ia32_psrlwi128_mask", IX86_BUILTIN_PSRLWI128_MASK, UNKNOWN, (int) V8HI_FTYPE_V8HI_INT_V8HI_UQI)
-BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv8hi3_mask, "__builtin_ia32_psrlw128_mask", IX86_BUILTIN_PSRLW128_MASK, UNKNOWN, (int) V8HI_FTYPE_V8HI_V8HI_V8HI_UQI)
+BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv16hi3_mask, "__builtin_ia32_psrawi256_mask", IX86_BUILTIN_PSRAWI256_MASK, UNKNOWN, (int) V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv16hi3_mask, "__builtin_ia32_psraw256_mask", IX86_BUILTIN_PSRAW256_MASK, UNKNOWN, (int) V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv8hi3_mask, "__builtin_ia32_psrawi128_mask", IX86_BUILTIN_PSRAWI128_MASK, UNKNOWN, (int) V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_ashrv8hi3_mask, "__builtin_ia32_psraw128_mask", IX86_BUILTIN_PSRAW128_MASK, UNKNOWN, (int) V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv16hi3_mask, "__builtin_ia32_psrlwi256_mask", IX86_BUILTIN_PSRLWI256_MASK, UNKNOWN, (int) V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv16hi3_mask, "__builtin_ia32_psrlw256_mask", IX86_BUILTIN_PSRLW256_MASK, UNKNOWN, (int) V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv8hi3_mask, "__builtin_ia32_psrlwi128_mask", IX86_BUILTIN_PSRLWI128_MASK, UNKNOWN, (int) V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VL, CODE_FOR_lshrv8hi3_mask, "__builtin_ia32_psrlw128_mask", IX86_BUILTIN_PSRLW128_MASK, UNKNOWN, (int) V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT)
BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx512vl_rorvv8si_mask, "__builtin_ia32_prorvd256_mask", IX86_BUILTIN_PRORVD256, UNKNOWN, (int) V8SI_FTYPE_V8SI_V8SI_V8SI_UQI)
BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx512vl_rolvv8si_mask, "__builtin_ia32_prolvd256_mask", IX86_BUILTIN_PROLVD256, UNKNOWN, (int) V8SI_FTYPE_V8SI_V8SI_V8SI_UQI)
BDESC (OPTION_MASK_ISA_AVX512VL, CODE_FOR_avx512vl_rorv8si_mask, "__builtin_ia32_prord256_mask", IX86_BUILTIN_PRORD256, UNKNOWN, (int) V8SI_FTYPE_V8SI_INT_V8SI_UQI)
@@ -2307,8 +2307,8 @@ BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_avx512bw_umulhrswv32hi3_mask, "__built
BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_umulv32hi3_highpart_mask, "__builtin_ia32_pmulhuw512_mask" , IX86_BUILTIN_PMULHUW512_MASK, UNKNOWN, (int) V32HI_FTYPE_V32HI_V32HI_V32HI_USI)
BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_smulv32hi3_highpart_mask, "__builtin_ia32_pmulhw512_mask" , IX86_BUILTIN_PMULHW512_MASK, UNKNOWN, (int) V32HI_FTYPE_V32HI_V32HI_V32HI_USI)
BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_mulv32hi3_mask, "__builtin_ia32_pmullw512_mask", IX86_BUILTIN_PMULLW512_MASK, UNKNOWN, (int) V32HI_FTYPE_V32HI_V32HI_V32HI_USI)
-BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_ashlv32hi3_mask, "__builtin_ia32_psllwi512_mask", IX86_BUILTIN_PSLLWI512_MASK, UNKNOWN, (int) V32HI_FTYPE_V32HI_INT_V32HI_USI)
-BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_ashlv32hi3_mask, "__builtin_ia32_psllw512_mask", IX86_BUILTIN_PSLLW512_MASK, UNKNOWN, (int) V32HI_FTYPE_V32HI_V8HI_V32HI_USI)
+BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_ashlv32hi3_mask, "__builtin_ia32_psllwi512_mask", IX86_BUILTIN_PSLLWI512_MASK, UNKNOWN, (int) V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_ashlv32hi3_mask, "__builtin_ia32_psllw512_mask", IX86_BUILTIN_PSLLW512_MASK, UNKNOWN, (int) V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT)
BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_avx512bw_packsswb_mask, "__builtin_ia32_packsswb512_mask", IX86_BUILTIN_PACKSSWB512, UNKNOWN, (int) V64QI_FTYPE_V32HI_V32HI_V64QI_UDI)
BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_avx512bw_packuswb_mask, "__builtin_ia32_packuswb512_mask", IX86_BUILTIN_PACKUSWB512, UNKNOWN, (int) V64QI_FTYPE_V32HI_V32HI_V64QI_UDI)
BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_avx512bw_ashrvv32hi_mask, "__builtin_ia32_psrav32hi_mask", IX86_BUILTIN_PSRAVV32HI, UNKNOWN, (int) V32HI_FTYPE_V32HI_V32HI_V32HI_USI)
@@ -2322,10 +2322,10 @@ BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_avx512bw_interleave_lowv32hi_mask, "__
BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_avx512bw_pshufbv64qi3_mask, "__builtin_ia32_pshufb512_mask", IX86_BUILTIN_PSHUFB512, UNKNOWN, (int) V64QI_FTYPE_V64QI_V64QI_V64QI_UDI)
BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_avx512bw_pshufhwv32hi_mask, "__builtin_ia32_pshufhw512_mask", IX86_BUILTIN_PSHUFHW512, UNKNOWN, (int) V32HI_FTYPE_V32HI_INT_V32HI_USI)
BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_avx512bw_pshuflwv32hi_mask, "__builtin_ia32_pshuflw512_mask", IX86_BUILTIN_PSHUFLW512, UNKNOWN, (int) V32HI_FTYPE_V32HI_INT_V32HI_USI)
-BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_ashrv32hi3_mask, "__builtin_ia32_psrawi512_mask", IX86_BUILTIN_PSRAWI512, UNKNOWN, (int) V32HI_FTYPE_V32HI_INT_V32HI_USI)
-BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_ashrv32hi3_mask, "__builtin_ia32_psraw512_mask", IX86_BUILTIN_PSRAW512, UNKNOWN, (int) V32HI_FTYPE_V32HI_V8HI_V32HI_USI)
-BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_lshrv32hi3_mask, "__builtin_ia32_psrlwi512_mask", IX86_BUILTIN_PSRLWI512, UNKNOWN, (int) V32HI_FTYPE_V32HI_INT_V32HI_USI)
-BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_lshrv32hi3_mask, "__builtin_ia32_psrlw512_mask", IX86_BUILTIN_PSRLW512, UNKNOWN, (int) V32HI_FTYPE_V32HI_V8HI_V32HI_USI)
+BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_ashrv32hi3_mask, "__builtin_ia32_psrawi512_mask", IX86_BUILTIN_PSRAWI512, UNKNOWN, (int) V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_ashrv32hi3_mask, "__builtin_ia32_psraw512_mask", IX86_BUILTIN_PSRAW512, UNKNOWN, (int) V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_lshrv32hi3_mask, "__builtin_ia32_psrlwi512_mask", IX86_BUILTIN_PSRLWI512, UNKNOWN, (int) V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT)
+BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_lshrv32hi3_mask, "__builtin_ia32_psrlw512_mask", IX86_BUILTIN_PSRLW512, UNKNOWN, (int) V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT)
BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_avx512bw_cvtb2maskv64qi, "__builtin_ia32_cvtb2mask512", IX86_BUILTIN_CVTB2MASK512, UNKNOWN, (int) UDI_FTYPE_V64QI)
BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_avx512bw_cvtw2maskv32hi, "__builtin_ia32_cvtw2mask512", IX86_BUILTIN_CVTW2MASK512, UNKNOWN, (int) USI_FTYPE_V32HI)
BDESC (OPTION_MASK_ISA_AVX512BW, CODE_FOR_avx512bw_cvtmask2bv64qi, "__builtin_ia32_cvtmask2b512", IX86_BUILTIN_CVTMASK2B512, UNKNOWN, (int) V64QI_FTYPE_UDI)
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 5b27b8d1f6f..0b2fa1b1f9f 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -3407,7 +3407,7 @@ dimode_scalar_chain::compute_convert_gain ()
else if (GET_CODE (src) == ASHIFT
|| GET_CODE (src) == LSHIFTRT)
{
- gain += ix86_cost->add;
+ gain += ix86_cost->shift_const;
if (CONST_INT_P (XEXP (src, 0)))
gain -= vector_const_cost (XEXP (src, 0));
if (CONST_INT_P (XEXP (src, 1))
@@ -34857,7 +34857,7 @@ ix86_expand_args_builtin (const struct builtin_description *d,
rtx op;
machine_mode mode;
} args[6];
- bool last_arg_count = false;
+ bool second_arg_count = false;
enum insn_code icode = d->icode;
const struct insn_data_d *insn_p = &insn_data[icode];
machine_mode tmode = insn_p->operand[0].mode;
@@ -35093,7 +35093,28 @@ ix86_expand_args_builtin (const struct builtin_description *d,
case V1DI_FTYPE_V1DI_V1DI_COUNT:
case V1DI_FTYPE_V1DI_SI_COUNT:
nargs = 2;
- last_arg_count = true;
+ second_arg_count = true;
+ break;
+ case V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT:
+ case V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT:
+ case V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT:
+ case V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT:
+ case V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT:
+ case V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT:
+ case V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT:
+ case V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT:
+ case V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT:
+ case V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT:
+ case V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT:
+ case V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT:
+ case V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT:
+ case V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT:
+ case V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT:
+ case V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT:
+ case V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT:
+ case V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT:
+ nargs = 4;
+ second_arg_count = true;
break;
case UINT64_FTYPE_UINT64_UINT64:
case UINT_FTYPE_UINT_UINT:
@@ -35572,7 +35593,7 @@ ix86_expand_args_builtin (const struct builtin_description *d,
machine_mode mode = insn_p->operand[i + 1].mode;
bool match = insn_p->operand[i + 1].predicate (op, mode);
- if (last_arg_count && (i + 1) == nargs)
+ if (second_arg_count && i == 1)
{
/* SIMD shift insns take either an 8-bit immediate or
register as count. But builtin functions take int as
diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md
index 7acf00d0451..28e0a444ba9 100644
--- a/gcc/config/mips/mips.md
+++ b/gcc/config/mips/mips.md
@@ -6585,7 +6585,6 @@
(use (match_operand 0 "pmode_register_operand" ""))]
""
{
- operands[0] = gen_rtx_REG (Pmode, RETURN_ADDR_REGNUM);
return mips_output_jump (operands, 0, -1, false);
}
[(set_attr "type" "jump")
diff --git a/gcc/config/rs6000/rs6000-cpus.def b/gcc/config/rs6000/rs6000-cpus.def
index 8ce91473470..cd5c70688d8 100644
--- a/gcc/config/rs6000/rs6000-cpus.def
+++ b/gcc/config/rs6000/rs6000-cpus.def
@@ -84,6 +84,30 @@
| OPTION_MASK_UPPER_REGS_SF \
| OPTION_MASK_VSX_SMALL_INTEGER)
+/* Flags that need to be turned off if -mno-power9-vector. */
+#define OTHER_P9_VECTOR_MASKS (OPTION_MASK_FLOAT128_HW \
+ | OPTION_MASK_P9_DFORM_SCALAR \
+ | OPTION_MASK_P9_DFORM_VECTOR \
+ | OPTION_MASK_P9_MINMAX)
+
+/* Flags that need to be turned off if -mno-power8-vector. */
+#define OTHER_P8_VECTOR_MASKS (OTHER_P9_VECTOR_MASKS \
+ | OPTION_MASK_P9_VECTOR \
+ | OPTION_MASK_DIRECT_MOVE \
+ | OPTION_MASK_CRYPTO \
+ | OPTION_MASK_UPPER_REGS_SF) \
+
+/* Flags that need to be turned off if -mno-vsx. */
+#define OTHER_VSX_VECTOR_MASKS (OTHER_P8_VECTOR_MASKS \
+ | OPTION_MASK_EFFICIENT_UNALIGNED_VSX \
+ | OPTION_MASK_FLOAT128_KEYWORD \
+ | OPTION_MASK_FLOAT128_TYPE \
+ | OPTION_MASK_P8_VECTOR \
+ | OPTION_MASK_UPPER_REGS_DI \
+ | OPTION_MASK_UPPER_REGS_DF \
+ | OPTION_MASK_VSX_SMALL_INTEGER \
+ | OPTION_MASK_VSX_TIMODE)
+
#define POWERPC_7400_MASK (OPTION_MASK_PPC_GFXOPT | OPTION_MASK_ALTIVEC)
/* Deal with ports that do not have -mstrict-align. */
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 7822a9d4566..8f68d84a8fe 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -1335,6 +1335,7 @@ static void rs6000_print_isa_options (FILE *, int, const char *,
HOST_WIDE_INT);
static void rs6000_print_builtin_options (FILE *, int, const char *,
HOST_WIDE_INT);
+static HOST_WIDE_INT rs6000_disable_incompatible_switches (void);
static enum rs6000_reg_type register_to_reg_type (rtx, bool *);
static bool rs6000_secondary_reload_move (enum rs6000_reg_type,
@@ -3902,6 +3903,7 @@ rs6000_option_override_internal (bool global_init_p)
const char *implicit_cpu = OPTION_TARGET_CPU_DEFAULT;
HOST_WIDE_INT set_masks;
+ HOST_WIDE_INT ignore_masks;
int cpu_index;
int tune_index;
struct cl_target_option *main_target_opt
@@ -3967,7 +3969,8 @@ rs6000_option_override_internal (bool global_init_p)
#endif
#ifdef OS_MISSING_ALTIVEC
if (OS_MISSING_ALTIVEC)
- set_masks &= ~(OPTION_MASK_ALTIVEC | OPTION_MASK_VSX);
+ set_masks &= ~(OPTION_MASK_ALTIVEC | OPTION_MASK_VSX
+ | OTHER_VSX_VECTOR_MASKS);
#endif
/* Don't override by the processor default if given explicitly. */
@@ -4270,27 +4273,62 @@ rs6000_option_override_internal (bool global_init_p)
if (TARGET_DEBUG_REG || TARGET_DEBUG_TARGET)
rs6000_print_isa_options (stderr, 0, "before defaults", rs6000_isa_flags);
+ /* Handle explicit -mno-{altivec,vsx,power8-vector,power9-vector} and turn
+ off all of the options that depend on those flags. */
+ ignore_masks = rs6000_disable_incompatible_switches ();
+
/* For the newer switches (vsx, dfp, etc.) set some of the older options,
unless the user explicitly used the -mno-<option> to disable the code. */
if (TARGET_P9_VECTOR || TARGET_MODULO || TARGET_P9_DFORM_SCALAR
- || TARGET_P9_DFORM_VECTOR || TARGET_P9_DFORM_BOTH > 0 || TARGET_P9_MINMAX)
- rs6000_isa_flags |= (ISA_3_0_MASKS_SERVER & ~rs6000_isa_flags_explicit);
+ || TARGET_P9_DFORM_VECTOR || TARGET_P9_DFORM_BOTH > 0)
+ rs6000_isa_flags |= (ISA_3_0_MASKS_SERVER & ~ignore_masks);
+ else if (TARGET_P9_MINMAX)
+ {
+ if (have_cpu)
+ {
+ if (cpu_index == PROCESSOR_POWER9)
+ {
+ /* legacy behavior: allow -mcpu-power9 with certain
+ capabilities explicitly disabled. */
+ rs6000_isa_flags |= (ISA_3_0_MASKS_SERVER & ~ignore_masks);
+ /* However, reject this automatic fix if certain
+ capabilities required for TARGET_P9_MINMAX support
+ have been explicitly disabled. */
+ if (((OPTION_MASK_VSX | OPTION_MASK_UPPER_REGS_SF
+ | OPTION_MASK_UPPER_REGS_DF) & rs6000_isa_flags)
+ != (OPTION_MASK_VSX | OPTION_MASK_UPPER_REGS_SF
+ | OPTION_MASK_UPPER_REGS_DF))
+ error ("-mpower9-minmax incompatible with explicitly disabled options");
+ }
+ else
+ error ("Power9 target option is incompatible with -mcpu=<xxx> for "
+ "<xxx> less than power9");
+ }
+ else if ((ISA_3_0_MASKS_SERVER & rs6000_isa_flags_explicit)
+ != (ISA_3_0_MASKS_SERVER & rs6000_isa_flags
+ & rs6000_isa_flags_explicit))
+ /* Enforce that none of the ISA_3_0_MASKS_SERVER flags
+ were explicitly cleared. */
+ error ("-mpower9-minmax incompatible with explicitly disabled options");
+ else
+ rs6000_isa_flags |= ISA_3_0_MASKS_SERVER;
+ }
else if (TARGET_P8_VECTOR || TARGET_DIRECT_MOVE || TARGET_CRYPTO)
- rs6000_isa_flags |= (ISA_2_7_MASKS_SERVER & ~rs6000_isa_flags_explicit);
+ rs6000_isa_flags |= (ISA_2_7_MASKS_SERVER & ~ignore_masks);
else if (TARGET_VSX)
- rs6000_isa_flags |= (ISA_2_6_MASKS_SERVER & ~rs6000_isa_flags_explicit);
+ rs6000_isa_flags |= (ISA_2_6_MASKS_SERVER & ~ignore_masks);
else if (TARGET_POPCNTD)
- rs6000_isa_flags |= (ISA_2_6_MASKS_EMBEDDED & ~rs6000_isa_flags_explicit);
+ rs6000_isa_flags |= (ISA_2_6_MASKS_EMBEDDED & ~ignore_masks);
else if (TARGET_DFP)
- rs6000_isa_flags |= (ISA_2_5_MASKS_SERVER & ~rs6000_isa_flags_explicit);
+ rs6000_isa_flags |= (ISA_2_5_MASKS_SERVER & ~ignore_masks);
else if (TARGET_CMPB)
- rs6000_isa_flags |= (ISA_2_5_MASKS_EMBEDDED & ~rs6000_isa_flags_explicit);
+ rs6000_isa_flags |= (ISA_2_5_MASKS_EMBEDDED & ~ignore_masks);
else if (TARGET_FPRND)
- rs6000_isa_flags |= (ISA_2_4_MASKS & ~rs6000_isa_flags_explicit);
+ rs6000_isa_flags |= (ISA_2_4_MASKS & ~ignore_masks);
else if (TARGET_POPCNTB)
- rs6000_isa_flags |= (ISA_2_2_MASKS & ~rs6000_isa_flags_explicit);
+ rs6000_isa_flags |= (ISA_2_2_MASKS & ~ignore_masks);
else if (TARGET_ALTIVEC)
- rs6000_isa_flags |= (OPTION_MASK_PPC_GFXOPT & ~rs6000_isa_flags_explicit);
+ rs6000_isa_flags |= (OPTION_MASK_PPC_GFXOPT & ~ignore_masks);
if (TARGET_CRYPTO && !TARGET_ALTIVEC)
{
@@ -7562,12 +7600,8 @@ rs6000_expand_vector_extract (rtx target, rtx vec, rtx elt)
return;
case V4SFmode:
- if (TARGET_UPPER_REGS_SF)
- {
- emit_insn (gen_vsx_extract_v4sf_var (target, vec, elt));
- return;
- }
- break;
+ emit_insn (gen_vsx_extract_v4sf_var (target, vec, elt));
+ return;
case V4SImode:
emit_insn (gen_vsx_extract_v4si_var (target, vec, elt));
@@ -14550,7 +14584,7 @@ rs6000_expand_unop_builtin (enum insn_code icode, tree exp, rtx target)
|| INTVAL (op0) < -16)
{
error ("argument 1 must be a 5-bit signed literal");
- return const0_rtx;
+ return CONST0_RTX (tmode);
}
}
@@ -14653,7 +14687,7 @@ rs6000_expand_binop_builtin (enum insn_code icode, tree exp, rtx target)
|| TREE_INT_CST_LOW (arg1) & ~0x1f)
{
error ("argument 2 must be a 5-bit unsigned literal");
- return const0_rtx;
+ return CONST0_RTX (tmode);
}
}
else if (icode == CODE_FOR_dfptstsfi_eq_dd
@@ -15579,13 +15613,18 @@ rs6000_expand_ternop_builtin (enum insn_code icode, tree exp, rtx target)
|| TREE_INT_CST_LOW (arg2) & ~0xf)
{
error ("argument 3 must be a 4-bit unsigned literal");
- return const0_rtx;
+ return CONST0_RTX (tmode);
}
}
else if (icode == CODE_FOR_vsx_xxpermdi_v2df
|| icode == CODE_FOR_vsx_xxpermdi_v2di
|| icode == CODE_FOR_vsx_xxpermdi_v2df_be
|| icode == CODE_FOR_vsx_xxpermdi_v2di_be
+ || icode == CODE_FOR_vsx_xxpermdi_v1ti
+ || icode == CODE_FOR_vsx_xxpermdi_v4sf
+ || icode == CODE_FOR_vsx_xxpermdi_v4si
+ || icode == CODE_FOR_vsx_xxpermdi_v8hi
+ || icode == CODE_FOR_vsx_xxpermdi_v16qi
|| icode == CODE_FOR_vsx_xxsldwi_v16qi
|| icode == CODE_FOR_vsx_xxsldwi_v8hi
|| icode == CODE_FOR_vsx_xxsldwi_v4si
@@ -15599,7 +15638,7 @@ rs6000_expand_ternop_builtin (enum insn_code icode, tree exp, rtx target)
|| TREE_INT_CST_LOW (arg2) & ~0x3)
{
error ("argument 3 must be a 2-bit unsigned literal");
- return const0_rtx;
+ return CONST0_RTX (tmode);
}
}
else if (icode == CODE_FOR_vsx_set_v2df
@@ -15619,7 +15658,7 @@ rs6000_expand_ternop_builtin (enum insn_code icode, tree exp, rtx target)
|| TREE_INT_CST_LOW (arg2) & ~0x1)
{
error ("argument 3 must be a 1-bit unsigned literal");
- return const0_rtx;
+ return CONST0_RTX (tmode);
}
}
else if (icode == CODE_FOR_dfp_ddedpd_dd
@@ -15631,7 +15670,7 @@ rs6000_expand_ternop_builtin (enum insn_code icode, tree exp, rtx target)
|| TREE_INT_CST_LOW (arg2) & ~0x3)
{
error ("argument 1 must be 0 or 2");
- return const0_rtx;
+ return CONST0_RTX (tmode);
}
}
else if (icode == CODE_FOR_dfp_denbcd_dd
@@ -15643,7 +15682,7 @@ rs6000_expand_ternop_builtin (enum insn_code icode, tree exp, rtx target)
|| TREE_INT_CST_LOW (arg0) & ~0x1)
{
error ("argument 1 must be a 1-bit unsigned literal");
- return const0_rtx;
+ return CONST0_RTX (tmode);
}
}
else if (icode == CODE_FOR_dfp_dscli_dd
@@ -15657,7 +15696,7 @@ rs6000_expand_ternop_builtin (enum insn_code icode, tree exp, rtx target)
|| TREE_INT_CST_LOW (arg1) & ~0x3f)
{
error ("argument 2 must be a 6-bit unsigned literal");
- return const0_rtx;
+ return CONST0_RTX (tmode);
}
}
else if (icode == CODE_FOR_crypto_vshasigmaw
@@ -15669,14 +15708,14 @@ rs6000_expand_ternop_builtin (enum insn_code icode, tree exp, rtx target)
if (TREE_CODE (arg1) != INTEGER_CST || wi::geu_p (arg1, 2))
{
error ("argument 2 must be 0 or 1");
- return const0_rtx;
+ return CONST0_RTX (tmode);
}
STRIP_NOPS (arg2);
- if (TREE_CODE (arg2) != INTEGER_CST || wi::geu_p (arg1, 16))
+ if (TREE_CODE (arg2) != INTEGER_CST || wi::geu_p (arg2, 16))
{
error ("argument 3 must be in the range 0..15");
- return const0_rtx;
+ return CONST0_RTX (tmode);
}
}
@@ -39684,6 +39723,81 @@ rs6000_print_builtin_options (FILE *file, int indent, const char *string,
ARRAY_SIZE (rs6000_builtin_mask_names));
}
+/* If the user used -mno-vsx, we need turn off all of the implicit ISA 2.06,
+ 2.07, and 3.0 options that relate to the vector unit (-mdirect-move,
+ -mvsx-timode, -mupper-regs-df).
+
+ If the user used -mno-power8-vector, we need to turn off all of the implicit
+ ISA 2.07 and 3.0 options that relate to the vector unit.
+
+ If the user used -mno-power9-vector, we need to turn off all of the implicit
+ ISA 3.0 options that relate to the vector unit.
+
+ This function does not handle explicit options such as the user specifying
+ -mdirect-move. These are handled in rs6000_option_override_internal, and
+ the appropriate error is given if needed.
+
+ We return a mask of all of the implicit options that should not be enabled
+ by default. */
+
+static HOST_WIDE_INT
+rs6000_disable_incompatible_switches (void)
+{
+ HOST_WIDE_INT ignore_masks = rs6000_isa_flags_explicit;
+ size_t i, j;
+
+ static const struct {
+ const HOST_WIDE_INT no_flag; /* flag explicitly turned off. */
+ const HOST_WIDE_INT dep_flags; /* flags that depend on this option. */
+ const char *const name; /* name of the switch. */
+ } flags[] = {
+ { OPTION_MASK_P9_VECTOR, OTHER_P9_VECTOR_MASKS, "power9-vector" },
+ { OPTION_MASK_P8_VECTOR, OTHER_P8_VECTOR_MASKS, "power8-vector" },
+ { OPTION_MASK_VSX, OTHER_VSX_VECTOR_MASKS, "vsx" },
+ };
+
+ for (i = 0; i < ARRAY_SIZE (flags); i++)
+ {
+ HOST_WIDE_INT no_flag = flags[i].no_flag;
+
+ if ((rs6000_isa_flags & no_flag) == 0
+ && (rs6000_isa_flags_explicit & no_flag) != 0)
+ {
+ HOST_WIDE_INT dep_flags = flags[i].dep_flags;
+ HOST_WIDE_INT set_flags = (rs6000_isa_flags_explicit
+ & rs6000_isa_flags
+ & dep_flags);
+
+ if (set_flags)
+ {
+ for (j = 0; j < ARRAY_SIZE (rs6000_opt_masks); j++)
+ if ((set_flags & rs6000_opt_masks[j].mask) != 0)
+ {
+ set_flags &= ~rs6000_opt_masks[j].mask;
+ error ("-mno-%s turns off -m%s",
+ flags[i].name,
+ rs6000_opt_masks[j].name);
+ }
+
+ gcc_assert (!set_flags);
+ }
+
+ rs6000_isa_flags &= ~dep_flags;
+ ignore_masks |= no_flag | dep_flags;
+ }
+ }
+
+ if (!TARGET_P9_VECTOR
+ && (rs6000_isa_flags_explicit & OPTION_MASK_P9_VECTOR) != 0
+ && TARGET_P9_DFORM_BOTH > 0)
+ {
+ error ("-mno-power9-vector turns off -mpower9-dform");
+ TARGET_P9_DFORM_BOTH = 0;
+ }
+
+ return ignore_masks;
+}
+
/* Hook to determine if one function can safely inline another. */
diff --git a/gcc/config/rs6000/sync.md b/gcc/config/rs6000/sync.md
index 160713ac0cf..2a1828e3e7a 100644
--- a/gcc/config/rs6000/sync.md
+++ b/gcc/config/rs6000/sync.md
@@ -157,8 +157,7 @@
rtx op1 = operands[1];
rtx pti_reg = gen_reg_rtx (PTImode);
- // Can't have indexed address for 'lq'
- if (indexed_address (XEXP (op1, 0), TImode))
+ if (!quad_address_p (XEXP (op1, 0), TImode, false))
{
rtx old_addr = XEXP (op1, 0);
rtx new_addr = force_reg (Pmode, old_addr);
@@ -231,8 +230,7 @@
rtx op1 = operands[1];
rtx pti_reg = gen_reg_rtx (PTImode);
- // Can't have indexed address for 'stq'
- if (indexed_address (XEXP (op0, 0), TImode))
+ if (!quad_address_p (XEXP (op0, 0), TImode, false))
{
rtx old_addr = XEXP (op0, 0);
rtx new_addr = force_reg (Pmode, old_addr);
diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index bfc15270bb0..28fc5b5f3cf 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -2419,8 +2419,7 @@
UNSPEC_VSX_EXTRACT))
(clobber (match_scratch:DI 3 "=r,&b,&b"))
(clobber (match_scratch:V2DI 4 "=&v,X,X"))]
- "VECTOR_MEM_VSX_P (V4SFmode) && TARGET_DIRECT_MOVE_64BIT
- && TARGET_UPPER_REGS_SF"
+ "VECTOR_MEM_VSX_P (V4SFmode) && TARGET_DIRECT_MOVE_64BIT"
"#"
"&& reload_completed"
[(const_int 0)]
diff --git a/gcc/config/sparc/predicates.md b/gcc/config/sparc/predicates.md
index 118ed916ad9..951933efb39 100644
--- a/gcc/config/sparc/predicates.md
+++ b/gcc/config/sparc/predicates.md
@@ -373,6 +373,7 @@
if (TARGET_ARCH32 && mode == DImode && GET_CODE (op) == CONST_INT)
return true;
+ /* Allow FP constants to be built in integer registers. */
if (mclass == MODE_FLOAT && GET_CODE (op) == CONST_DOUBLE)
return true;
@@ -388,7 +389,14 @@
/* Check for valid MEM forms. */
if (GET_CODE (op) == MEM)
- return memory_address_p (mode, XEXP (op, 0));
+ {
+ /* Except when LRA is precisely working hard to make them valid
+ and relying entirely on the constraints. */
+ if (lra_in_progress)
+ return true;
+
+ return memory_address_p (mode, XEXP (op, 0));
+ }
return false;
})
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 16ca444518f..8277496964a 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -1911,9 +1911,8 @@ sparc_expand_move (machine_mode mode, rtx *operands)
/* We are able to build any SF constant in integer registers
with at most 2 instructions. */
&& (mode == SFmode
- /* And any DF constant in integer registers. */
- || (mode == DFmode
- && ! can_create_pseudo_p ())))
+ /* And any DF constant in integer registers if needed. */
+ || (mode == DFmode && !can_create_pseudo_p ())))
return false;
operands[1] = force_const_mem (mode, operands[1]);
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index ee8de4c3f8a..6eac0ba0ca0 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,76 @@
+2017-04-18 Marek Polacek <polacek@redhat.com>
+
+ PR c++/80244 - ICE with attribute in template alias.
+ * tree.c (strip_typedefs): Handle UNDERLYING_TYPE.
+
+ PR c++/80241 - ICE with alignas pack expansion.
+ * error.c (dump_expr): Handle TREE_LIST.
+ * parser.c (cp_parser_std_attribute_list): Return error_mark if
+ make_pack_expansion returns an error.
+
+2017-04-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ PR c++/80287
+ * class.c (fixup_may_alias): Fix all type variants.
+
+2017-04-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/80415 - wrong error with default arg and array reference.
+ * tree.c (lvalue_kind): Return clk_class for an array prvalue.
+
+ * pt.c (tsubst_init): Set TARGET_EXPR_DIRECT_INIT_P.
+
+2017-04-15 Alexandre Oliva <aoliva@redhat.com>
+
+ * decl.c (name_unnamed_type): Split out of...
+ (grokdeclarator): ... this.
+ * decl.h (name_unnamed_type): Declare.
+
+2017-04-12 Richard Biener <rguenther@suse.de>
+ Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ PR middle-end/79671
+ * tree.c (build_cplus_array_type): Set TYPE_TYPELESS_STORAGE
+ for arrays of character or std::byte type.
+
+2017-04-11 Jason Merrill <jason@redhat.com>
+
+ PR c++/80294 - ICE with constexpr and inheritance.
+ * constexpr.c (reduced_constant_expression_p):
+ A null constructor element is non-constant.
+ (cxx_eval_indirect_ref): Don't VERIFY_CONSTANT before
+ returning an empty base.
+
+2017-04-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/80370
+ * decl.c (cp_finish_decomp): If processing_template_decl on
+ non-dependent decl, only set TREE_TYPE on the v[i] decls, but don't
+ change their DECL_VALUE_EXPR nor cp_finish_decl them. Instead make
+ sure DECL_VALUE_EXPR is the canonical NULL type ARRAY_REF for tsubst
+ processing.
+ * pt.c (value_dependent_expression_p) <case VAR_DECL>: For variables
+ with DECL_VALUE_EXPR, return true if DECL_VALUE_EXPR is type
+ dependent.
+
+2017-04-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/80363
+ * error.c (dump_expr): Handle VEC_COND_EXPR like COND_EXPR.
+
+2017-04-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/80176
+ * tree.c (lvalue_kind): For COMPONENT_REF with BASELINK second
+ operand, if it is a static member function, recurse on the
+ BASELINK.
+
+2017-04-10 Marek Polacek <polacek@redhat.com>
+
+ PR sanitizer/80348
+ * typeck.c (cp_build_binary_op): Use NULL_TREE instead of NULL. Set
+ ORIG_TYPE earlier and not only when shortening.
+
2017-04-07 Jason Merrill <jason@redhat.com>
PR c++/80356 - ICE with reference to function template argument.
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 940cead072e..2b039fe628f 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -2060,12 +2060,14 @@ fixup_type_variants (tree t)
static void
fixup_may_alias (tree klass)
{
- tree t;
+ tree t, v;
for (t = TYPE_POINTER_TO (klass); t; t = TYPE_NEXT_PTR_TO (t))
- TYPE_REF_CAN_ALIAS_ALL (t) = true;
+ for (v = TYPE_MAIN_VARIANT (t); v; v = TYPE_NEXT_VARIANT (v))
+ TYPE_REF_CAN_ALIAS_ALL (v) = true;
for (t = TYPE_REFERENCE_TO (klass); t; t = TYPE_NEXT_REF_TO (t))
- TYPE_REF_CAN_ALIAS_ALL (t) = true;
+ for (v = TYPE_MAIN_VARIANT (t); v; v = TYPE_NEXT_VARIANT (v))
+ TYPE_REF_CAN_ALIAS_ALL (v) = true;
}
/* Early variant fixups: we apply attributes at the beginning of the class
diff --git a/gcc/cp/constexpr.c b/gcc/cp/constexpr.c
index 3ca35607181..9dde4a4122a 100644
--- a/gcc/cp/constexpr.c
+++ b/gcc/cp/constexpr.c
@@ -1716,8 +1716,13 @@ reduced_constant_expression_p (tree t)
/* And we need to handle PTRMEM_CST wrapped in a CONSTRUCTOR. */
tree elt; unsigned HOST_WIDE_INT idx;
FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (t), idx, elt)
- if (!reduced_constant_expression_p (elt))
- return false;
+ {
+ if (!elt)
+ /* We're in the middle of initializing this element. */
+ return false;
+ if (!reduced_constant_expression_p (elt))
+ return false;
+ }
return true;
default:
@@ -3153,12 +3158,10 @@ cxx_eval_indirect_ref (const constexpr_ctx *ctx, tree t,
if (*non_constant_p)
return t;
- /* If we're pulling out the value of an empty base, make sure
- that the whole object is constant and then return an empty
+ /* If we're pulling out the value of an empty base, just return an empty
CONSTRUCTOR. */
if (empty_base && !lval)
{
- VERIFY_CONSTANT (r);
r = build_constructor (TREE_TYPE (t), NULL);
TREE_CONSTANT (r) = true;
}
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 57c1401a9d1..67dfea2c65b 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -4677,7 +4677,7 @@ enum cp_lvalue_kind_flags {
clk_none = 0, /* Things that are not an lvalue. */
clk_ordinary = 1, /* An ordinary lvalue. */
clk_rvalueref = 2,/* An xvalue (rvalue formed using an rvalue reference) */
- clk_class = 4, /* A prvalue of class-type. */
+ clk_class = 4, /* A prvalue of class or array type. */
clk_bitfield = 8, /* An lvalue for a bit-field. */
clk_packed = 16 /* An lvalue for a packed field. */
};
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 516b93c3da9..8e9a466afa0 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -7473,6 +7473,8 @@ cp_finish_decomp (tree decl, tree first, unsigned int count)
{
TREE_TYPE (v[i]) = eltype;
layout_decl (v[i], 0);
+ if (processing_template_decl)
+ continue;
tree t = unshare_expr (dexp);
t = build4_loc (DECL_SOURCE_LOCATION (v[i]), ARRAY_REF,
eltype, t, size_int (i), NULL_TREE,
@@ -7492,6 +7494,8 @@ cp_finish_decomp (tree decl, tree first, unsigned int count)
{
TREE_TYPE (v[i]) = eltype;
layout_decl (v[i], 0);
+ if (processing_template_decl)
+ continue;
tree t = unshare_expr (dexp);
t = build1_loc (DECL_SOURCE_LOCATION (v[i]),
i ? IMAGPART_EXPR : REALPART_EXPR, eltype,
@@ -7510,6 +7514,8 @@ cp_finish_decomp (tree decl, tree first, unsigned int count)
{
TREE_TYPE (v[i]) = eltype;
layout_decl (v[i], 0);
+ if (processing_template_decl)
+ continue;
tree t = unshare_expr (dexp);
convert_vector_to_array_for_subscript (DECL_SOURCE_LOCATION (v[i]),
&t, size_int (i));
@@ -7559,8 +7565,9 @@ cp_finish_decomp (tree decl, tree first, unsigned int count)
SET_DECL_VALUE_EXPR (v[i], NULL_TREE);
DECL_HAS_VALUE_EXPR_P (v[i]) = 0;
}
- cp_finish_decl (v[i], init, /*constexpr*/false,
- /*asm*/NULL_TREE, LOOKUP_NORMAL);
+ if (!processing_template_decl)
+ cp_finish_decl (v[i], init, /*constexpr*/false,
+ /*asm*/NULL_TREE, LOOKUP_NORMAL);
}
}
else if (TREE_CODE (type) == UNION_TYPE)
@@ -7615,12 +7622,26 @@ cp_finish_decomp (tree decl, tree first, unsigned int count)
tt = TREE_OPERAND (tt, 0);
TREE_TYPE (v[i]) = TREE_TYPE (tt);
layout_decl (v[i], 0);
- SET_DECL_VALUE_EXPR (v[i], tt);
- DECL_HAS_VALUE_EXPR_P (v[i]) = 1;
+ if (!processing_template_decl)
+ {
+ SET_DECL_VALUE_EXPR (v[i], tt);
+ DECL_HAS_VALUE_EXPR_P (v[i]) = 1;
+ }
i++;
}
}
- if (DECL_NAMESPACE_SCOPE_P (decl))
+ if (processing_template_decl)
+ {
+ for (unsigned int i = 0; i < count; i++)
+ if (!DECL_HAS_VALUE_EXPR_P (v[i]))
+ {
+ tree a = build_nt (ARRAY_REF, decl, size_int (i),
+ NULL_TREE, NULL_TREE);
+ SET_DECL_VALUE_EXPR (v[i], a);
+ DECL_HAS_VALUE_EXPR_P (v[i]) = 1;
+ }
+ }
+ else if (DECL_NAMESPACE_SCOPE_P (decl))
SET_DECL_ASSEMBLER_NAME (decl, mangle_decomp (decl, v));
}
@@ -9831,6 +9852,49 @@ mark_inline_variable (tree decl)
}
}
+
+/* Assign a typedef-given name to a class or enumeration type declared
+ as anonymous at first. This was split out of grokdeclarator
+ because it is also used in libcc1. */
+
+void
+name_unnamed_type (tree type, tree decl)
+{
+ gcc_assert (TYPE_UNNAMED_P (type));
+
+ /* Replace the anonymous name with the real name everywhere. */
+ for (tree t = TYPE_MAIN_VARIANT (type); t; t = TYPE_NEXT_VARIANT (t))
+ {
+ if (anon_aggrname_p (TYPE_IDENTIFIER (t)))
+ /* We do not rename the debug info representing the
+ unnamed tagged type because the standard says in
+ [dcl.typedef] that the naming applies only for
+ linkage purposes. */
+ /*debug_hooks->set_name (t, decl);*/
+ TYPE_NAME (t) = decl;
+ }
+
+ if (TYPE_LANG_SPECIFIC (type))
+ TYPE_WAS_UNNAMED (type) = 1;
+
+ /* If this is a typedef within a template class, the nested
+ type is a (non-primary) template. The name for the
+ template needs updating as well. */
+ if (TYPE_LANG_SPECIFIC (type) && CLASSTYPE_TEMPLATE_INFO (type))
+ DECL_NAME (CLASSTYPE_TI_TEMPLATE (type))
+ = TYPE_IDENTIFIER (type);
+
+ /* Adjust linkage now that we aren't unnamed anymore. */
+ reset_type_linkage (type);
+
+ /* FIXME remangle member functions; member functions of a
+ type with external linkage have external linkage. */
+
+ /* Check that our job is done, and that it would fail if we
+ attempted to do it again. */
+ gcc_assert (!TYPE_UNNAMED_P (type));
+}
+
/* Given declspecs and a declarator (abstract or otherwise), determine
the name and type of the object declared and construct a DECL node
for it.
@@ -11555,37 +11619,7 @@ grokdeclarator (const cp_declarator *declarator,
&& declspecs->type_definition_p
&& attributes_naming_typedef_ok (*attrlist)
&& cp_type_quals (type) == TYPE_UNQUALIFIED)
- {
- tree t;
-
- /* Replace the anonymous name with the real name everywhere. */
- for (t = TYPE_MAIN_VARIANT (type); t; t = TYPE_NEXT_VARIANT (t))
- {
- if (anon_aggrname_p (TYPE_IDENTIFIER (t)))
- /* We do not rename the debug info representing the
- unnamed tagged type because the standard says in
- [dcl.typedef] that the naming applies only for
- linkage purposes. */
- /*debug_hooks->set_name (t, decl);*/
- TYPE_NAME (t) = decl;
- }
-
- if (TYPE_LANG_SPECIFIC (type))
- TYPE_WAS_UNNAMED (type) = 1;
-
- /* If this is a typedef within a template class, the nested
- type is a (non-primary) template. The name for the
- template needs updating as well. */
- if (TYPE_LANG_SPECIFIC (type) && CLASSTYPE_TEMPLATE_INFO (type))
- DECL_NAME (CLASSTYPE_TI_TEMPLATE (type))
- = TYPE_IDENTIFIER (type);
-
- /* Adjust linkage now that we aren't unnamed anymore. */
- reset_type_linkage (type);
-
- /* FIXME remangle member functions; member functions of a
- type with external linkage have external linkage. */
- }
+ name_unnamed_type (type, decl);
if (signed_p
|| (typedef_decl && C_TYPEDEF_EXPLICITLY_SIGNED (typedef_decl)))
diff --git a/gcc/cp/decl.h b/gcc/cp/decl.h
index 3e1d91f7092..d84d90c82d2 100644
--- a/gcc/cp/decl.h
+++ b/gcc/cp/decl.h
@@ -35,6 +35,7 @@ enum decl_context
extern tree grokdeclarator (const cp_declarator *,
cp_decl_specifier_seq *,
enum decl_context, int, tree*);
+extern void name_unnamed_type (tree, tree);
/* States indicating how grokdeclarator() should handle declspecs marked
with __attribute__((deprecated)). An object declared as
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index d8c5d5ea412..40a7eab4b9e 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -2080,6 +2080,7 @@ dump_expr (cxx_pretty_printer *pp, tree t, int flags)
break;
case COND_EXPR:
+ case VEC_COND_EXPR:
pp_cxx_left_paren (pp);
dump_expr (pp, TREE_OPERAND (t, 0), flags | TFF_EXPR_IN_PARENS);
pp_string (pp, " ? ");
@@ -2821,6 +2822,10 @@ dump_expr (cxx_pretty_printer *pp, tree t, int flags)
pp_string (pp, M_("*this"));
break;
+ case TREE_LIST:
+ dump_expr_list (pp, t, flags);
+ break;
+
/* This list is incomplete, but should suffice for now.
It is very important that `sorry' does not call
`report_error_function'. That could cause an infinite loop. */
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index e202ad9bf12..5255e713a32 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -24846,8 +24846,12 @@ cp_parser_std_attribute_list (cp_parser *parser, tree attr_ns)
error_at (token->location,
"expected attribute before %<...%>");
else
- TREE_VALUE (attribute)
- = make_pack_expansion (TREE_VALUE (attribute));
+ {
+ tree pack = make_pack_expansion (TREE_VALUE (attribute));
+ if (pack == error_mark_node)
+ return error_mark_node;
+ TREE_VALUE (attribute) = pack;
+ }
token = cp_lexer_peek_token (parser->lexer);
}
if (token->type != CPP_COMMA)
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 5a55f179096..f8436b30b37 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -14413,6 +14413,8 @@ tsubst_init (tree init, tree decl, tree args,
complain);
if (TREE_CODE (init) == AGGR_INIT_EXPR)
init = get_target_expr_sfinae (init, complain);
+ if (TREE_CODE (init) == TARGET_EXPR)
+ TARGET_EXPR_DIRECT_INIT_P (init) = true;
}
return init;
@@ -23576,6 +23578,12 @@ value_dependent_expression_p (tree expression)
|| type_dependent_expression_p (DECL_INITIAL (expression))
|| value_dependent_expression_p (DECL_INITIAL (expression))))
return true;
+ if (DECL_HAS_VALUE_EXPR_P (expression))
+ {
+ tree value_expr = DECL_VALUE_EXPR (expression);
+ if (type_dependent_expression_p (value_expr))
+ return true;
+ }
return false;
case DYNAMIC_CAST_EXPR:
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 99391352e3a..f1b0a57e158 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -105,6 +105,17 @@ lvalue_kind (const_tree ref)
return op1_lvalue_kind;
case COMPONENT_REF:
+ if (BASELINK_P (TREE_OPERAND (ref, 1)))
+ {
+ tree fn = BASELINK_FUNCTIONS (TREE_OPERAND (ref, 1));
+
+ /* For static member function recurse on the BASELINK, we can get
+ here e.g. from reference_binding. If BASELINK_FUNCTIONS is
+ OVERLOAD, the overload is resolved first if possible through
+ resolve_address_of_overloaded_function. */
+ if (TREE_CODE (fn) == FUNCTION_DECL && DECL_STATIC_FUNCTION_P (fn))
+ return lvalue_kind (TREE_OPERAND (ref, 1));
+ }
op1_lvalue_kind = lvalue_kind (TREE_OPERAND (ref, 0));
/* Look at the member designator. */
if (!op1_lvalue_kind)
@@ -232,7 +243,8 @@ lvalue_kind (const_tree ref)
default:
if (!TREE_TYPE (ref))
return clk_none;
- if (CLASS_TYPE_P (TREE_TYPE (ref)))
+ if (CLASS_TYPE_P (TREE_TYPE (ref))
+ || TREE_CODE (TREE_TYPE (ref)) == ARRAY_TYPE)
return clk_class;
break;
}
@@ -938,6 +950,13 @@ build_cplus_array_type (tree elt_type, tree index_type)
else
{
t = build_array_type (elt_type, index_type);
+ if (elt_type == unsigned_char_type_node
+ || elt_type == signed_char_type_node
+ || elt_type == char_type_node
+ || (TREE_CODE (elt_type) == ENUMERAL_TYPE
+ && TYPE_CONTEXT (elt_type) == std_node
+ && !strcmp ("byte", TYPE_NAME_STRING (elt_type))))
+ TYPE_TYPELESS_STORAGE (t) = 1;
}
/* Now check whether we already have this array variant. */
@@ -961,6 +980,7 @@ build_cplus_array_type (tree elt_type, tree index_type)
as it will overwrite alignment etc. of all variants. */
TYPE_SIZE (t) = TYPE_SIZE (m);
TYPE_SIZE_UNIT (t) = TYPE_SIZE_UNIT (m);
+ TYPE_TYPELESS_STORAGE (t) = TYPE_TYPELESS_STORAGE (m);
}
TYPE_MAIN_VARIANT (t) = m;
@@ -1531,6 +1551,10 @@ strip_typedefs (tree t, bool *remove_attributes)
DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P (t),
tf_none));
break;
+ case UNDERLYING_TYPE:
+ type = strip_typedefs (UNDERLYING_TYPE_TYPE (t), remove_attributes);
+ result = finish_underlying_type (type);
+ break;
default:
break;
}
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index 65a34358192..7aee0d6f0ac 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -4105,7 +4105,7 @@ cp_build_binary_op (location_t location,
/* Data type in which the computation is to be performed.
In the simplest cases this is the common type of the arguments. */
- tree result_type = NULL;
+ tree result_type = NULL_TREE;
/* Nonzero means operands have already been type-converted
in whatever way is necessary.
@@ -4121,7 +4121,6 @@ cp_build_binary_op (location_t location,
tree final_type = 0;
tree result, result_ovl;
- tree orig_type = NULL;
/* Nonzero if this is an operation like MIN or MAX which can
safely be computed in short if both args are promoted shorts.
@@ -4153,7 +4152,7 @@ cp_build_binary_op (location_t location,
bool doing_shift = false;
/* Tree holding instrumentation expression. */
- tree instrument_expr = NULL;
+ tree instrument_expr = NULL_TREE;
if (code == TRUTH_AND_EXPR || code == TRUTH_ANDIF_EXPR
|| code == TRUTH_OR_EXPR || code == TRUTH_ORIF_EXPR
@@ -5042,6 +5041,10 @@ cp_build_binary_op (location_t location,
return tmp;
}
+ /* Remember the original type; RESULT_TYPE might be changed later on
+ by shorten_binary_op. */
+ tree orig_type = result_type;
+
if (arithmetic_types_p)
{
bool first_complex = (code0 == COMPLEX_TYPE);
@@ -5138,7 +5141,6 @@ cp_build_binary_op (location_t location,
if (shorten && none_complex)
{
- orig_type = result_type;
final_type = result_type;
result_type = shorten_binary_op (result_type, op0, op1,
shorten == -1);
@@ -5218,13 +5220,10 @@ cp_build_binary_op (location_t location,
original result_type. */
tree cop0 = op0;
tree cop1 = op1;
- if (orig_type != NULL_TREE)
- {
- if (TREE_TYPE (cop0) != orig_type)
- cop0 = cp_convert (orig_type, op0, complain);
- if (TREE_TYPE (cop1) != orig_type)
- cop1 = cp_convert (orig_type, op1, complain);
- }
+ if (TREE_TYPE (cop0) != orig_type)
+ cop0 = cp_convert (orig_type, op0, complain);
+ if (TREE_TYPE (cop1) != orig_type)
+ cop1 = cp_convert (orig_type, op1, complain);
instrument_expr = ubsan_instrument_division (location, cop0, cop1);
}
else if (doing_shift && (flag_sanitize & SANITIZE_SHIFT))
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 219fa2cf5bd..f7cbe447307 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -17623,20 +17623,21 @@ void vec_vsx_st (vector bool char, int, vector bool char *);
void vec_vsx_st (vector bool char, int, unsigned char *);
void vec_vsx_st (vector bool char, int, signed char *);
-vector double vec_xxpermdi (vector double, vector double, int);
-vector float vec_xxpermdi (vector float, vector float, int);
-vector long long vec_xxpermdi (vector long long, vector long long, int);
+vector double vec_xxpermdi (vector double, vector double, const int);
+vector float vec_xxpermdi (vector float, vector float, const int);
+vector long long vec_xxpermdi (vector long long, vector long long, const int);
vector unsigned long long vec_xxpermdi (vector unsigned long long,
- vector unsigned long long, int);
-vector int vec_xxpermdi (vector int, vector int, int);
+ vector unsigned long long, const int);
+vector int vec_xxpermdi (vector int, vector int, const int);
vector unsigned int vec_xxpermdi (vector unsigned int,
- vector unsigned int, int);
-vector short vec_xxpermdi (vector short, vector short, int);
+ vector unsigned int, const int);
+vector short vec_xxpermdi (vector short, vector short, const int);
vector unsigned short vec_xxpermdi (vector unsigned short,
- vector unsigned short, int);
-vector signed char vec_xxpermdi (vector signed char, vector signed char, int);
+ vector unsigned short, const int);
+vector signed char vec_xxpermdi (vector signed char, vector signed char,
+ const int);
vector unsigned char vec_xxpermdi (vector unsigned char,
- vector unsigned char, int);
+ vector unsigned char, const int);
vector double vec_xxsldi (vector double, vector double, int);
vector float vec_xxsldi (vector float, vector float, int);
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 8c3b1868f69..27fb9f05193 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -12464,20 +12464,29 @@ modified_type_die (tree type, int cv_quals, bool reverse,
this type. */
qualified_type = get_qualified_type (type, cv_quals);
- if (qualified_type == sizetype
- && TYPE_NAME (qualified_type)
- && TREE_CODE (TYPE_NAME (qualified_type)) == TYPE_DECL)
+ if (qualified_type == sizetype)
{
- tree t = TREE_TYPE (TYPE_NAME (qualified_type));
+ /* Try not to expose the internal sizetype type's name. */
+ if (TYPE_NAME (qualified_type)
+ && TREE_CODE (TYPE_NAME (qualified_type)) == TYPE_DECL)
+ {
+ tree t = TREE_TYPE (TYPE_NAME (qualified_type));
- gcc_checking_assert (TREE_CODE (t) == INTEGER_TYPE
- && TYPE_PRECISION (t)
- == TYPE_PRECISION (qualified_type)
- && TYPE_UNSIGNED (t)
- == TYPE_UNSIGNED (qualified_type));
- qualified_type = t;
+ gcc_checking_assert (TREE_CODE (t) == INTEGER_TYPE
+ && (TYPE_PRECISION (t)
+ == TYPE_PRECISION (qualified_type))
+ && (TYPE_UNSIGNED (t)
+ == TYPE_UNSIGNED (qualified_type)));
+ qualified_type = t;
+ }
+ else if (qualified_type == sizetype
+ && TREE_CODE (sizetype) == TREE_CODE (size_type_node)
+ && TYPE_PRECISION (sizetype) == TYPE_PRECISION (size_type_node)
+ && TYPE_UNSIGNED (sizetype) == TYPE_UNSIGNED (size_type_node))
+ qualified_type = size_type_node;
}
+
/* If we do, then we can just use its DIE, if it exists. */
if (qualified_type)
{
@@ -24889,7 +24898,12 @@ decls_for_scope (tree stmt, dw_die_ref context_die)
for (i = 0; i < BLOCK_NUM_NONLOCALIZED_VARS (stmt); i++)
{
decl = BLOCK_NONLOCALIZED_VAR (stmt, i);
- if (TREE_CODE (decl) == FUNCTION_DECL)
+ if (decl == current_function_decl)
+ /* Ignore declarations of the current function, while they
+ are declarations, gen_subprogram_die would treat them
+ as definitions again, because they are equal to
+ current_function_decl and endlessly recurse. */;
+ else if (TREE_CODE (decl) == FUNCTION_DECL)
process_scope_var (stmt, decl, NULL_TREE, context_die);
else
process_scope_var (stmt, NULL_TREE, decl, context_die);
diff --git a/gcc/expr.c b/gcc/expr.c
index 91d7ea21722..29ebad3a061 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -8333,7 +8333,8 @@ expand_expr_real_2 (sepops ops, rtx target, machine_mode tmode,
}
else if (modifier == EXPAND_INITIALIZER)
- op0 = gen_rtx_fmt_e (unsignedp ? ZERO_EXTEND : SIGN_EXTEND, mode, op0);
+ op0 = gen_rtx_fmt_e (TYPE_UNSIGNED (TREE_TYPE (treeop0))
+ ? ZERO_EXTEND : SIGN_EXTEND, mode, op0);
else if (target == 0)
op0 = convert_to_mode (mode, op0,
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 524bb0fe3fb..770162251f2 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -9916,12 +9916,12 @@ fold_binary_loc (location_t loc,
}
if (c3 != c1)
- return fold_build2_loc (loc, BIT_IOR_EXPR, type,
- fold_build2_loc (loc, BIT_AND_EXPR, type,
- TREE_OPERAND (arg0, 0),
- wide_int_to_tree (type,
- c3)),
- arg1);
+ {
+ tem = fold_convert_loc (loc, type, TREE_OPERAND (arg0, 0));
+ tem = fold_build2_loc (loc, BIT_AND_EXPR, type, tem,
+ wide_int_to_tree (type, c3));
+ return fold_build2_loc (loc, BIT_IOR_EXPR, type, tem, arg1);
+ }
}
/* See if this can be simplified into a rotate first. If that
@@ -11508,10 +11508,12 @@ fold_ternary_loc (location_t loc, enum tree_code code, tree type,
STRIP_NOPS (tem);
if (TREE_CODE (tem) == RSHIFT_EXPR
&& tree_fits_uhwi_p (TREE_OPERAND (tem, 1))
- && (unsigned HOST_WIDE_INT) tree_log2 (arg1) ==
- tree_to_uhwi (TREE_OPERAND (tem, 1)))
+ && (unsigned HOST_WIDE_INT) tree_log2 (arg1)
+ == tree_to_uhwi (TREE_OPERAND (tem, 1)))
return fold_build2_loc (loc, BIT_AND_EXPR, type,
- TREE_OPERAND (tem, 0), arg1);
+ fold_convert_loc (loc, type,
+ TREE_OPERAND (tem, 0)),
+ op1);
}
/* A & N ? N : 0 is simply A & N if N is a power of two. This
@@ -11542,7 +11544,7 @@ fold_ternary_loc (location_t loc, enum tree_code code, tree type,
&& (code == VEC_COND_EXPR || !VECTOR_TYPE_P (type)))
return fold_build2_loc (loc, code == VEC_COND_EXPR ? BIT_AND_EXPR
: TRUTH_ANDIF_EXPR,
- type, fold_convert_loc (loc, type, arg0), arg1);
+ type, fold_convert_loc (loc, type, arg0), op1);
/* Convert A ? B : 1 into !A || B if A and B are truth values. */
if (code == VEC_COND_EXPR ? integer_all_onesp (op2) : integer_onep (op2)
@@ -11558,7 +11560,7 @@ fold_ternary_loc (location_t loc, enum tree_code code, tree type,
? BIT_IOR_EXPR
: TRUTH_ORIF_EXPR,
type, fold_convert_loc (loc, type, tem),
- arg1);
+ op1);
}
/* Convert A ? 0 : B into !A && B if A and B are truth values. */
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index e1057d72eb8..58268d1bd36 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,4 +1,29 @@
-2017-03-18 Nicolas Koenig <koenigni@student.ethz.ch>
+2017-04-17 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/80440
+ * module.c (find_symtree_for_symbol): Delete.
+ (read_module): Remove the call to the above.
+
+2017-04-14 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/80361
+ * class.c (generate_finalization_wrapper): Give the finalization wrapper
+ the recursive attribute.
+
+2017-04-10 Nicolas Koenig <koenigni@student.ethz.ch>
+ Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/69498
+ * module.c (gfc_match_submodule): Add error
+ if function is called in the wrong state.
+
+2017-04-10 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/80046
+ * expr.c (gfc_check_pointer_assign): Check if procedure pointer
+ components in a pointer assignment need an explicit interface.
+
+2017-03-18 Nicolas Koenig <koenigni@student.ethz.ch>
PR fortran/69498
* symbol.c (gfc_delete_symtree): If there is a period in the name, ignore
diff --git a/gcc/fortran/class.c b/gcc/fortran/class.c
index d507e22ce09..2d72e9570da 100644
--- a/gcc/fortran/class.c
+++ b/gcc/fortran/class.c
@@ -1613,6 +1613,7 @@ generate_finalization_wrapper (gfc_symbol *derived, gfc_namespace *ns,
final->attr.flavor = FL_PROCEDURE;
final->attr.function = 1;
final->attr.pure = 0;
+ final->attr.recursive = 1;
final->result = final;
final->ts.type = BT_INTEGER;
final->ts.kind = 4;
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 0e5f04d0bdf..c8be9513af5 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -3595,25 +3595,41 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_expr *rvalue)
return false;
}
- if (s1 == s2 || !s1 || !s2)
- return true;
-
/* F08:7.2.2.4 (4) */
- if (s1->attr.if_source == IFSRC_UNKNOWN
- && gfc_explicit_interface_required (s2, err, sizeof(err)))
+ if (s2 && gfc_explicit_interface_required (s2, err, sizeof(err)))
{
- gfc_error ("Explicit interface required for %qs at %L: %s",
- s1->name, &lvalue->where, err);
- return false;
+ if (comp1 && !s1)
+ {
+ gfc_error ("Explicit interface required for component %qs at %L: %s",
+ comp1->name, &lvalue->where, err);
+ return false;
+ }
+ else if (s1->attr.if_source == IFSRC_UNKNOWN)
+ {
+ gfc_error ("Explicit interface required for %qs at %L: %s",
+ s1->name, &lvalue->where, err);
+ return false;
+ }
}
- if (s2->attr.if_source == IFSRC_UNKNOWN
- && gfc_explicit_interface_required (s1, err, sizeof(err)))
+ if (s1 && gfc_explicit_interface_required (s1, err, sizeof(err)))
{
- gfc_error ("Explicit interface required for %qs at %L: %s",
- s2->name, &rvalue->where, err);
- return false;
+ if (comp2 && !s2)
+ {
+ gfc_error ("Explicit interface required for component %qs at %L: %s",
+ comp2->name, &rvalue->where, err);
+ return false;
+ }
+ else if (s2->attr.if_source == IFSRC_UNKNOWN)
+ {
+ gfc_error ("Explicit interface required for %qs at %L: %s",
+ s2->name, &rvalue->where, err);
+ return false;
+ }
}
+ if (s1 == s2 || !s1 || !s2)
+ return true;
+
if (!gfc_compare_interfaces (s1, s2, name, 0, 1,
err, sizeof(err), NULL, NULL))
{
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index 60adde3c635..4d6afa55d38 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -741,6 +741,13 @@ gfc_match_submodule (void)
if (!gfc_notify_std (GFC_STD_F2008, "SUBMODULE declaration at %C"))
return MATCH_ERROR;
+ if (gfc_current_state () != COMP_NONE)
+ {
+ gfc_error ("SUBMODULE declaration at %C cannot appear within "
+ "another scoping unit");
+ return MATCH_ERROR;
+ }
+
gfc_new_block = NULL;
gcc_assert (module_list == NULL);
@@ -4285,31 +4292,6 @@ mio_symbol (gfc_symbol *sym)
/************************* Top level subroutines *************************/
-/* Given a root symtree node and a symbol, try to find a symtree that
- references the symbol that is not a unique name. */
-
-static gfc_symtree *
-find_symtree_for_symbol (gfc_symtree *st, gfc_symbol *sym)
-{
- gfc_symtree *s = NULL;
-
- if (st == NULL)
- return s;
-
- s = find_symtree_for_symbol (st->right, sym);
- if (s != NULL)
- return s;
- s = find_symtree_for_symbol (st->left, sym);
- if (s != NULL)
- return s;
-
- if (st->n.sym == sym && !check_unique_name (st->name))
- return st;
-
- return s;
-}
-
-
/* A recursive function to look for a specific symbol by name and by
module. Whilst several symtrees might point to one symbol, its
is sufficient for the purposes here than one exist. Note that
@@ -5112,16 +5094,6 @@ read_module (void)
info->u.rsym.referenced = 1;
continue;
}
-
- /* If possible recycle the symtree that references the symbol.
- If a symtree is not found and the module does not import one,
- a unique-name symtree is found by read_cleanup. */
- st = find_symtree_for_symbol (gfc_current_ns->sym_root, sym);
- if (st != NULL)
- {
- info->u.rsym.symtree = st;
- info->u.rsym.referenced = 1;
- }
}
mio_rparen ();
diff --git a/gcc/gcov-io.c b/gcc/gcov-io.c
index 3b6b022d143..64dedd5528e 100644
--- a/gcc/gcov-io.c
+++ b/gcc/gcov-io.c
@@ -347,8 +347,12 @@ gcov_write_string (const char *string)
buffer = gcov_write_words (1 + alloc);
buffer[0] = alloc;
- buffer[alloc] = 0;
- memcpy (&buffer[1], string, length);
+
+ if (alloc > 0)
+ {
+ buffer[alloc] = 0; /* place nul terminators. */
+ memcpy (&buffer[1], string, length);
+ }
}
#endif
diff --git a/gcc/gcov-tool.c b/gcc/gcov-tool.c
index cadf09377dd..80c08354857 100644
--- a/gcc/gcov-tool.c
+++ b/gcc/gcov-tool.c
@@ -46,6 +46,7 @@ extern int gcov_profile_normalize (struct gcov_info*, gcov_type);
extern int gcov_profile_scale (struct gcov_info*, float, int, int);
extern struct gcov_info* gcov_read_profile_dir (const char*, int);
extern void gcov_do_dump (struct gcov_info *, int);
+extern const char *gcov_get_filename (struct gcov_info *list);
extern void gcov_set_verbose (void);
/* Set to verbose output mode. */
@@ -114,6 +115,14 @@ gcov_output_files (const char *out, struct gcov_info *profile)
if (ret)
fatal_error (input_location, "Cannot change directory to %s", out);
+ /* Verify that output file does not exist (either was removed by
+ unlink_profile_data or removed by user). */
+ const char *filename = gcov_get_filename (profile);
+
+ if (access (filename, F_OK) != -1)
+ fatal_error (input_location, "output file %s already exists in folder %s",
+ filename, out);
+
gcov_do_dump (profile, 0);
ret = chdir (pwd);
diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c
index cd4e6689db4..3629b5fa486 100644
--- a/gcc/genattrtab.c
+++ b/gcc/genattrtab.c
@@ -4416,6 +4416,9 @@ write_eligible_delay (FILE *outf, const char *kind)
fprintf (outf, "{\n");
fprintf (outf, " rtx_insn *insn ATTRIBUTE_UNUSED;\n");
fprintf (outf, "\n");
+ fprintf (outf, " if (num_delay_slots (delay_insn) == 0)\n");
+ fprintf (outf, " return 0;");
+ fprintf (outf, "\n");
fprintf (outf, " gcc_assert (slot < %d);\n", max_slots);
fprintf (outf, "\n");
/* Allow dbr_schedule to pass labels, etc. This can happen if try_split
diff --git a/gcc/gimple-ssa-split-paths.c b/gcc/gimple-ssa-split-paths.c
index df88c76aa53..70651c5dea3 100644
--- a/gcc/gimple-ssa-split-paths.c
+++ b/gcc/gimple-ssa-split-paths.c
@@ -249,13 +249,17 @@ is_feasible_trace (basic_block bb)
imm_use_iterator iter2;
FOR_EACH_IMM_USE_FAST (use2_p, iter2, gimple_phi_result (stmt))
{
- if (is_gimple_debug (USE_STMT (use2_p)))
+ gimple *use_stmt = USE_STMT (use2_p);
+ if (is_gimple_debug (use_stmt))
continue;
- basic_block use_bb = gimple_bb (USE_STMT (use2_p));
+ basic_block use_bb = gimple_bb (use_stmt);
if (use_bb != bb
&& dominated_by_p (CDI_DOMINATORS, bb, use_bb))
{
- found_useful_phi = true;
+ if (gcond *cond = dyn_cast <gcond *> (use_stmt))
+ if (gimple_cond_code (cond) == EQ_EXPR
+ || gimple_cond_code (cond) == NE_EXPR)
+ found_useful_phi = true;
break;
}
}
diff --git a/gcc/gimple-ssa-sprintf.c b/gcc/gimple-ssa-sprintf.c
index 2474391cadf..2e62086e2d1 100644
--- a/gcc/gimple-ssa-sprintf.c
+++ b/gcc/gimple-ssa-sprintf.c
@@ -599,8 +599,7 @@ fmtresult::type_max_digits (tree type, int base)
}
static bool
-get_int_range (tree, tree, HOST_WIDE_INT *, HOST_WIDE_INT *,
- bool, HOST_WIDE_INT);
+get_int_range (tree, HOST_WIDE_INT *, HOST_WIDE_INT *, bool, HOST_WIDE_INT);
/* Description of a format directive. A directive is either a plain
string or a conversion specification that starts with '%'. */
@@ -674,7 +673,7 @@ struct directive
For an indeterminate ARG set width to [0, INT_MAX]. */
void set_width (tree arg)
{
- get_int_range (arg, integer_type_node, width, width + 1, true, 0);
+ get_int_range (arg, width, width + 1, true, 0);
}
/* Set both bounds of the precision range to VAL. */
@@ -690,7 +689,7 @@ struct directive
For an indeterminate ARG set precision to [-1, INT_MAX]. */
void set_precision (tree arg)
{
- get_int_range (arg, integer_type_node, prec, prec + 1, false, -1);
+ get_int_range (arg, prec, prec + 1, false, -1);
}
/* Return true if both width and precision are known to be
@@ -927,25 +926,27 @@ build_intmax_type_nodes (tree *pintmax, tree *puintmax)
}
}
-/* Determine the range [*PMIN, *PMAX] that the expression ARG of TYPE
- is in. Return true when the range is a subrange of that of TYPE.
- Whn ARG is null it is as if it had the full range of TYPE.
+/* Determine the range [*PMIN, *PMAX] that the expression ARG is
+ in and that is representable in type int.
+ Return true when the range is a subrange of that of int.
+ When ARG is null it is as if it had the full range of int.
When ABSOLUTE is true the range reflects the absolute value of
the argument. When ABSOLUTE is false, negative bounds of
the determined range are replaced with NEGBOUND. */
static bool
-get_int_range (tree arg, tree type, HOST_WIDE_INT *pmin, HOST_WIDE_INT *pmax,
+get_int_range (tree arg, HOST_WIDE_INT *pmin, HOST_WIDE_INT *pmax,
bool absolute, HOST_WIDE_INT negbound)
{
+ /* The type of the result. */
+ const_tree type = integer_type_node;
+
bool knownrange = false;
if (!arg)
{
- *pmin = (TYPE_UNSIGNED (type)
- ? tree_to_uhwi (TYPE_MIN_VALUE (type))
- : tree_to_shwi (TYPE_MIN_VALUE (type)));
- *pmax = tree_to_uhwi (TYPE_MAX_VALUE (type));
+ *pmin = tree_to_shwi (TYPE_MIN_VALUE (type));
+ *pmax = tree_to_shwi (TYPE_MAX_VALUE (type));
}
else if (TREE_CODE (arg) == INTEGER_CST)
{
@@ -961,10 +962,16 @@ get_int_range (tree arg, tree type, HOST_WIDE_INT *pmin, HOST_WIDE_INT *pmax,
/* True if the argument's range cannot be determined. */
bool unknown = true;
- type = TREE_TYPE (arg);
+ tree argtype = TREE_TYPE (arg);
+ /* Ignore invalid arguments with greater precision that that
+ of the expected type (e.g., in sprintf("%*i", 12LL, i)).
+ They will have been detected and diagnosed by -Wformat and
+ so it's not important to complicate this code to try to deal
+ with them again. */
if (TREE_CODE (arg) == SSA_NAME
- && TREE_CODE (type) == INTEGER_TYPE)
+ && INTEGRAL_TYPE_P (argtype)
+ && TYPE_PRECISION (argtype) <= TYPE_PRECISION (type))
{
/* Try to determine the range of values of the integer argument. */
wide_int min, max;
@@ -972,27 +979,34 @@ get_int_range (tree arg, tree type, HOST_WIDE_INT *pmin, HOST_WIDE_INT *pmax,
if (range_type == VR_RANGE)
{
HOST_WIDE_INT type_min
- = (TYPE_UNSIGNED (type)
- ? tree_to_uhwi (TYPE_MIN_VALUE (type))
- : tree_to_shwi (TYPE_MIN_VALUE (type)));
+ = (TYPE_UNSIGNED (argtype)
+ ? tree_to_uhwi (TYPE_MIN_VALUE (argtype))
+ : tree_to_shwi (TYPE_MIN_VALUE (argtype)));
- HOST_WIDE_INT type_max = tree_to_uhwi (TYPE_MAX_VALUE (type));
+ HOST_WIDE_INT type_max = tree_to_uhwi (TYPE_MAX_VALUE (argtype));
*pmin = min.to_shwi ();
*pmax = max.to_shwi ();
- /* Return true if the adjusted range is a subrange of
- the full range of the argument's type. */
- knownrange = type_min < *pmin || *pmax < type_max;
-
- unknown = false;
+ if (*pmin < *pmax)
+ {
+ /* Return true if the adjusted range is a subrange of
+ the full range of the argument's type. *PMAX may
+ be less than *PMIN when the argument is unsigned
+ and its upper bound is in excess of TYPE_MAX. In
+ that (invalid) case disregard the range and use that
+ of the expected type instead. */
+ knownrange = type_min < *pmin || *pmax < type_max;
+
+ unknown = false;
+ }
}
}
/* Handle an argument with an unknown range as if none had been
provided. */
if (unknown)
- return get_int_range (NULL_TREE, type, pmin, pmax, absolute, negbound);
+ return get_int_range (NULL_TREE, pmin, pmax, absolute, negbound);
}
/* Adjust each bound as specified by ABSOLUTE and NEGBOUND. */
@@ -1004,6 +1018,9 @@ get_int_range (tree arg, tree type, HOST_WIDE_INT *pmin, HOST_WIDE_INT *pmax,
*pmin = *pmax = -*pmin;
else
{
+ /* Make sure signed overlow is avoided. */
+ gcc_assert (*pmin != HOST_WIDE_INT_MIN);
+
HOST_WIDE_INT tmp = -*pmin;
*pmin = 0;
if (*pmax < tmp)
@@ -1948,7 +1965,7 @@ format_character (const directive &dir, tree arg)
res.range.min = 0;
HOST_WIDE_INT min, max;
- if (get_int_range (arg, integer_type_node, &min, &max, false, 0))
+ if (get_int_range (arg, &min, &max, false, 0))
{
if (min == 0 && max == 0)
{
@@ -3125,7 +3142,7 @@ parse_directive (pass_sprintf_length::call_info &info,
if (star_width)
{
- if (TREE_CODE (TREE_TYPE (star_width)) == INTEGER_TYPE)
+ if (INTEGRAL_TYPE_P (TREE_TYPE (star_width)))
dir.set_width (star_width);
else
{
@@ -3140,7 +3157,7 @@ parse_directive (pass_sprintf_length::call_info &info,
if (star_precision)
{
- if (TREE_CODE (TREE_TYPE (star_precision)) == INTEGER_TYPE)
+ if (INTEGRAL_TYPE_P (TREE_TYPE (star_precision)))
dir.set_precision (star_precision);
else
{
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index 07de1bbbb23..0ebf110471c 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -930,6 +930,9 @@ static bitmap saved_reg_live;
/* Registers mentioned in the current region. */
static bitmap region_ref_regs;
+/* Temporary bitmap used for SCHED_PRESSURE_MODEL. */
+static bitmap tmp_bitmap;
+
/* Effective number of available registers of a given class (see comment
in sched_pressure_start_bb). */
static int sched_class_regs_num[N_REG_CLASSES];
@@ -2135,10 +2138,11 @@ model_recompute (rtx_insn *insn)
registers that will be born in the range [model_curr_point, POINT). */
num_uses = 0;
num_pending_births = 0;
+ bitmap_clear (tmp_bitmap);
for (use = INSN_REG_USE_LIST (insn); use != NULL; use = use->next_insn_use)
{
new_last = model_last_use_except (use);
- if (new_last < point)
+ if (new_last < point && bitmap_set_bit (tmp_bitmap, use->regno))
{
gcc_assert (num_uses < ARRAY_SIZE (uses));
uses[num_uses].last_use = new_last;
@@ -7241,6 +7245,8 @@ alloc_global_sched_pressure_data (void)
saved_reg_live = BITMAP_ALLOC (NULL);
region_ref_regs = BITMAP_ALLOC (NULL);
}
+ if (sched_pressure == SCHED_PRESSURE_MODEL)
+ tmp_bitmap = BITMAP_ALLOC (NULL);
/* Calculate number of CALL_SAVED_REGS and FIXED_REGS in register classes
that we calculate register pressure for. */
@@ -7274,6 +7280,8 @@ free_global_sched_pressure_data (void)
BITMAP_FREE (region_ref_regs);
BITMAP_FREE (saved_reg_live);
}
+ if (sched_pressure == SCHED_PRESSURE_MODEL)
+ BITMAP_FREE (tmp_bitmap);
BITMAP_FREE (curr_reg_live);
free (sched_regno_pressure_class);
}
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 0b408149a88..fa3d5fd7548 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -614,6 +614,12 @@ determine_versionability (struct cgraph_node *node,
decloned constructors, inlining is always better anyway. */
else if (node->comdat_local_p ())
reason = "comdat-local function";
+ else if (node->calls_comdat_local)
+ {
+ /* TODO: call is versionable if we make sure that all
+ callers are inside of a comdat group. */
+ reason = "calls comdat-local function";
+ }
if (reason && dump_file && !node->alias && !node->thunk.thunk_p)
fprintf (dump_file, "Function %s/%i is not versionable, reason: %s.\n",
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
index da3c2c62344..80fc31b52f8 100644
--- a/gcc/ipa-split.c
+++ b/gcc/ipa-split.c
@@ -1360,6 +1360,15 @@ split_function (basic_block return_bb, struct split_point *split_point,
node->split_part = true;
+ if (cur_node->same_comdat_group)
+ {
+ /* TODO: call is versionable if we make sure that all
+ callers are inside of a comdat group. */
+ cur_node->calls_comdat_local = 1;
+ node->add_to_same_comdat_group (cur_node);
+ }
+
+
/* Let's take a time profile for splitted function. */
node->tp_first_run = cur_node->tp_first_run + 1;
diff --git a/gcc/ipa-visibility.c b/gcc/ipa-visibility.c
index de96b692a0d..d5a3ae56c46 100644
--- a/gcc/ipa-visibility.c
+++ b/gcc/ipa-visibility.c
@@ -90,8 +90,8 @@ static bool
non_local_p (struct cgraph_node *node, void *data ATTRIBUTE_UNUSED)
{
return !(node->only_called_directly_or_aliased_p ()
- /* i386 would need update to output thunk with locak calling
- ocnvetions. */
+ /* i386 would need update to output thunk with local calling
+ convetions. */
&& !node->thunk.thunk_p
&& node->definition
&& !DECL_EXTERNAL (node->decl)
@@ -153,7 +153,7 @@ comdat_can_be_unshared_p_1 (symtab_node *node)
/* COMDAT functions must be shared only if they have address taken,
otherwise we can produce our own private implementation with
-fwhole-program.
- Return true when turning COMDAT functoin static can not lead to wrong
+ Return true when turning COMDAT function static can not lead to wrong
code when the resulting object links with a library defining same COMDAT.
Virtual functions do have their addresses taken from the vtables,
@@ -537,6 +537,35 @@ localize_node (bool whole_program, symtab_node *node)
{
gcc_assert (whole_program || in_lto_p || !TREE_PUBLIC (node->decl));
+ /* It is possible that one comdat group contains both hidden and non-hidden
+ symbols. In this case we can privatize all hidden symbol but we need
+ to keep non-hidden exported. */
+ if (node->same_comdat_group
+ && node->resolution == LDPR_PREVAILING_DEF_IRONLY)
+ {
+ symtab_node *next;
+ for (next = node->same_comdat_group;
+ next != node; next = next->same_comdat_group)
+ if (next->resolution == LDPR_PREVAILING_DEF_IRONLY_EXP
+ || next->resolution == LDPR_PREVAILING_DEF)
+ break;
+ if (node != next)
+ {
+ if (!node->transparent_alias)
+ {
+ node->resolution = LDPR_PREVAILING_DEF_IRONLY;
+ node->make_decl_local ();
+ if (!flag_incremental_link)
+ node->unique_name |= true;
+ return;
+ }
+ }
+ }
+ /* For similar reason do not privatize whole comdat when seeing comdat
+ local. Wait for non-comdat symbol to be privatized first. */
+ if (node->comdat_local_p ())
+ return;
+
if (node->same_comdat_group && TREE_PUBLIC (node->decl))
{
for (symtab_node *next = node->same_comdat_group;
@@ -765,7 +794,8 @@ function_and_variable_visibility (bool whole_program)
vnode->no_reorder = 1;
if (!vnode->externally_visible
- && !vnode->transparent_alias)
+ && !vnode->transparent_alias
+ && !DECL_EXTERNAL (vnode->decl))
localize_node (whole_program, vnode);
update_visibility_by_resolution_info (vnode);
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index 4d986249a6f..c8bc9b9a66f 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -1852,6 +1852,42 @@ prohibited_class_reg_set_mode_p (enum reg_class rclass,
(temp, ira_prohibited_class_mode_regs[rclass][mode]));
}
+
+/* Used to check validity info about small class input operands. It
+ should be incremented at start of processing an insn
+ alternative. */
+static unsigned int curr_small_class_check = 0;
+
+/* Update number of used inputs of class OP_CLASS for operand NOP.
+ Return true if we have more such class operands than the number of
+ available regs. */
+static bool
+update_and_check_small_class_inputs (int nop, enum reg_class op_class)
+{
+ static unsigned int small_class_check[LIM_REG_CLASSES];
+ static int small_class_input_nums[LIM_REG_CLASSES];
+
+ if (SMALL_REGISTER_CLASS_P (op_class)
+ /* We are interesting in classes became small because of fixing
+ some hard regs, e.g. by an user through GCC options. */
+ && hard_reg_set_intersect_p (reg_class_contents[op_class],
+ ira_no_alloc_regs)
+ && (curr_static_id->operand[nop].type != OP_OUT
+ || curr_static_id->operand[nop].early_clobber))
+ {
+ if (small_class_check[op_class] == curr_small_class_check)
+ small_class_input_nums[op_class]++;
+ else
+ {
+ small_class_check[op_class] = curr_small_class_check;
+ small_class_input_nums[op_class] = 1;
+ }
+ if (small_class_input_nums[op_class] > ira_class_hard_regs_num[op_class])
+ return true;
+ }
+ return false;
+}
+
/* Major function to choose the current insn alternative and what
operands should be reloaded and how. If ONLY_ALTERNATIVE is not
negative we should consider only this alternative. Return false if
@@ -1952,6 +1988,7 @@ process_alt_operands (int only_alternative)
if (!TEST_BIT (preferred, nalt))
continue;
+ curr_small_class_check++;
overall = losers = addr_losers = 0;
static_reject = reject = reload_nregs = reload_sum = 0;
for (nop = 0; nop < n_operands; nop++)
@@ -2685,6 +2722,23 @@ process_alt_operands (int only_alternative)
}
}
+ /* When we use an operand requiring memory in given
+ alternative, the insn should write *and* read the
+ value to/from memory it is costly in comparison with
+ an insn alternative which does not use memory
+ (e.g. register or immediate operand). We exclude
+ memory operand for such case as we can satisfy the
+ memory constraints by reloading address. */
+ if (no_regs_p && offmemok && !MEM_P (op))
+ {
+ if (lra_dump_file != NULL)
+ fprintf
+ (lra_dump_file,
+ " Using memory insn operand %d: reject+=3\n",
+ nop);
+ reject += 3;
+ }
+
#ifdef SECONDARY_MEMORY_NEEDED
/* If reload requires moving value through secondary
memory, it will need one more insn at least. */
@@ -2747,6 +2801,14 @@ process_alt_operands (int only_alternative)
goto fail;
}
+ if (update_and_check_small_class_inputs (nop, this_alternative))
+ {
+ if (lra_dump_file != NULL)
+ fprintf (lra_dump_file,
+ " alt=%d, not enough small class regs -- refuse\n",
+ nalt);
+ goto fail;
+ }
curr_alt[nop] = this_alternative;
COPY_HARD_REG_SET (curr_alt_set[nop], this_alternative_set);
curr_alt_win[nop] = this_alternative_win;
diff --git a/gcc/lra-remat.c b/gcc/lra-remat.c
index 5a15075e7aa..2c51481374a 100644
--- a/gcc/lra-remat.c
+++ b/gcc/lra-remat.c
@@ -1024,6 +1024,7 @@ get_hard_regs (struct lra_insn_reg *reg, int &nregs)
static void
update_scratch_ops (rtx_insn *remat_insn)
{
+ int hard_regno;
lra_insn_recog_data_t id = lra_get_insn_recog_data (remat_insn);
struct lra_static_insn_data *static_id = id->insn_static_data;
for (int i = 0; i < static_id->n_operands; i++)
@@ -1034,9 +1035,17 @@ update_scratch_ops (rtx_insn *remat_insn)
int regno = REGNO (*loc);
if (! lra_former_scratch_p (regno))
continue;
+ hard_regno = reg_renumber[regno];
*loc = lra_create_new_reg (GET_MODE (*loc), *loc,
lra_get_allocno_class (regno),
"scratch pseudo copy");
+ if (hard_regno >= 0)
+ {
+ reg_renumber[REGNO (*loc)] = hard_regno;
+ if (lra_dump_file)
+ fprintf (lra_dump_file, " Assigning the same %d to r%d\n",
+ REGNO (*loc), hard_regno);
+ }
lra_register_new_scratch_op (remat_insn, i);
}
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 82a0cd60dec..b96b9df63b7 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -1143,6 +1143,8 @@ hash_tree (struct streamer_tree_cache_d *cache, hash_map<tree, hashval_t> *map,
}
else if (code == ARRAY_TYPE)
hstate.add_flag (TYPE_NONALIASED_COMPONENT (t));
+ if (AGGREGATE_TYPE_P (t))
+ hstate.add_flag (TYPE_TYPELESS_STORAGE (t));
hstate.commit_flag ();
hstate.add_int (TYPE_PRECISION (t));
hstate.add_int (TYPE_ALIGN (t));
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index d308c255ad0..d24dd0cfa0f 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -1,3 +1,9 @@
+2017-04-12 Richard Biener <rguenther@suse.de>
+ Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ PR middle-end/79671
+ * lto.c (compare_tree_sccs_1): Compare TYPE_TYPELESS_STORAGE.
+
2017-02-14 Martin Liska <mliska@suse.cz>
* lto.c (do_stream_out): Free LTO file filename string.
diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c
index 99d58cff4d4..a7d5e450ea0 100644
--- a/gcc/lto/lto.c
+++ b/gcc/lto/lto.c
@@ -1162,6 +1162,8 @@ compare_tree_sccs_1 (tree t1, tree t2, tree **map)
}
else if (code == ARRAY_TYPE)
compare_values (TYPE_NONALIASED_COMPONENT);
+ if (AGGREGATE_TYPE_P (t1))
+ compare_values (TYPE_TYPELESS_STORAGE);
compare_values (TYPE_PACKED);
compare_values (TYPE_RESTRICT);
compare_values (TYPE_USER_ALIGN);
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 253dc856374..22772ba2891 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -1857,9 +1857,11 @@ scan_omp_task (gimple_stmt_iterator *gsi, omp_context *outer_ctx)
tree name, t;
gomp_task *stmt = as_a <gomp_task *> (gsi_stmt (*gsi));
- /* Ignore task directives with empty bodies. */
+ /* Ignore task directives with empty bodies, unless they have depend
+ clause. */
if (optimize > 0
- && empty_body_p (gimple_omp_body (stmt)))
+ && empty_body_p (gimple_omp_body (stmt))
+ && !omp_find_clause (gimple_omp_task_clauses (stmt), OMP_CLAUSE_DEPEND))
{
gsi_replace (gsi, gimple_build_nop (), false);
return;
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 1afd593ae15..48e37f8bb40 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -4258,12 +4258,15 @@ emit_conditional_move (rtx target, enum rtx_code code, rtx op0, rtx op1,
if (cmode == VOIDmode)
cmode = GET_MODE (op0);
+ enum rtx_code orig_code = code;
+ bool swapped = false;
if (swap_commutative_operands_p (op2, op3)
&& ((reversed = reversed_comparison_code_parts (code, op0, op1, NULL))
!= UNKNOWN))
{
std::swap (op2, op3);
code = reversed;
+ swapped = true;
}
if (mode == VOIDmode)
@@ -4272,45 +4275,62 @@ emit_conditional_move (rtx target, enum rtx_code code, rtx op0, rtx op1,
icode = direct_optab_handler (movcc_optab, mode);
if (icode == CODE_FOR_nothing)
- return 0;
+ return NULL_RTX;
if (!target)
target = gen_reg_rtx (mode);
- code = unsignedp ? unsigned_condition (code) : code;
- comparison = simplify_gen_relational (code, VOIDmode, cmode, op0, op1);
-
- /* We can get const0_rtx or const_true_rtx in some circumstances. Just
- return NULL and let the caller figure out how best to deal with this
- situation. */
- if (!COMPARISON_P (comparison))
- return NULL_RTX;
-
- saved_pending_stack_adjust save;
- save_pending_stack_adjust (&save);
- last = get_last_insn ();
- do_pending_stack_adjust ();
- prepare_cmp_insn (XEXP (comparison, 0), XEXP (comparison, 1),
- GET_CODE (comparison), NULL_RTX, unsignedp, OPTAB_WIDEN,
- &comparison, &cmode);
- if (comparison)
+ for (int pass = 0; ; pass++)
{
- struct expand_operand ops[4];
+ code = unsignedp ? unsigned_condition (code) : code;
+ comparison = simplify_gen_relational (code, VOIDmode, cmode, op0, op1);
- create_output_operand (&ops[0], target, mode);
- create_fixed_operand (&ops[1], comparison);
- create_input_operand (&ops[2], op2, mode);
- create_input_operand (&ops[3], op3, mode);
- if (maybe_expand_insn (icode, 4, ops))
+ /* We can get const0_rtx or const_true_rtx in some circumstances. Just
+ punt and let the caller figure out how best to deal with this
+ situation. */
+ if (COMPARISON_P (comparison))
{
- if (ops[0].value != target)
- convert_move (target, ops[0].value, false);
- return target;
+ saved_pending_stack_adjust save;
+ save_pending_stack_adjust (&save);
+ last = get_last_insn ();
+ do_pending_stack_adjust ();
+ prepare_cmp_insn (XEXP (comparison, 0), XEXP (comparison, 1),
+ GET_CODE (comparison), NULL_RTX, unsignedp,
+ OPTAB_WIDEN, &comparison, &cmode);
+ if (comparison)
+ {
+ struct expand_operand ops[4];
+
+ create_output_operand (&ops[0], target, mode);
+ create_fixed_operand (&ops[1], comparison);
+ create_input_operand (&ops[2], op2, mode);
+ create_input_operand (&ops[3], op3, mode);
+ if (maybe_expand_insn (icode, 4, ops))
+ {
+ if (ops[0].value != target)
+ convert_move (target, ops[0].value, false);
+ return target;
+ }
+ }
+ delete_insns_since (last);
+ restore_pending_stack_adjust (&save);
}
+
+ if (pass == 1)
+ return NULL_RTX;
+
+ /* If the preferred op2/op3 order is not usable, retry with other
+ operand order, perhaps it will expand successfully. */
+ if (swapped)
+ code = orig_code;
+ else if ((reversed = reversed_comparison_code_parts (orig_code, op0, op1,
+ NULL))
+ != UNKNOWN)
+ code = reversed;
+ else
+ return NULL_RTX;
+ std::swap (op2, op3);
}
- delete_insns_since (last);
- restore_pending_stack_adjust (&save);
- return NULL_RTX;
}
diff --git a/gcc/regcprop.c b/gcc/regcprop.c
index ddc6252f53a..367d85a7e24 100644
--- a/gcc/regcprop.c
+++ b/gcc/regcprop.c
@@ -396,6 +396,13 @@ maybe_mode_change (machine_mode orig_mode, machine_mode copy_mode,
&& GET_MODE_SIZE (copy_mode) < GET_MODE_SIZE (new_mode))
return NULL_RTX;
+ /* Avoid creating multiple copies of the stack pointer. Some ports
+ assume there is one and only one stack pointer.
+
+ It's unclear if we need to do the same for other special registers. */
+ if (regno == STACK_POINTER_REGNUM)
+ return NULL_RTX;
+
if (orig_mode == new_mode)
return gen_raw_REG (new_mode, regno);
else if (mode_change_ok (orig_mode, new_mode, regno))
diff --git a/gcc/reload1.c b/gcc/reload1.c
index c1ce7caeca9..4dc118ef9f3 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -2831,6 +2831,8 @@ eliminate_regs_1 (rtx x, machine_mode mem_mode, rtx insn,
|| x_size == new_size)
)
return adjust_address_nv (new_rtx, GET_MODE (x), SUBREG_BYTE (x));
+ else if (insn && GET_CODE (insn) == DEBUG_INSN)
+ return gen_rtx_raw_SUBREG (GET_MODE (x), new_rtx, SUBREG_BYTE (x));
else
return gen_rtx_SUBREG (GET_MODE (x), new_rtx, SUBREG_BYTE (x));
}
diff --git a/gcc/sancov.c b/gcc/sancov.c
index b4d5cc58e7e..1651989ea24 100644
--- a/gcc/sancov.c
+++ b/gcc/sancov.c
@@ -46,7 +46,7 @@ sancov_pass (function *fun)
basic_block bb;
FOR_EACH_BB_FN (bb, fun)
{
- gimple_stmt_iterator gsi = gsi_after_labels (bb);
+ gimple_stmt_iterator gsi = gsi_start_nondebug_after_labels_bb (bb);
if (gsi_end_p (gsi))
continue;
gimple *stmt = gsi_stmt (gsi);
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index cff7e4d3e3f..ce632aeabb8 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -932,8 +932,10 @@ simplify_unary_operation_1 (enum rtx_code code, machine_mode mode, rtx op)
&& XEXP (op, 1) == constm1_rtx)
return simplify_gen_unary (NEG, mode, XEXP (op, 0), mode);
- /* Similarly, (not (neg X)) is (plus X -1). */
- if (GET_CODE (op) == NEG)
+ /* Similarly, (not (neg X)) is (plus X -1). Only do this for
+ modes that have CONSTM1_RTX, i.e. MODE_INT, MODE_PARTIAL_INT
+ and MODE_VECTOR_INT. */
+ if (GET_CODE (op) == NEG && CONSTM1_RTX (mode))
return simplify_gen_binary (PLUS, mode, XEXP (op, 0),
CONSTM1_RTX (mode));
@@ -2739,8 +2741,8 @@ simplify_binary_operation_1 (enum rtx_code code, machine_mode mode,
&& CONST_INT_P (XEXP (op0, 1))
&& INTVAL (XEXP (op0, 1)) < HOST_BITS_PER_WIDE_INT)
{
- int count = INTVAL (XEXP (op0, 1));
- HOST_WIDE_INT mask = INTVAL (trueop1) << count;
+ int count = INTVAL (XEXP (op0, 1));
+ HOST_WIDE_INT mask = UINTVAL (trueop1) << count;
if (mask >> count == INTVAL (trueop1)
&& trunc_int_for_mode (mask, mode) == mask
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index d0beebf0686..10e9a324940 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -1091,6 +1091,10 @@ place_union_field (record_layout_info rli, tree field)
if (TREE_CODE (TREE_TYPE (field)) == ERROR_MARK)
return;
+ if (AGGREGATE_TYPE_P (TREE_TYPE (field))
+ && TYPE_TYPELESS_STORAGE (TREE_TYPE (field)))
+ TYPE_TYPELESS_STORAGE (rli->t) = 1;
+
/* We assume the union's size will be a multiple of a byte so we don't
bother with BITPOS. */
if (TREE_CODE (rli->t) == UNION_TYPE)
@@ -1168,6 +1172,10 @@ place_field (record_layout_info rli, tree field)
return;
}
+ if (AGGREGATE_TYPE_P (type)
+ && TYPE_TYPELESS_STORAGE (type))
+ TYPE_TYPELESS_STORAGE (rli->t) = 1;
+
/* Work out the known alignment so far. Note that A & (-A) is the
value of the least-significant bit in A that is one. */
if (! integer_zerop (rli->bitpos))
@@ -2340,6 +2348,8 @@ layout_type (tree type)
SET_TYPE_MODE (type, BLKmode);
}
}
+ if (AGGREGATE_TYPE_P (element))
+ TYPE_TYPELESS_STORAGE (type) = TYPE_TYPELESS_STORAGE (element);
/* When the element size is constant, check that it is at least as
large as the element alignment. */
if (TYPE_SIZE_UNIT (element)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f71cb1a30aa..8f2cfffd999 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,877 @@
+2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
+ Jeff Law <law@redhat.com>
+
+ * gcc.c-torture/compile/20170419-1.c: New test.
+
+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.
+
+2017-04-18 Jeff Law <law@redhat.com>
+
+ PR target/74563
+ * gcc.target/mips/pr74563: New test.
+
+2017-04-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/80443
+ * gcc.c-torture/compile/pr80443.c: New test.
+
+2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR rtl-optimization/80357
+ * gcc.c-torture/compile/pr80357.c: New test.
+
+2017-04-18 Jeff Law <law@redhat.com>
+
+ PR middle-end/80422
+ * gcc.c-torture/compile/pr80422.c: New test.
+
+2017-04-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/80263
+ * gcc.dg/debug/dwarf2/pr80263.c: New test.
+
+2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/80099
+ * gcc.target/powerpc/pr80099-1.c: New test.
+ * gcc.target/powerpc/pr80099-2.c: Likewise.
+ * gcc.target/powerpc/pr80099-3.c: Likewise.
+ * gcc.target/powerpc/pr80099-4.c: Likewise.
+ * gcc.target/powerpc/pr80099-5.c: Likewise.
+
+2017-04-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/80444
+ * gcc.dg/sancov/pr80444.c: New test.
+
+ PR middle-end/79788
+ PR middle-end/80375
+ * gcc.dg/pr79788-1.c: New test.
+ * gcc.dg/pr79788-2.c: New test.
+
+2017-04-18 Marek Polacek <polacek@redhat.com>
+
+ PR c++/80244 - ICE with attribute in template alias.
+ * g++.dg/cpp0x/alias-decl-59.C: New test.
+
+ PR c++/80241 - ICE with alignas pack expansion.
+ * g++.dg/cpp0x/alignas11.C: New test.
+
+2017-04-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ PR c++/80287
+ * g++.dg/lto/pr80287_0.C: New test.
+
+2017-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
+
+ PR target/80315
+ * gcc.target/powerpc/pr80315-1.c: New test.
+ * gcc.target/powerpc/pr80315-2.c: New test.
+ * gcc.target/powerpc/pr80315-3.c: New test.
+ * gcc.target/powerpc/pr80315-4.c: New test.
+
+2017-04-16 Tom de Vries <tom@codesourcery.com>
+
+ * g++.dg/parse/error11.C: Remove braces around line number in dejagnu
+ directive.
+ * g++.dg/parse/error3.C: Same.
+ * g++.old-deja/g++.pt/niklas01a.C: Same.
+ * gcc.dg/990506-0.c: Same.
+ * gcc.dg/cpp/19990413-1.c: Same.
+ * gcc.dg/cpp/pragma-1.c: Same.
+ * gcc.dg/cpp/pragma-2.c: Same.
+ * gcc.dg/m-un-2.c: Same.
+ * objc.dg/private-1.m: Same.
+
+2017-04-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.dg/pr54669.c: Fix dg-do directive.
+ * gcc.dg/pr78582.c: Ditto.
+ * gcc.dg/pr80020.c: Ditto.
+ * gcc.dg/torture/pr57993-2.cpp: Ditto.
+ * gcc.dg/tree-ssa/builtin-sprintf-3.c: Ditto.
+ * gcc.dg/tree-ssa/builtin-sprintf-4.c: Ditto.
+ * gcc.dg/tree-ssa/builtin-sprintf-5.c: Ditto.
+ * gcc.dg/tree-ssa/builtin-sprintf-6.c: Ditto.
+ * gcc.dg/tree-ssa/builtin-sprintf-warn-5.c: Ditto.
+ * gcc.dg/tree-ssa/pr79327-2.c: Ditto.
+ * gcc.dg/tree-ssa/pr79352.c: Ditto.
+ * gcc.dg/tree-ssa/pr79376.c: Ditto.
+ * gcc.dg/tree-ssa/pr79691.c: Ditto.
+
+2017-04-15 Dominique d'Humieres <dominiq@lps.ens.fr>
+
+ * gfortran.dg/deferred_character_3.f90: Fix dg-do directive.
+ * gfortran.dg/generic_29.f90: Likewise.
+ * gfortran.dg/goacc/multi-clause.f90: Likewise.
+ * gfortran.dg/pr41922.f90: Likewise.
+ * gfortran.dg/pr70006.f90: Likewise.
+
+2017-04-15 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR tree-optimization/66612
+ * gcc.target/powerpc/20050830-1.c: Remove xfail.
+
+2017-04-14 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/80361
+ * gfortran.dg/class_62.f90: New test case.
+
+2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gcc.target/arc/loop-1.c: New file.
+
+2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/80098
+ * gcc.target/powerpc/pr80098-1.c: New test.
+ * gcc.target/powerpc/pr80098-2.c: Likewise.
+ * gcc.target/powerpc/pr80098-3.c: Likewise.
+ * gcc.target/powerpc/pr80098-4.c: Likewise.
+
+2017-04-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/80403
+ * g++.dg/ubsan/pr80403-2.C: New test.
+
+2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/80343
+ * gcc.target/powerpc/pr80343.c: New.
+
+2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
+
+ PR sanitizer/80414
+ * c-c++-common/ubsan/bounds-15.c: New test.
+
+2017-04-13 Richard Biener <rguenther@suse.de>
+
+ PR testsuite/80416
+ * g++.dg/torture/pr79671.C: Fix asm constraints.
+
+2017-04-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/80321
+ * gcc.dg/debug/pr80321.c: New test.
+
+2017-04-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/debug10.adb: New test.
+ * gnat.dg/debug10_pkg.ads: New helper.
+
+2017-04-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/79390
+ * gcc.target/i386/pr70465-2.c: Xfail the scan-assembler-not test.
+
+ PR sanitizer/80403
+ PR sanitizer/80404
+ PR sanitizer/80405
+ * g++.dg/ubsan/pr80403.C: New test.
+ * g++.dg/ubsan/pr80404.C: New test.
+ * g++.dg/ubsan/pr80405.C: New test.
+
+ PR c/80163
+ * gcc.dg/torture/pr80163.c: New test.
+
+2017-04-12 Richard Biener <rguenther@suse.de>
+ Jeff Law <law@redhat.com>
+
+ PR tree-optimization/80359
+ * gcc.dg/torture/pr80359.c: New testcase.
+
+2017-04-12 Richard Biener <rguenther@suse.de>
+ Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ PR middle-end/79671
+ * g++.dg/torture/pr79671.C: New testcase.
+ * g++.dg/lto/pr79671_0.C: Likewise.
+ * g++.dg/lto/pr79671_1.c: Likewise.
+
+2017-04-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/80349
+ * g++.dg/ubsan/pr80349.C: New test.
+
+2017-04-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/80370
+ * g++.dg/cpp1z/decomp28.C: New test.
+
+ PR middle-end/80100
+ * gcc.dg/pr80100.c: New test.
+
+ PR rtl-optimization/80385
+ * g++.dg/opt/pr80385.C: New test.
+
+2017-04-11 Martin Liska <mliska@suse.cz>
+
+ PR ipa/80212
+ * g++.dg/ipa/pr80212.C: New test.
+
+2017-04-11 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/80364
+ * gcc.dg/tree-ssa/builtin-sprintf-warn-16.c: New test.
+
+2017-04-11 Martin Liska <mliska@suse.cz>
+
+ PR sanitizer/70878
+ * gcc.dg/ubsan/pr70878.c: New test.
+
+2017-04-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/80381
+ * gcc.target/i386/pr80381.c: New test.
+
+ PR c++/80363
+ * g++.dg/ext/pr80363.C: New test.
+
+2017-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
+
+ * gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: Require double64plus.
+ * gcc.dg/tree-ssa/builtin-sprintf-warn-3.c (void test_too_large):
+ Add avr-*-* to non-lp64 selector.
+
+2017-04-10 Martin Sebor <msebor@redhat.com>
+
+ * gcc.dg/pr40340-3.c: Adjust directive pattern.
+ * gcc.dg/pr40340-4.c: Same.
+
+2017-04-10 Nicolas Koenig <koenigni@student.ethz.ch>
+
+ PR fortran/69498
+ * gfortran.dg/submodule_unexp.f90: Modified test
+ to account for new error.
+ * gfortran.dg/submodule_twice.f90: New Test
+
+2017-04-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/80176
+ * g++.dg/init/ref23.C: New test.
+
+2017-04-10 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR tree-optimization/80304
+ * gfortran.dg/do_concurrent_4.f90: New test case.
+
+2017-04-10 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/80046
+ * gfortran.dg/proc_ptr_comp_48.f90: New test case.
+
+2017-04-10 David Edelsohn <dje.gcc@gmail.com>
+
+ * g++.dg/torture/pr79905.C: Add -maltivec option.
+
+2017-04-10 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/80374
+ * g++.dg/pr80374.c: New test.
+
+2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
+
+ PR target/80108
+ * gcc.target/powerpc/ppc-fortran/ppc-fortran.exp: New file.
+ * gcc.target/powerpc/ppc-fortran/pr80108-1.f90: New test.
+
+2017-04-10 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.dg/unroll-7.c: Declare "a" as a pointer to external array.
+
+2017-04-10 Uros Bizjak <ubizjak@gmail.com>
+
+ PR testsuite/79356
+ * gcc.dg/attr-alloc_size-11.c: Don't xfail on alpha.
+
+2017-04-10 Daniel Santos <daniel.santos@pobox.com>
+
+ PR testsuite/79867
+ * lib/target-libpath.exp: Merge in cygwin fix from libffi.
+
+2017-04-10 Marek Polacek <polacek@redhat.com>
+
+ PR sanitizer/80348
+ * g++.dg/ubsan/div-by-zero-3.C: New test.
+
+2017-04-10 Bin Cheng <bin.cheng@arm.com>
+
+ PR tree-optimization/80153
+ * gcc.c-torture/execute/pr80153.c: New.
+
2017-04-10 Richard Biener <rguenther@suse.de>
PR middle-end/80362
@@ -185,7 +1059,7 @@
* gcc.target/arm/small-multiply-m1-2.c: Likewise.
* gcc.target/arm/small-multiply-m1-3.c: Likewise.
-2017-04-04 Nicolas Koenig <koenigni@student.ethz.ch>
+2017-04-04 Nicolas Koenig <koenigni@student.ethz.ch>
PR fortran/69498
* gfortran.dg/submodule_unexp.f90: New test.
@@ -284,11 +1158,11 @@
* gcc.dg/uninit-pred-8_b.c: Reenable DOM.
2017-03-31 Richard Biener <rguenther@suse.de>
-
+
* gcc.dg/tree-ssa/pr71347.c: Put back XFAIL on sparc.
2017-03-31 Richard Biener <rguenther@suse.de>
-
+
* gcc.dg/tree-ssa/pr71347.c: Put back XFAIL.
2017-03-31 Jakub Jelinek <jakub@redhat.com>
@@ -485,7 +1359,7 @@
2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
- * testsuite/gcc.target/arc/interrupt-4.c: New file.
+ * gcc.target/arc/interrupt-4.c: New file.
2017-03-27 Richard Biener <rguenther@suse.de>
@@ -702,7 +1576,7 @@
* gcc.c-torture/compile/pr71436.c: New test.
2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
- Richard Biener <rguenther@suse.de>
+ Richard Biener <rguenther@suse.de>
PR tree-optimization/79908
PR tree-optimization/80136
@@ -767,7 +1641,7 @@
* gfortran.dg/unexp_attribute.f90: New test
2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
- Richard Biener <rguenther@suse.de>
+ Richard Biener <rguenther@suse.de>
PR tree-optimization/79908
* gcc.dg/torture/pr79908.c: New file.
@@ -971,11 +1845,11 @@
2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
- * testsuite/gcc.target/arc/bitfield.c: New file.
+ * gcc.target/arc/bitfield.c: New file.
2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
- * testsuite/gcc.target/arc/pr9001090948.c: New file.
+ * gcc.target/arc/pr9001090948.c: New file.
2017-03-11 Segher Boessenkool <segher@kernel.crashing.org>
@@ -1304,7 +2178,7 @@
* g++.dg/tm/pr70266.C: New.
2017-03-05 Andre Vehreschild <vehre@gcc.gnu.org>
- Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
+ Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
* gfortran.dg/coarray/fail_image_1.f08: New test.
* gfortran.dg/coarray/fail_image_2.f08: New test.
diff --git a/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-6.c b/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-6.c
index 8364c1b670b..5b6ac30c27b 100644
--- a/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-6.c
+++ b/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-6.c
@@ -117,11 +117,11 @@ L1:
switch (i)
{
case 1:
- { /* { dg-warning "statement may fall through" "" { target c } 120 } */
+ { /* { dg-warning "statement may fall through" "" { target c } . } */
int j = 0;
bar (j);
if (j == 8)
- return; /* { dg-warning "statement may fall through" "" { target c++ } 124 } */
+ return; /* { dg-warning "statement may fall through" "" { target c++ } . } */
}
case 2:
bar (99);
@@ -145,13 +145,13 @@ L1:
switch (i)
{
case 1:
- { /* { dg-warning "statement may fall through" "" { target c } 148 } */
+ { /* { dg-warning "statement may fall through" "" { target c } . } */
int j = 0;
bar (j);
if (j == 8)
bar (1);
else
- return; /* { dg-warning "statement may fall through" "" { target c++ } 154 } */
+ return; /* { dg-warning "statement may fall through" "" { target c++ } . } */
}
case 2:
bar (99);
@@ -175,13 +175,13 @@ L1:
switch (i)
{
case 1:
- { /* { dg-warning "statement may fall through" "" { target c } 178 } */
+ { /* { dg-warning "statement may fall through" "" { target c } . } */
int j = 0;
bar (j);
if (j == 8)
bar (1);
else
- bar (2); /* { dg-warning "statement may fall through" "" { target c++ } 184 } */
+ bar (2); /* { dg-warning "statement may fall through" "" { target c++ } . } */
}
case 2:
bar (99);
@@ -279,9 +279,9 @@ L1:
switch (i)
{
case 1:
- { /* { dg-warning "statement may fall through" "" { target c } 282 } */
+ { /* { dg-warning "statement may fall through" "" { target c } . } */
int j = 9;
- switch (j); /* { dg-warning "statement may fall through" "" { target c++ } 284 } */
+ switch (j); /* { dg-warning "statement may fall through" "" { target c++ } . } */
}
case 2:
bar (99);
diff --git a/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-7.c b/gcc/testsuite/c-c++-common/Wimplicit-fallthrough-7.c
index e03b09b3e5d..df8ae35ad47 100644
--- 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 } 24 } */
- int a[i]; /* { dg-warning "statement may fall through" "" { target c++ } 25 } */
+ { /* { dg-warning "statement may fall through" "" { target c } . } */
+ int a[i]; /* { dg-warning "statement may fall through" "" { target c++ } . } */
}
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 } 34 } */
- map[j] = j; /* { dg-warning "statement may fall through" "" { target c++ } 35 } */
+ for (int j = 0; j < 10; j++) /* { dg-warning "statement may fall through" "" { target c } . } */
+ map[j] = j; /* { dg-warning "statement may fall through" "" { target c++ } . } */
case 2:
bar (99);
}
diff --git a/gcc/testsuite/c-c++-common/Wint-to-pointer-cast-3.c b/gcc/testsuite/c-c++-common/Wint-to-pointer-cast-3.c
index 052ab3727fc..8df4e1fa4ae 100644
--- a/gcc/testsuite/c-c++-common/Wint-to-pointer-cast-3.c
+++ b/gcc/testsuite/c-c++-common/Wint-to-pointer-cast-3.c
@@ -17,6 +17,6 @@ char
g (void)
{
return (char) p;
-/* { dg-warning "cast from pointer to integer of different size" "" { target c } 19 } */
-/* { dg-error "cast from 'void\\*' to 'char' loses precision" "" { target c++ } 19 } */
+/* { dg-warning "cast from pointer to integer of different size" "" { target c } .-1 } */
+/* { dg-error "cast from 'void\\*' to 'char' loses precision" "" { target c++ } .-2 } */
}
diff --git a/gcc/testsuite/c-c++-common/attr-fallthrough-2.c b/gcc/testsuite/c-c++-common/attr-fallthrough-2.c
index 959564bca9f..e8659e572ca 100644
--- a/gcc/testsuite/c-c++-common/attr-fallthrough-2.c
+++ b/gcc/testsuite/c-c++-common/attr-fallthrough-2.c
@@ -11,21 +11,21 @@ fn (int i)
case 1:
bar (1);
__attribute__((used));
- /* { dg-warning "empty declaration" "" { target c } 13 } */
- /* { dg-warning "ignored" "" { target c++ } 13 } */
+ /* { dg-warning "empty declaration" "" { target c } .-1 } */
+ /* { dg-warning "ignored" "" { target c++ } .-2 } */
case 2:
bar (1);
__attribute__((foo));
- /* { dg-warning "empty declaration" "" { target c } 18 } */
- /* { dg-warning "ignored" "" { target c++ } 18 } */
+ /* { dg-warning "empty declaration" "" { target c } .-1 } */
+ /* { dg-warning "ignored" "" { target c++ } .-2 } */
case 3:
bar (1);
__attribute__((fallthrough)) /* { dg-warning "not followed" "" { target c } } */
case 4: /* { dg-error "expected" } */
bar (1);
__attribute__((fallthrough)) 1;
- /* { dg-error "expected" "" { target c } 26 } */
- /* { dg-warning "not followed" "" { target *-*-* } 26 } */
+ /* { dg-error "expected" "" { target c } .-1 } */
+ /* { dg-warning "not followed" "" { target *-*-* } .-2 } */
case 5:
bar (1);
__attribute__((fallthrough)) int i; /* { dg-warning "ignored|not followed" } */
@@ -40,7 +40,7 @@ fn (int i)
__attribute__((fallthrough));
case 9:
__attribute__((fallthrough));
- /* { dg-warning "not preceding" "" { target *-*-* } 42 } */
+ /* { dg-warning "not preceding" "" { target *-*-* } .-1 } */
bar (1);
case 10:
bar (1);
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors2.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors2.c
index 4314090f426..2bb91343a79 100644
--- a/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors2.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors2.c
@@ -6,7 +6,7 @@ int main (void)
int array[10][10], array2[10];
array2[:] = array2[1:2:] ; /* { dg-error "expected expression before" "" { target c } } */
- /* { dg-error "expected primary-expression before" "" { target c++ } 8 } */
+ /* { dg-error "expected primary-expression before" "" { target c++ } .-1 } */
return 0; /* { dg-error "expected ';' before" "" { target c } } */
}
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors3.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors3.c
index 47b59798674..9270007050e 100644
--- a/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors3.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/parser_errors3.c
@@ -6,7 +6,7 @@ int main (void)
int array[10][10], array2[10];
array2[:] = array2[1: :] ; /* { dg-error "expected expression before" "" { target c } } */
- /* { dg-error "expected primary-expression before" "" { target c++ } 8 } */
+ /* { dg-error "expected primary-expression before" "" { target c++ } .-1 } */
return 0; /* { dg-error "expected ';' before" "" { target c } } */
}
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/pr61191.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr61191.c
index deb83921833..a9a9d6601bc 100644
--- a/gcc/testsuite/c-c++-common/cilk-plus/AN/pr61191.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr61191.c
@@ -5,6 +5,6 @@
double f(double * A, double * B)
{
return __sec_reduce_add((B[0:500])(; /* { dg-error "called object" "" { target c } } */
-/* { dg-error "expected expression before ';' token" "" { target c } 7 } */
-/* { dg-error "expected primary-expression before ';' token" "" { target c++ } 7 } */
+/* { dg-error "expected expression before ';' token" "" { target c } .-1 } */
+/* { dg-error "expected primary-expression before ';' token" "" { target c++ } .-2 } */
} /* { dg-error "expected" "" { target c } } */
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/pr61963.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr61963.c
index dfa713c4df2..5f1abd96917 100644
--- a/gcc/testsuite/c-c++-common/cilk-plus/AN/pr61963.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr61963.c
@@ -4,6 +4,6 @@
void f (int * int *a) /* { dg-error "expected" } */
{
- a[0:64] = 0; /* { dg-error "was not declared" "" { target c++ } 7 } */
+ a[0:64] = 0; /* { dg-error "was not declared" "" { target c++ } . } */
a[0:64] = 0;
}
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/pr62008.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr62008.c
index 05734c56017..eec57dc0359 100644
--- a/gcc/testsuite/c-c++-common/cilk-plus/AN/pr62008.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/pr62008.c
@@ -6,5 +6,5 @@ void f(int *a, int w, int h)
{
int tmp[w][h];
tmp[:][:] = a[0:w][0:h]; /* { dg-error "base of array section must be pointer or array type" } */
- /* { dg-error "start-index and length fields necessary" "" { target c } 8 } */
+ /* { dg-error "start-index and length fields necessary" "" { target c } .-1 } */
}
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c
index eb3c1f1d685..29dee807396 100644
--- a/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/rank_mismatch.c
@@ -10,7 +10,7 @@ int main (void)
int array[10][10], array2[10];
array[:][:] = array[:]; /* { dg-error "rank mismatch between" } */
- /* { dg-error "invalid conversion" "" { target c++ } 12 } */
+ /* { dg-error "invalid conversion" "" { target c++ } .-1 } */
x = array2[:]; /* { dg-error "cannot be scalar when" } */
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk_for_errors.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk_for_errors.c
index 60a9e7dbf36..ca080c8f27a 100644
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk_for_errors.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk_for_errors.c
@@ -8,7 +8,7 @@ int main (void)
int q = 0, ii = 0, jj = 0;
_Cilk_for (int ii; ii < 10; ii++) /* { dg-error "is not initialized" "" { target c } } */
- /* { dg-error "expected" "" { target c++ } 10 } */
+ /* { dg-error "expected" "" { target c++ } .-1 } */
q = 5;
_Cilk_for (; ii < 10; ii++) /* { dg-error "expected iteration declaration" } */
@@ -18,7 +18,7 @@ int main (void)
q = 2;
_Cilk_for (int ii = 0; ii < 10, jj < 10; ii++) /* { dg-error "expected ';' before ',' token" "" { target c } } */
- /* { dg-error "invalid controlling predicate" "" { target c++ } 20 } */
+ /* { dg-error "invalid controlling predicate" "" { target c++ } .-1 } */
q = 5;
_Cilk_for (int ii = 0; ii < 10; ) /* { dg-error "missing increment" } */
@@ -46,7 +46,7 @@ int main (void)
q = 5;
_Cilk_for (int ii; ii < 10; ii++) /* { dg-error "is not initialized" "" { target c } } */
- /* { dg-error "expected" "" { target c++ } 48 } */
+ /* { dg-error "expected" "" { target c++ } .-1 } */
q = 5;
return 0;
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/errors.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/errors.c
index ca2032c7c9a..b1e336e3328 100644
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/errors.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/errors.c
@@ -9,7 +9,7 @@ int check_spawn(int v)
/* XXX: no error in C++ */
;
if (v + _Cilk_spawn func_2()) /* { dg-error "cannot contain" "" { target c } } */
- /* { dg-error "invalid use" "" { target c++ } 11 } */
+ /* { dg-error "invalid use" "" { target c++ } .-1 } */
;
if (v, _Cilk_spawn func_2()) /* { dg-error "spawned function call cannot be part" } */
;
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/no_args_error.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/no_args_error.c
index 593732ef5ab..990f206ab09 100644
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/no_args_error.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/no_args_error.c
@@ -5,7 +5,7 @@ int spawn_1 ();
typedef int(*func) (int);
void check () {
- func var = spawn_1; /* { dg-error "invalid conversion from" "" { target c++ } 8 } */
+ func var = spawn_1; /* { dg-error "invalid conversion from" "" { target c++ } . } */
_Cilk_spawn var (); /* { dg-error "too few arguments to function" } */
}
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/PS/clauses1.c b/gcc/testsuite/c-c++-common/cilk-plus/PS/clauses1.c
index 27d117ec2f0..332e01cbdde 100644
--- a/gcc/testsuite/c-c++-common/cilk-plus/PS/clauses1.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/PS/clauses1.c
@@ -69,8 +69,8 @@ void foo()
a[i] = b[j];
#pragma simd linear(blah2, 36)
- /* { dg-error "'blah2' \(undeclared\|has not been\)" "undeclared" { target *-*-* } 71 } */
- /* { dg-error "expected" "expected" { target *-*-* } 71 } */
+ /* { dg-error "'blah2' \(undeclared\|has not been\)" "undeclared" { target *-*-* } .-1 } */
+ /* { dg-error "expected" "expected" { target *-*-* } .-2 } */
for (int i=0; i < 1000; ++i)
a[i] = b[j];
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/SE/vlength_errors.c b/gcc/testsuite/c-c++-common/cilk-plus/SE/vlength_errors.c
index 1bcf2a27ab9..88e4678552b 100644
--- a/gcc/testsuite/c-c++-common/cilk-plus/SE/vlength_errors.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/SE/vlength_errors.c
@@ -6,7 +6,7 @@
int z = Q;
__attribute__ ((vector (uniform(x), vectorlength (), linear (y:1) ))) /* { dg-error "expected expression" "" { target c } } */
- /* { dg-error "expected primary-expression" "" { target c++ } 8 } */
+ /* { dg-error "expected primary-expression" "" { target c++ } .-1 } */
int func2 (int x, int y)
{
int zq = 5;
@@ -21,7 +21,7 @@ int func3 (int x, int y)
}
__attribute__ ((vector (uniform(x), linear (y:1), vectorlength (z) ))) /* { dg-error "vectorlength must be an integer" "" { target c } } */
- /* { dg-error "constant" "" { target c++ } 23 } */
+ /* { dg-error "constant" "" { target c++ } .-1 } */
int func4 (int x, int y)
{
int zq = 5;
@@ -36,7 +36,7 @@ int func5 (int x, int y)
}
__attribute__ ((vector (uniform(x), vectorlength (z), linear (y:1)))) /* { dg-error "vectorlength must be an integer" "" { target c } } */
- /* { dg-error "constant" "" { target c++ } 38 } */
+ /* { dg-error "constant" "" { target c++ } .-1 } */
int func6 (int x, int y)
{
int zq = 5;
diff --git a/gcc/testsuite/c-c++-common/cpp/pr57580.c b/gcc/testsuite/c-c++-common/cpp/pr57580.c
index 1039e213e1c..e77462b20de 100644
--- a/gcc/testsuite/c-c++-common/cpp/pr57580.c
+++ b/gcc/testsuite/c-c++-common/cpp/pr57580.c
@@ -6,4 +6,4 @@
_Pragma("message(\"message0\")") \
_Pragma("message(\"message1\")")
MSG /* { dg-message "message0" } */
-/* { dg-message "message1" "" { target *-*-* } 8 } */
+/* { dg-message "message1" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/c-c++-common/goacc/asyncwait-1.c b/gcc/testsuite/c-c++-common/goacc/asyncwait-1.c
index ccc0106832a..e1840af5d70 100644
--- a/gcc/testsuite/c-c++-common/goacc/asyncwait-1.c
+++ b/gcc/testsuite/c-c++-common/goacc/asyncwait-1.c
@@ -52,16 +52,16 @@ f (int N, float *a, float *b)
}
#pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async (a)
- /* { dg-error "expected integer expression before" "" { target c } 54 } */
- /* { dg-error "'async' expression must be integral" "" { target c++ } 54 } */
+ /* { dg-error "expected integer expression before" "" { target c } .-1 } */
+ /* { dg-error "'async' expression must be integral" "" { target c++ } .-2 } */
{
for (ii = 0; ii < N; ii++)
b[ii] = a[ii];
}
#pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async (1.0)
- /* { dg-error "expected integer expression before" "" { target c } 62 } */
- /* { dg-error "'async' expression must be integral" "" { target c++ } 62 } */
+ /* { dg-error "expected integer expression before" "" { target c } .-1 } */
+ /* { dg-error "'async' expression must be integral" "" { target c++ } .-2 } */
{
for (ii = 0; ii < N; ii++)
b[ii] = a[ii];
@@ -116,7 +116,7 @@ f (int N, float *a, float *b)
}
#pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1 /* { dg-error "expected '\\\)' before end of line" } */
- /* { dg-error "expected integer expression before '\\\)'" "" { target c++ } 118 } */
+ /* { dg-error "expected integer expression before '\\\)'" "" { target c++ } .-1 } */
{
for (ii = 0; ii < N; ii++)
b[ii] = a[ii];
@@ -171,7 +171,7 @@ f (int N, float *a, float *b)
#pragma acc wait (1,2,,) /* { dg-error "expected (primary-|)expression before" } */
#pragma acc wait (1 /* { dg-error "expected '\\\)' before end of line" } */
- /* { dg-error "expected integer expression before '\\\)'" "" { target c++ } 173 } */
+ /* { dg-error "expected integer expression before '\\\)'" "" { target c++ } .-1 } */
#pragma acc wait (1,*) /* { dg-error "expected (primary-|)expression before" } */
@@ -204,10 +204,10 @@ f (int N, float *a, float *b)
#pragma acc wait async (*) /* { dg-error "expected (primary-|)expression before " } */
#pragma acc wait async (a)
- /* { dg-error "expected integer expression before" "" { target c } 206 } */
- /* { dg-error "expression must be integral" "" { target c++ } 206 } */
+ /* { dg-error "expected integer expression before" "" { target c } .-1 } */
+ /* { dg-error "expression must be integral" "" { target c++ } .-2 } */
#pragma acc wait async (1.0)
- /* { dg-error "expected integer expression before" "" { target c } 210 } */
- /* { dg-error "expression must be integral" "" { target c++ } 210 } */
+ /* { dg-error "expected integer expression before" "" { target c } .-1 } */
+ /* { dg-error "expression must be integral" "" { target c++ } .-2 } */
}
diff --git a/gcc/testsuite/c-c++-common/goacc/cache-2.c b/gcc/testsuite/c-c++-common/goacc/cache-2.c
index f7175157915..d1181d1b6e7 100644
--- a/gcc/testsuite/c-c++-common/goacc/cache-2.c
+++ b/gcc/testsuite/c-c++-common/goacc/cache-2.c
@@ -25,7 +25,7 @@ main (int argc, char **argv)
#pragma acc cache /* { dg-error "expected '\\\(' before end of line" } */
#pragma acc cache a[0:N] /* { dg-error "expected '\\\(' before 'a'" } */
- /* { dg-bogus "expected end of line before 'a'" "" { xfail c++ } 27 } */
+ /* { dg-bogus "expected end of line before 'a'" "" { xfail c++ } .-1 } */
#pragma acc cache (a) /* { dg-error "expected '\\\['" } */
#pragma acc cache ( /* { dg-error "expected (identifier|unqualified-id) before end of line" } */
#pragma acc cache () /* { dg-error "expected (identifier|unqualified-id) before '\\\)' token" } */
@@ -36,7 +36,7 @@ main (int argc, char **argv)
#pragma acc cache () /* { dg-error "expected (identifier|unqualified-id) before '\\\)' token" } */
#pragma acc cache (a[0:N] b[0:N]) /* { dg-error "expected '\\\)' before 'b'" } */
#pragma acc cache (a[0:N] b[0:N}) /* { dg-error "expected '\\\)' before 'b'" } */
- /* { dg-bogus "expected end of line before '\\\}' token" "" { xfail c++ } 38 } */
+ /* { dg-bogus "expected end of line before '\\\}' token" "" { xfail c++ } .-1 } */
#pragma acc cache (a[0:N] /* { dg-error "expected '\\\)' before end of line" } */
#pragma acc cache (a[0:N]) ( /* { dg-error "expected end of line before '\\(' token" } */
#pragma acc cache (a[0:N]) ii /* { dg-error "expected end of line before 'ii'" } */
diff --git a/gcc/testsuite/c-c++-common/goacc/declare-2.c b/gcc/testsuite/c-c++-common/goacc/declare-2.c
index d24cb2222da..e41a0f59537 100644
--- a/gcc/testsuite/c-c++-common/goacc/declare-2.c
+++ b/gcc/testsuite/c-c++-common/goacc/declare-2.c
@@ -4,7 +4,7 @@
#pragma acc declare /* { dg-error "no valid clauses" } */
#pragma acc declare create(undeclared) /* { dg-error "undeclared" } */
-/* { dg-error "no valid clauses" "second error" { target *-*-* } 6 } */
+/* { dg-error "no valid clauses" "second error" { target *-*-* } .-1 } */
int v0[10];
#pragma acc declare create(v0[1:3]) /* { dg-error "array section" } */
diff --git a/gcc/testsuite/c-c++-common/goacc/deviceptr-1.c b/gcc/testsuite/c-c++-common/goacc/deviceptr-1.c
index 3aa0e8a1153..21f8380a0de 100644
--- a/gcc/testsuite/c-c++-common/goacc/deviceptr-1.c
+++ b/gcc/testsuite/c-c++-common/goacc/deviceptr-1.c
@@ -11,24 +11,24 @@ fun1 (void)
#pragma acc data deviceptr(fun1) /* { dg-error "'fun1' is not a variable" } */
;
#pragma acc parallel deviceptr(fun1[2:5])
- /* { dg-error "'fun1' is not a variable" "not a variable" { target *-*-* } 13 } */
- /* { dg-error "expected '\\\)' before '\\\[' token" "array" { target *-*-* } 13 } */
+ /* { dg-error "'fun1' is not a variable" "not a variable" { target *-*-* } .-1 } */
+ /* { dg-error "expected '\\\)' before '\\\[' token" "array" { target *-*-* } .-2 } */
;
int i;
#pragma acc kernels deviceptr(i) /* { dg-error "'i' is not a pointer variable" } */
;
#pragma acc data deviceptr(i[0:4])
- /* { dg-error "'i' is not a pointer variable" "not a pointer variable" { target *-*-* } 21 } */
- /* { dg-error "expected '\\\)' before '\\\[' token" "array" { target *-*-* } 21 } */
+ /* { dg-error "'i' is not a pointer variable" "not a pointer variable" { target *-*-* } .-1 } */
+ /* { dg-error "expected '\\\)' before '\\\[' token" "array" { target *-*-* } .-2 } */
;
float fa[10];
#pragma acc parallel deviceptr(fa) /* { dg-error "'fa' is not a pointer variable" } */
;
#pragma acc kernels deviceptr(fa[1:5])
- /* { dg-error "'fa' is not a pointer variable" "not a pointer variable" { target *-*-* } 29 } */
- /* { dg-error "expected '\\\)' before '\\\[' token" "array" { target *-*-* } 29 } */
+ /* { dg-error "'fa' is not a pointer variable" "not a pointer variable" { target *-*-* } .-1 } */
+ /* { dg-error "expected '\\\)' before '\\\[' token" "array" { target *-*-* } .-2 } */
;
float *fp;
@@ -44,10 +44,10 @@ fun2 (void)
int i;
float *fp;
#pragma acc kernels deviceptr(fp,u,fun2,i,fp)
- /* { dg-error "'u' undeclared" "u undeclared" { target *-*-* } 46 } */
- /* { dg-error "'fun2' is not a variable" "fun2 not a variable" { target *-*-* } 46 } */
- /* { dg-error "'i' is not a pointer variable" "i not a pointer variable" { target *-*-* } 46 } */
- /* { dg-error "'fp' appears more than once in data clauses" "fp more than once" { target *-*-* } 46 } */
+ /* { dg-error "'u' undeclared" "u undeclared" { target *-*-* } .-1 } */
+ /* { dg-error "'fun2' is not a variable" "fun2 not a variable" { target *-*-* } .-2 } */
+ /* { dg-error "'i' is not a pointer variable" "i not a pointer variable" { target *-*-* } .-3 } */
+ /* { dg-error "'fp' appears more than once in data clauses" "fp more than once" { target *-*-* } .-4 } */
;
}
diff --git a/gcc/testsuite/c-c++-common/goacc/routine-5.c b/gcc/testsuite/c-c++-common/goacc/routine-5.c
index 17fe67cd298..b967a7447bd 100644
--- a/gcc/testsuite/c-c++-common/goacc/routine-5.c
+++ b/gcc/testsuite/c-c++-common/goacc/routine-5.c
@@ -9,8 +9,8 @@ struct PC
void PC1( /* { dg-bogus "variable or field .PC1. declared void" "TODO" { xfail c++ } } */
#pragma acc routine
- /* { dg-error ".#pragma acc routine. must be at file scope" "" { target c } 11 }
- { dg-error ".#pragma. is not allowed here" "" { target c++ } 11 } */
+ /* { dg-error ".#pragma acc routine. must be at file scope" "" { target c } .-1 }
+ { dg-error ".#pragma. is not allowed here" "" { target c++ } .-2 } */
) /* { dg-bogus "expected declaration specifiers or .\\.\\.\\.. before .\\). token" "TODO" { xfail c } } */
{
}
diff --git a/gcc/testsuite/c-c++-common/gomp/clauses-2.c b/gcc/testsuite/c-c++-common/gomp/clauses-2.c
index dff8bfebad5..9225773009c 100644
--- a/gcc/testsuite/c-c++-common/gomp/clauses-2.c
+++ b/gcc/testsuite/c-c++-common/gomp/clauses-2.c
@@ -49,5 +49,5 @@ foo (int *p, int q, struct S t, int i, int j, int k, int l)
#pragma omp target map (t.r) map (t) map (t.s[0]) firstprivate (t) /* { dg-error "appears both in data and map clauses" } */
bar (t.s);
#pragma omp target map (t) map (t.r) firstprivate (t) map (t.s[0]) /* { dg-error "appears both in data and map clauses" } */
- bar (t.s); /* { dg-error "appears more than once in map clauses" "" { target *-*-* } 51 } */
+ bar (t.s); /* { dg-error "appears more than once in map clauses" "" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/c-c++-common/gomp/ordered-3.c b/gcc/testsuite/c-c++-common/gomp/ordered-3.c
index 3c107232c0d..e7fd738f669 100644
--- a/gcc/testsuite/c-c++-common/gomp/ordered-3.c
+++ b/gcc/testsuite/c-c++-common/gomp/ordered-3.c
@@ -45,7 +45,7 @@ foo (void)
for (i = 0; i < 64; i++)
{
#pragma omp ordered threads, simd, threads, simd /* { dg-error "too many .threads. clauses" } */
- ; /* { dg-error "too many .simd. clauses" "" { target *-*-* } 47 } */
+ ; /* { dg-error "too many .simd. clauses" "" { target *-*-* } .-1 } */
}
#pragma omp for simd ordered(1) /* { dg-error ".ordered. clause with parameter may not be specified on .#pragma omp for simd. construct" } */
for (i = 0; i < 64; i++)
diff --git a/gcc/testsuite/c-c++-common/gomp/pr67501.c b/gcc/testsuite/c-c++-common/gomp/pr67501.c
index 8a7140faf28..515513588f0 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr67501.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr67501.c
@@ -7,6 +7,6 @@ foo (void)
{
int i, j;
#pragma omp for simd copyprivate(j /* { dg-error "before end of line" } */
- for (i = 0; i < 16; ++i) /* { dg-error "is not valid for" "" { target *-*-* } 9 } */
+ for (i = 0; i < 16; ++i) /* { dg-error "is not valid for" "" { target *-*-* } .-1 } */
;
}
diff --git a/gcc/testsuite/c-c++-common/pr20000.c b/gcc/testsuite/c-c++-common/pr20000.c
index 17aadd9a38b..63253926736 100644
--- a/gcc/testsuite/c-c++-common/pr20000.c
+++ b/gcc/testsuite/c-c++-common/pr20000.c
@@ -10,7 +10,7 @@ void h(void) __attribute__((noreturn));
int g(void) {
return 1; /* { dg-warning "function declared 'noreturn' has a 'return' statement" "has return" } */
-} /* { dg-warning "'noreturn' function does return" "does return" { target *-*-* } 12 } */
+} /* { dg-warning "'noreturn' function does return" "does return" { target *-*-* } .-1 } */
int g2(void) {
h();
@@ -24,8 +24,8 @@ int vg(void);
int vg2(void); /* { dg-bogus ".noreturn. function returns non-void value" } */
int vg(void) {
- return 1; /* { dg-warning "function declared 'noreturn' has a 'return' statement" "has return" { target c } 27 } */
-} /* { dg-warning "'noreturn' function does return" "does return" { target c } 27 } */
+ return 1; /* { dg-warning "function declared 'noreturn' has a 'return' statement" "has return" { target c } . } */
+} /* { dg-warning "'noreturn' function does return" "does return" { target c } .-1 } */
int vg2(void) {
h();
diff --git a/gcc/testsuite/c-c++-common/pr43395.c b/gcc/testsuite/c-c++-common/pr43395.c
index 92f048d53a6..2c30634f45f 100644
--- a/gcc/testsuite/c-c++-common/pr43395.c
+++ b/gcc/testsuite/c-c++-common/pr43395.c
@@ -6,7 +6,7 @@ foo (void)
{
lab:
return &&lab;
-/* { dg-warning "function returns address of label" "" { target c } 8 } */
+/* { dg-warning "function returns address of label" "" { target c } .-1 } */
/* { dg-warning "address of label" "" { target c++ } 7 } */
}
@@ -16,7 +16,7 @@ bar (void)
__label__ lab;
lab:
return &&lab;
-/* { dg-warning "function returns address of label" "" { target c } 18 } */
+/* { dg-warning "function returns address of label" "" { target c } .-1 } */
/* { dg-warning "address of label" "" { target c++ } 17 } */
}
@@ -25,6 +25,6 @@ baz (void)
{
int i;
return &i;
-/* { dg-warning "function returns address of local variable" "" { target c } 27 } */
+/* { dg-warning "function returns address of local variable" "" { target c } .-1 } */
/* { dg-warning "address of local variable" "" { target c++ } 26 } */
}
diff --git a/gcc/testsuite/c-c++-common/pr49706.c b/gcc/testsuite/c-c++-common/pr49706.c
index 56272add7da..027d8bfdac5 100644
--- a/gcc/testsuite/c-c++-common/pr49706.c
+++ b/gcc/testsuite/c-c++-common/pr49706.c
@@ -12,13 +12,13 @@ extern bool foo_b (void);
extern int foo_i (void);
#ifdef __cplusplus
-template <class T, class U> bool tfn1(T t, U u) { return (!t == u); } /* { dg-warning "logical not is only applied to the left hand side of comparison" "" { target c++ } 15 } */
+template <class T, class U> bool tfn1(T t, U u) { return (!t == u); } /* { dg-warning "logical not is only applied to the left hand side of comparison" "" { target c++ } . } */
template <class T, class U> bool tfn2(T t, U u) { return ((!t) == u); }
-template <class T, class U> bool tfn3(T t, U u) { return (!g(t) == u); } /* { dg-warning "logical not is only applied to the left hand side of comparison" "" { target c++ } 17 } */
+template <class T, class U> bool tfn3(T t, U u) { return (!g(t) == u); } /* { dg-warning "logical not is only applied to the left hand side of comparison" "" { target c++ } . } */
template <class T, class U> bool tfn4(T t, U u) { return ((!g(t)) == u); }
template <class T, class U> bool tfn5(T t, U u) { return (!!t == u); } /* { dg-bogus "logical not is only applied to the left hand side of comparison" } */
template <class T, class U> bool tfn6(T t, U u) { return (!!g(t) == u); } /* { dg-bogus "logical not is only applied to the left hand side of comparison" } */
-template <int N> bool tfn7(int i1, int i2) { return (!i1 == i2); } /* { dg-warning "logical not is only applied to the left hand side of comparison" "" { target c++ } 21 } */
+template <int N> bool tfn7(int i1, int i2) { return (!i1 == i2); } /* { dg-warning "logical not is only applied to the left hand side of comparison" "" { target c++ } . } */
#endif
void
diff --git a/gcc/testsuite/c-c++-common/pr77624-1.c b/gcc/testsuite/c-c++-common/pr77624-1.c
index f3c095649aa..3567e9b866f 100644
--- a/gcc/testsuite/c-c++-common/pr77624-1.c
+++ b/gcc/testsuite/c-c++-common/pr77624-1.c
@@ -5,10 +5,10 @@ int
foo (int a)
{
return __atomic_is_lock_free (2, a); /* { dg-warning "pointer from integer" "" { target c } } */
-} /* { dg-error "invalid conversion" "" { target c++ } 7 } */
+} /* { dg-error "invalid conversion" "" { target c++ } .-1 } */
int
bar (int a)
{
return __atomic_always_lock_free (2, a); /* { dg-warning "pointer from integer" "" { target c } } */
-} /* { dg-error "invalid conversion" "" { target c++ } 13 } */
+} /* { dg-error "invalid conversion" "" { target c++ } .-1 } */
diff --git a/gcc/testsuite/c-c++-common/pr77624-2.c b/gcc/testsuite/c-c++-common/pr77624-2.c
index 64d20e0eb6a..b8e805b42fe 100644
--- a/gcc/testsuite/c-c++-common/pr77624-2.c
+++ b/gcc/testsuite/c-c++-common/pr77624-2.c
@@ -8,8 +8,8 @@ foo (int *a)
__atomic_is_lock_free (2, a, 2); /* { dg-error "too many arguments" } */
__atomic_is_lock_free (2); /* { dg-error "too few arguments" } */
__atomic_is_lock_free (2, b); /* { dg-error "incompatible type" "" { target c } } */
- /* { dg-message "expected" "" { target c } 10 } */
- /* { dg-error "convert" "" { target c++ } 10 } */
+ /* { dg-message "expected" "" { target c } .-1 } */
+ /* { dg-error "convert" "" { target c++ } .-2 } */
__atomic_is_lock_free (2, 0);
}
@@ -20,7 +20,7 @@ bar (int *a)
__atomic_always_lock_free (2, a, 2); /* { dg-error "too many arguments" } */
__atomic_always_lock_free (2); /* { dg-error "too few arguments" } */
__atomic_always_lock_free (2, b); /* { dg-error "incompatible type" "" { target c } } */
- /* { dg-message "expected" "" { target c } 22 } */
- /* { dg-error "convert" "" { target c++ } 22 } */
+ /* { dg-message "expected" "" { target c } .-1 } */
+ /* { dg-error "convert" "" { target c++ } .-2 } */
__atomic_always_lock_free (2, 0);
}
diff --git a/gcc/testsuite/c-c++-common/raw-string-14.c b/gcc/testsuite/c-c++-common/raw-string-14.c
index 2253ffea3cc..b2e395c3f73 100644
--- a/gcc/testsuite/c-c++-common/raw-string-14.c
+++ b/gcc/testsuite/c-c++-common/raw-string-14.c
@@ -14,15 +14,15 @@ const void *s1 = R"??/
// { dg-warning "missing terminating" "missing" { target *-*-* } 10 }
// { dg-error "19:missing terminating" "missing" { target *-*-* } 10 }
const void *s2 = R"abcdefghijklmn??/(a)abcdefghijklmn???";
- // { dg-error "raw string delimiter longer" "longer" { target *-*-* } 16 }
- // { dg-error "stray" "stray" { target *-*-* } 16 }
- // { dg-error "expected" "expected" { target *-*-* } 16 }
+ // { dg-error "raw string delimiter longer" "longer" { target *-*-* } .-1 }
+ // { dg-error "stray" "stray" { target *-*-* } .-2 }
+ // { dg-error "expected" "expected" { target *-*-* } .-3 }
const void *s3 = R"abcdefghijklmno??/(a)abcdefghijklmno???";
- // { dg-error "raw string delimiter longer" "longer" { target *-*-* } 20 }
- // { dg-error "stray" "stray" { target *-*-* } 20 }
+ // { dg-error "raw string delimiter longer" "longer" { target *-*-* } .-1 }
+ // { dg-error "stray" "stray" { target *-*-* } .-2 }
const void *s4 = R"abcdefghijklmnop??=(a)abcdefghijklmnop??=";
- // { dg-error "raw string delimiter longer" "longer" { target *-*-* } 23 }
- // { dg-error "stray" "stray" { target *-*-* } 23 }
+ // { dg-error "raw string delimiter longer" "longer" { target *-*-* } .-1 }
+ // { dg-error "stray" "stray" { target *-*-* } .-2 }
const void *s5 = R"abc\
()abcdef";
// { dg-error "invalid character" "invalid" { target *-*-* } 26 }
diff --git a/gcc/testsuite/c-c++-common/raw-string-16.c b/gcc/testsuite/c-c++-common/raw-string-16.c
index c277fdaffc5..1185c0e377e 100644
--- a/gcc/testsuite/c-c++-common/raw-string-16.c
+++ b/gcc/testsuite/c-c++-common/raw-string-16.c
@@ -8,15 +8,15 @@ def()abcdef";
// { dg-error "invalid character" "invalid" { target *-*-* } 6 }
// { dg-error "stray" "stray" { target *-*-* } 6 }
const void *s1 = R"abcdefghijklmn??/(a)abcdefghijklmn???";
- // { dg-error "raw string delimiter longer" "longer" { target *-*-* } 10 }
- // { dg-error "stray" "stray" { target *-*-* } 10 }
+ // { dg-error "raw string delimiter longer" "longer" { target *-*-* } .-1 }
+ // { dg-error "stray" "stray" { target *-*-* } .-2 }
const void *s2 = R"abcdefghijklmno??/(a)abcdefghijklmno???";
- // { dg-error "raw string delimiter longer" "longer" { target *-*-* } 14 }
- // { dg-error "stray" "stray" { target *-*-* } 14 }
+ // { dg-error "raw string delimiter longer" "longer" { target *-*-* } .-1 }
+ // { dg-error "stray" "stray" { target *-*-* } .-2 }
const void *s3 = R"abcdefghijklmnop??=(a)abcdefghijklmnop??=?"; // { dg-warning "trigraph ..= ignored" }
- // { dg-error "raw string delimiter longer" "longer" { target *-*-* } 17 }
- // { dg-error "stray" "stray" { target *-*-* } 17 }
+ // { dg-error "raw string delimiter longer" "longer" { target *-*-* } .-1 }
+ // { dg-error "stray" "stray" { target *-*-* } .-2 }
const void *s4 = R"abc\
()abcdef";
// { dg-error "invalid character" "invalid" { target *-*-* } 20 }
diff --git a/gcc/testsuite/c-c++-common/raw-string-3.c b/gcc/testsuite/c-c++-common/raw-string-3.c
index 326e30997cf..e4e820c0c1c 100644
--- a/gcc/testsuite/c-c++-common/raw-string-3.c
+++ b/gcc/testsuite/c-c++-common/raw-string-3.c
@@ -5,26 +5,26 @@
// { dg-options "-std=c++98" { target c++ } }
const void *s0 = R"(a)"; // { dg-error "was not declared|undeclared" "undeclared" }
- // { dg-error "expected ',' or ';'" "expected" { target c } 7 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
const void *s1 = uR"(a)"; // { dg-error "was not declared|undeclared" "undeclared" }
- // { dg-error "expected ',' or ';'" "expected" { target c } 9 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
const void *s2 = UR"(a)"; // { dg-error "was not declared|undeclared" "undeclared" }
- // { dg-error "expected ',' or ';'" "expected" { target c } 11 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
const void *s3 = u8R"(a)"; // { dg-error "was not declared|undeclared" "undeclared" }
- // { dg-error "expected ',' or ';'" "expected" { target c } 13 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
const void *s4 = LR"(a)"; // { dg-error "was not declared|undeclared" "undeclared" }
- // { dg-error "expected ',' or ';'" "expected" { target c } 15 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
const int i0 = R'a'; // { dg-error "was not declared" "undeclared" { target c++ } }
- // { dg-error "expected ',' or ';'" "expected" { target c } 18 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
const int i1 = uR'a'; // { dg-error "was not declared" "undeclared" { target c++ } }
- // { dg-error "expected ',' or ';'" "expected" { target c } 20 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
const int i2 = UR'a'; // { dg-error "was not declared" "undeclared" { target c++ } }
- // { dg-error "expected ',' or ';'" "expected" { target c } 22 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
const int i3 = u8R'a'; // { dg-error "was not declared" "undeclared" { target c++ } }
- // { dg-error "expected ',' or ';'" "expected" { target c } 24 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
const int i4 = LR'a'; // { dg-error "was not declared" "undeclared" { target c++ } }
- // { dg-error "expected ',' or ';'" "expected" { target c } 26 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
#define R "a"
#define uR "b"
diff --git a/gcc/testsuite/c-c++-common/raw-string-4.c b/gcc/testsuite/c-c++-common/raw-string-4.c
index 40b42aa643a..303233bb344 100644
--- a/gcc/testsuite/c-c++-common/raw-string-4.c
+++ b/gcc/testsuite/c-c++-common/raw-string-4.c
@@ -4,15 +4,15 @@
// { dg-options "-std=c++0x" { target c++ } }
const int i0 = R'a'; // { dg-error "was not declared|undeclared" "undeclared" }
- // { dg-error "expected ',' or ';'" "expected" { target c } 6 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
const int i1 = uR'a'; // { dg-error "was not declared|undeclared" "undeclared" }
- // { dg-error "expected ',' or ';'" "expected" { target c } 8 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
const int i2 = UR'a'; // { dg-error "was not declared|undeclared" "undeclared" }
- // { dg-error "expected ',' or ';'" "expected" { target c } 10 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
const int i3 = u8R'a'; // { dg-error "was not declared|undeclared" "undeclared" }
- // { dg-error "expected ',' or ';'" "expected" { target c } 12 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
const int i4 = LR'a'; // { dg-error "was not declared|undeclared" "undeclared" }
- // { dg-error "expected ',' or ';'" "expected" { target c } 14 }
+ // { dg-error "expected ',' or ';'" "expected" { target c } .-1 }
#define R 1 +
#define uR 2 +
diff --git a/gcc/testsuite/c-c++-common/raw-string-5.c b/gcc/testsuite/c-c++-common/raw-string-5.c
index a26b87dc6c7..78602dcb725 100644
--- a/gcc/testsuite/c-c++-common/raw-string-5.c
+++ b/gcc/testsuite/c-c++-common/raw-string-5.c
@@ -3,25 +3,25 @@
// { dg-options "-std=c++0x" { target c++ } }
const void *s0 = R"0123456789abcdefg()0123456789abcdefg";
- // { dg-error "raw string delimiter longer" "longer" { target *-*-* } 5 }
- // { dg-error "stray" "stray" { target *-*-* } 5 }
+ // { dg-error "raw string delimiter longer" "longer" { target *-*-* } .-1 }
+ // { dg-error "stray" "stray" { target *-*-* } .-2 }
const void *s1 = R" () ";
- // { dg-error "invalid character" "invalid" { target *-*-* } 8 }
- // { dg-error "stray" "stray" { target *-*-* } 8 }
+ // { dg-error "invalid character" "invalid" { target *-*-* } .-1 }
+ // { dg-error "stray" "stray" { target *-*-* } .-2 }
const void *s2 = R" () ";
- // { dg-error "invalid character" "invalid" { target *-*-* } 11 }
- // { dg-error "stray" "stray" { target *-*-* } 11 }
+ // { dg-error "invalid character" "invalid" { target *-*-* } .-1 }
+ // { dg-error "stray" "stray" { target *-*-* } .-2 }
const void *s3 = R")())";
- // { dg-error "invalid character" "invalid" { target *-*-* } 14 }
- // { dg-error "stray" "stray" { target *-*-* } 14 }
+ // { dg-error "invalid character" "invalid" { target *-*-* } .-1 }
+ // { dg-error "stray" "stray" { target *-*-* } .-2 }
const void *s4 = R"@()@";
- // { dg-error "invalid character" "invalid" { target *-*-* } 17 }
- // { dg-error "stray" "stray" { target *-*-* } 17 }
+ // { dg-error "invalid character" "invalid" { target *-*-* } .-1 }
+ // { dg-error "stray" "stray" { target *-*-* } .-2 }
const void *s5 = R"$()$";
- // { dg-error "invalid character" "invalid" { target *-*-* } 20 }
- // { dg-error "stray" "stray" { target *-*-* } 20 }
+ // { dg-error "invalid character" "invalid" { target *-*-* } .-1 }
+ // { dg-error "stray" "stray" { target *-*-* } .-2 }
const void *s6 = R"\u0040()\u0040";
- // { dg-error "invalid character" "invalid" { target *-*-* } 23 }
- // { dg-error "stray" "stray" { target *-*-* } 23 }
+ // { dg-error "invalid character" "invalid" { target *-*-* } .-1 }
+ // { dg-error "stray" "stray" { target *-*-* } .-2 }
int main () {}
diff --git a/gcc/testsuite/c-c++-common/raw-string-6.c b/gcc/testsuite/c-c++-common/raw-string-6.c
index 87ee4c1c47c..2c2d5b2d9ef 100644
--- a/gcc/testsuite/c-c++-common/raw-string-6.c
+++ b/gcc/testsuite/c-c++-common/raw-string-6.c
@@ -3,4 +3,4 @@
// { dg-options "-std=c++0x" { target c++ } }
const void *s0 = R"ouch()ouCh"; // { dg-error "at end of input" "end" }
- // { dg-error "unterminated raw string" "unterminated" { target *-*-* } 5 }
+ // { dg-error "unterminated raw string" "unterminated" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/c-c++-common/ubsan/bounds-15.c b/gcc/testsuite/c-c++-common/ubsan/bounds-15.c
new file mode 100644
index 00000000000..5fa8eee524e
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/ubsan/bounds-15.c
@@ -0,0 +1,13 @@
+/* { dg-do run } */
+/* { dg-options "-fsanitize=bounds" } */
+/* { dg-skip-if "" { *-*-* } { "*" } { "-O0" } } */
+
+int main()
+{
+ long long offset = 10;
+ char array[10];
+ char c = array[offset];
+ return 0;
+}
+
+/* { dg-output "index 10 out of bounds for type 'char \\\[10\\\]'" } */
diff --git a/gcc/testsuite/g++.dg/abi/mangle41.C b/gcc/testsuite/g++.dg/abi/mangle41.C
index 4c0d0038e80..5fa47f16526 100644
--- a/gcc/testsuite/g++.dg/abi/mangle41.C
+++ b/gcc/testsuite/g++.dg/abi/mangle41.C
@@ -5,4 +5,4 @@
#include <x86intrin.h>
void f(__m128) { } // { dg-message "previous declaration" }
void f(__m256) { } // { dg-error "conflicts" }
-// { dg-message "mangling" "" { target *-*-* } 7 }
+// { dg-message "mangling" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/conversion/nullptr1.C b/gcc/testsuite/g++.dg/conversion/nullptr1.C
index 5e9767a00ee..f1dd60238d2 100644
--- a/gcc/testsuite/g++.dg/conversion/nullptr1.C
+++ b/gcc/testsuite/g++.dg/conversion/nullptr1.C
@@ -6,5 +6,5 @@
void *p = 0;
void *q = 0 * (INT_MAX + 1); // { dg-error "invalid conversion" }
-// { dg-warning "integer overflow in expression" "" { target *-*-* } 8 }
+// { dg-warning "integer overflow in expression" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-59.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-59.C
new file mode 100644
index 00000000000..1f5e94f6d83
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-59.C
@@ -0,0 +1,11 @@
+// PR c++/80244
+// { dg-do compile { target c++11 } }
+
+template<typename>
+struct A {};
+
+template<typename T>
+using B = A<__underlying_type(T) [[gnu::aligned(4)]]>; // { dg-warning "ignoring attributes on template argument" }
+
+template<typename T>
+using B = A<__underlying_type(T) [[gnu::packed]]>; // { dg-warning "ignoring attributes on template argument" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C
index 86643876ff9..829c938e542 100644
--- a/gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C
+++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C
@@ -6,4 +6,4 @@ template <int...> struct A {};
template <int... N> using B = A<+N...>;
B<int> b; // { dg-error "type/value mismatch" }
- // { dg-message "expected a constant" "expected" { target *-*-* } 8 }
+ // { dg-message "expected a constant" "expected" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/alignas11.C b/gcc/testsuite/g++.dg/cpp0x/alignas11.C
new file mode 100644
index 00000000000..73c54da00f6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/alignas11.C
@@ -0,0 +1,10 @@
+// PR c++/80241
+// { dg-do compile { target c++11 } }
+
+template <typename... T>
+struct A
+{
+ [[gnu::aligned (alignof(A))...]] char c; // { dg-error "expansion pattern" }
+};
+
+A<int> a;
diff --git a/gcc/testsuite/g++.dg/cpp0x/auto27.C b/gcc/testsuite/g++.dg/cpp0x/auto27.C
index f8e9097b2f8..e41b7c3a23e 100644
--- a/gcc/testsuite/g++.dg/cpp0x/auto27.C
+++ b/gcc/testsuite/g++.dg/cpp0x/auto27.C
@@ -1,6 +1,6 @@
// PR c++/51186
auto main()->int // { dg-error "std=" "std" { target { ! c++11 } } }
- // { dg-error "auto" "auto" { target { ! c++11 } } 3 }
- // { dg-error "no type" "no type" { target { ! c++11 } } 3 }
+ // { dg-error "auto" "auto" { target { ! c++11 } } .-1 }
+ // { dg-error "no type" "no type" { target { ! c++11 } } .-2 }
{ }
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-98.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-98.C
index 1a0189b56e2..de164e69234 100644
--- a/gcc/testsuite/g++.dg/cpp0x/constexpr-98.C
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-98.C
@@ -1,4 +1,4 @@
// { dg-options "-std=c++98" }
constexpr int i = 42; // { dg-message "std=c\\+\\+11" }
-// { dg-error "constexpr" "" { target *-*-* } 3 }
+// { dg-error "constexpr" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-diag2.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-diag2.C
index 04db4b3313e..e85c29bb6a8 100644
--- a/gcc/testsuite/g++.dg/cpp0x/constexpr-diag2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-diag2.C
@@ -2,4 +2,4 @@
// { dg-do compile { target c++11 } }
constexpr int X (X); // { dg-error "not usable" }
-// { dg-message "own initializer" "" { target *-*-* } 4 }
+// { dg-message "own initializer" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/diag2.C b/gcc/testsuite/g++.dg/cpp0x/diag2.C
index 0d01b1de795..bf3f18be20d 100644
--- a/gcc/testsuite/g++.dg/cpp0x/diag2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/diag2.C
@@ -13,7 +13,7 @@ int main()
{
const A a;
f(a); // { dg-error "no match" }
- // { dg-error "qualifiers" "" { target *-*-* } 15 }
- // { dg-error "lvalue" "" { target *-*-* } 15 }
+ // { dg-error "qualifiers" "" { target *-*-* } .-1 }
+ // { dg-error "lvalue" "" { target *-*-* } .-2 }
g(a); // { dg-error "qualifiers" }
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist-array5.C b/gcc/testsuite/g++.dg/cpp0x/initlist-array5.C
new file mode 100644
index 00000000000..12080a0ab4b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/initlist-array5.C
@@ -0,0 +1,7 @@
+// PR c++/80415
+// { dg-do compile { target c++11 } }
+
+struct A {
+ A(int, int, const int (&)[1] = {});
+};
+A fn1() { return {0, 0}; }
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-syntax1.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-syntax1.C
index cb3ca94eb78..789c93eecce 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-syntax1.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-syntax1.C
@@ -2,4 +2,4 @@
// { dg-do compile { target c++11 } }
void foo() { [] () -> void (); } // { dg-error "returning a function" "returning" }
-// { dg-error "expected .\{" "expected" { target *-*-* } 4 }
+// { dg-error "expected .\{" "expected" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/nullptr15.C b/gcc/testsuite/g++.dg/cpp0x/nullptr15.C
index 939d4495950..ffbd6c4128f 100644
--- a/gcc/testsuite/g++.dg/cpp0x/nullptr15.C
+++ b/gcc/testsuite/g++.dg/cpp0x/nullptr15.C
@@ -17,10 +17,10 @@ void test_g()
// Deduction to nullptr_t, no deduction to pointer type
//
g(nullptr); // { dg-error "no matching function for call to " }
- // { dg-message "(candidate|mismatched types)" "candidate note" { target *-*-* } 19 }
+ // { dg-message "(candidate|mismatched types)" "candidate note" { target *-*-* } .-1 }
type_equal<float*>(g((float*)nullptr));
decltype(nullptr) mynull = 0;
g(mynull); // { dg-error "no matching function for call to " }
- // { dg-message "(candidate|mismatched types)" "candidate note" { target *-*-* } 23 }
+ // { dg-message "(candidate|mismatched types)" "candidate note" { target *-*-* } .-1 }
type_equal<float*>(g((float*)mynull));
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr31431-2.C b/gcc/testsuite/g++.dg/cpp0x/pr31431-2.C
index 6d8f565e3fe..4be16fc35a3 100644
--- a/gcc/testsuite/g++.dg/cpp0x/pr31431-2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/pr31431-2.C
@@ -4,5 +4,5 @@ template<typename, typename..., typename> void foo(); // { dg-message "note" }
void bar()
{
foo<int>(); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 6 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr31431.C b/gcc/testsuite/g++.dg/cpp0x/pr31431.C
index 428673d1807..8116e7f567a 100644
--- a/gcc/testsuite/g++.dg/cpp0x/pr31431.C
+++ b/gcc/testsuite/g++.dg/cpp0x/pr31431.C
@@ -4,5 +4,5 @@ template<typename..., typename> void foo(); // { dg-message "note" }
void bar()
{
foo<int>(); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 6 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr79118.C b/gcc/testsuite/g++.dg/cpp0x/pr79118.C
index e7dfeb37957..5db22a96dd4 100644
--- a/gcc/testsuite/g++.dg/cpp0x/pr79118.C
+++ b/gcc/testsuite/g++.dg/cpp0x/pr79118.C
@@ -33,7 +33,7 @@ struct Two
constexpr Two (int) : a() {} // { dg-error "b' must be initialized" }
constexpr Two (unsigned) : b () {} // { dg-error "a' must be initialized" }
constexpr Two (void *) {} // { dg-error "a' must be initialized" }
- // { dg-error "b' must be initialized" "" { target *-*-* } 35 }
+ // { dg-error "b' must be initialized" "" { target *-*-* } .-1 }
};
Two e ();
diff --git a/gcc/testsuite/g++.dg/cpp0x/static_assert3.C b/gcc/testsuite/g++.dg/cpp0x/static_assert3.C
index 91ed9ca990b..2b62661f8fa 100644
--- a/gcc/testsuite/g++.dg/cpp0x/static_assert3.C
+++ b/gcc/testsuite/g++.dg/cpp0x/static_assert3.C
@@ -1,4 +1,4 @@
// { dg-do compile { target c++11 } }
static_assert(7 / 0, "X"); // { dg-error "non-constant condition" "non-constant" }
-// { dg-warning "division by zero" "zero" { target *-*-* } 2 }
-// { dg-error "division by zero is not a constant expression" "not a constant" { target *-*-* } 2 }
+// { dg-warning "division by zero" "zero" { target *-*-* } .-1 }
+// { dg-error "division by zero is not a constant expression" "not a constant" { target *-*-* } .-2 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/temp_default2.C b/gcc/testsuite/g++.dg/cpp0x/temp_default2.C
index 2a41e22e1e0..9084636bdd8 100644
--- a/gcc/testsuite/g++.dg/cpp0x/temp_default2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/temp_default2.C
@@ -8,7 +8,7 @@ void g()
f(1, 'c'); // f<int,char>(1,'c')
f(1); // f<int,double>(1,0)
f(); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 10 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
f<int>(); // f<int,double>(0,0)
f<int,char>(); // f<int,char>(0,0)
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/trailing4.C b/gcc/testsuite/g++.dg/cpp0x/trailing4.C
index 0ca96e48d89..e9b7608a043 100644
--- a/gcc/testsuite/g++.dg/cpp0x/trailing4.C
+++ b/gcc/testsuite/g++.dg/cpp0x/trailing4.C
@@ -8,5 +8,5 @@ auto f(T,U) -> decltype(T() + U())
template<class T> void g(T){} // { dg-message "note" }
int main() { g(f); } // { dg-error "no matching function" }
-// { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 10 }
+// { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic-ex10.C b/gcc/testsuite/g++.dg/cpp0x/variadic-ex10.C
index f4216a46d54..959978a0589 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic-ex10.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic-ex10.C
@@ -5,4 +5,4 @@ Tuple<> t0; // Types contains no arguments
Tuple<int> t1; // Types contains one argument: int
Tuple<int, float> t2; // Types contains two arguments: int and float
Tuple<0> error; // { dg-error "mismatch" "mismatch" }
-// { dg-message "expected a type" "expected a type" { target *-*-* } 7 }
+// { dg-message "expected a type" "expected a type" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C b/gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C
index ddf71a42fc3..105208701bf 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C
@@ -34,6 +34,6 @@ template<typename... Args> void g(Args... args)
f(const_cast<const Args*>(&args)...); // okay: ``Args'' and ``args'' are expanded
f(5 ...); // { dg-error "contains no argument packs" }
f(args); // { dg-error "5:parameter packs not expanded" }
- // { dg-message "args" "note" { target *-*-* } 36 }
+ // { dg-message "args" "note" { target *-*-* } .-1 }
f(h(args...) + args...); // okay: first ``args'' expanded within h, second ``args'' expanded within f.
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C b/gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C
index 5ec05cd4264..832c06394fc 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C
@@ -9,9 +9,9 @@ template<template<class...> class Q> class Y { /* ... */ };
X<A> xA; // okay
X<B> xB; // { dg-error "mismatch" "mismatch" }
-// { dg-message "expected a template" "expected" { target *-*-* } 11 }
+// { dg-message "expected a template" "expected" { target *-*-* } .-1 }
X<C> xC; // { dg-error "mismatch" "mismatch" }
-// { dg-message "expected a template" "expected" { target *-*-* } 13 }
+// { dg-message "expected a template" "expected" { target *-*-* } .-1 }
Y<A> yA;
Y<B> yB;
Y<C> yC; // okay
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic-ex3.C b/gcc/testsuite/g++.dg/cpp0x/variadic-ex3.C
index 8a723ab7538..65ff549b3f9 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic-ex3.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic-ex3.C
@@ -4,8 +4,8 @@ void g()
{
int i = f<int>(5.6);
int j = f(5.6); // { dg-error "no matching" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 6 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
f<void>(f<int, bool>);
f<void>(f<int>); // { dg-error "no matching" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 9 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic-ex4.C b/gcc/testsuite/g++.dg/cpp0x/variadic-ex4.C
index 26651f74d1c..36d0b6fede5 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic-ex4.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic-ex4.C
@@ -8,6 +8,6 @@ void g()
f<int>("aa",3.0); // Y is deduced to be char*, and
// Z is deduced to be double
f("aa",3.0); // { dg-error "no matching" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 10 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
f2<char, short, int, long>(); // okay
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic-init2.C b/gcc/testsuite/g++.dg/cpp0x/variadic-init2.C
new file mode 100644
index 00000000000..8d5228c93cd
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic-init2.C
@@ -0,0 +1,20 @@
+// { dg-do compile { target c++11 } }
+
+struct MoveOnly {
+ MoveOnly() = default;
+ MoveOnly(MoveOnly const&) = delete;
+ MoveOnly(MoveOnly&&) = default;
+};
+
+struct StoresMoveOnly {
+ StoresMoveOnly() {}
+ ~StoresMoveOnly() = default;
+
+ MoveOnly value;
+};
+
+template <class ...Args> void test(Args... args) {
+ StoresMoveOnly s(args...);
+}
+
+int main() { test(); }
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic59.C b/gcc/testsuite/g++.dg/cpp0x/variadic59.C
index 817883ce287..f13e427fadd 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic59.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic59.C
@@ -1,4 +1,4 @@
// { dg-do compile { target c++11 } }
template<class T, typename... VarArgs>
void print(T t, VarArgs args); // { dg-error "packs not expanded" }
-// { dg-message "VarArgs" "note" { target *-*-* } 3 }
+// { dg-message "VarArgs" "note" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/cpp0x/vt-37737-2.C b/gcc/testsuite/g++.dg/cpp0x/vt-37737-2.C
index 21891f1c037..56bfdb2008a 100644
--- a/gcc/testsuite/g++.dg/cpp0x/vt-37737-2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/vt-37737-2.C
@@ -4,7 +4,7 @@ template<class U, class... T>
void f() // { dg-message "note" }
{
f<T...>(); // { dg-error "no matching" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 6 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
}
template<>
diff --git a/gcc/testsuite/g++.dg/cpp0x/vt-57397-1.C b/gcc/testsuite/g++.dg/cpp0x/vt-57397-1.C
index 1d9a1e07619..440bea5b2f7 100644
--- a/gcc/testsuite/g++.dg/cpp0x/vt-57397-1.C
+++ b/gcc/testsuite/g++.dg/cpp0x/vt-57397-1.C
@@ -10,13 +10,13 @@ void bar(T1, T2, Tn...);
int main()
{
foo(); // { dg-error "no matching" }
- // { dg-message "candidate expects at least 1 argument, 0 provided" "" { target *-*-* } 12 }
+ // { dg-message "candidate expects at least 1 argument, 0 provided" "" { target *-*-* } .-1 }
foo(1);
foo(1, 2);
bar(); // { dg-error "no matching" }
- // { dg-message "candidate expects at least 2 arguments, 0 provided" "" { target *-*-* } 16 }
+ // { dg-message "candidate expects at least 2 arguments, 0 provided" "" { target *-*-* } .-1 }
bar(1); // { dg-error "no matching" }
- // { dg-message "candidate expects at least 2 arguments, 1 provided" "" { target *-*-* } 18 }
+ // { dg-message "candidate expects at least 2 arguments, 1 provided" "" { target *-*-* } .-1 }
bar(1, 2);
bar(1, 2, 3);
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/vt-57397-2.C b/gcc/testsuite/g++.dg/cpp0x/vt-57397-2.C
index d217008fbfe..1a99e22c5cb 100644
--- a/gcc/testsuite/g++.dg/cpp0x/vt-57397-2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/vt-57397-2.C
@@ -10,14 +10,14 @@ void bar(T1, T2, Tn..., Tm...);
int main()
{
foo(); // { dg-error "no matching" }
- // { dg-message "candidate expects at least 1 argument, 0 provided" "" { target *-*-* } 12 }
+ // { dg-message "candidate expects at least 1 argument, 0 provided" "" { target *-*-* } .-1 }
foo(1);
foo(1, 2);
foo(1, 2, 3);
bar(); // { dg-error "no matching" }
- // { dg-message "candidate expects at least 2 arguments, 0 provided" "" { target *-*-* } 17 }
+ // { dg-message "candidate expects at least 2 arguments, 0 provided" "" { target *-*-* } .-1 }
bar(1); // { dg-error "no matching" }
- // { dg-message "candidate expects at least 2 arguments, 1 provided" "" { target *-*-* } 19 }
+ // { dg-message "candidate expects at least 2 arguments, 1 provided" "" { target *-*-* } .-1 }
bar(1, 2);
bar(1, 2, 3);
bar(1, 2, 3, 4);
diff --git a/gcc/testsuite/g++.dg/cpp1y/constexpr-empty3.C b/gcc/testsuite/g++.dg/cpp1y/constexpr-empty3.C
new file mode 100644
index 00000000000..37e4a53a7a9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1y/constexpr-empty3.C
@@ -0,0 +1,14 @@
+// PR c++/80294
+// { dg-do compile { target c++14 } }
+// { dg-final { scan-assembler-not "static_init" } }
+
+struct A {
+ constexpr int f() { A a = *this; return 42; }
+};
+struct B: A
+{
+ int i;
+ constexpr B(): i(f()) {}
+};
+
+B b;
diff --git a/gcc/testsuite/g++.dg/cpp1z/constexpr-lambda8.C b/gcc/testsuite/g++.dg/cpp1z/constexpr-lambda8.C
index ac413066bd9..89c020813eb 100644
--- a/gcc/testsuite/g++.dg/cpp1z/constexpr-lambda8.C
+++ b/gcc/testsuite/g++.dg/cpp1z/constexpr-lambda8.C
@@ -7,7 +7,7 @@ static_assert( Fwd(C ,3) == 3); // OK
// No specialization of the function call operator template can be constexpr
// (because of the local static).
auto NC = [](auto a) { static int s; return a; }; // { dg-error "static" }
-// { dg-message "operator int" "" { target *-*-* } 11 }
+// { dg-message "operator int" "" { target *-*-* } .+1 }
static_assert( Fwd(NC ,3) == 3); // { dg-error "" }
// We look for the string "operator int" to check that we aren't trying to do
diff --git a/gcc/testsuite/g++.dg/cpp1z/decomp28.C b/gcc/testsuite/g++.dg/cpp1z/decomp28.C
new file mode 100644
index 00000000000..7561d9dfc02
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1z/decomp28.C
@@ -0,0 +1,39 @@
+// PR c++/80370
+// { dg-do compile { target c++14 } }
+// { dg-options "" }
+
+namespace std {
+ template <typename> struct tuple_size;
+ template <long, typename> struct tuple_element;
+ template <typename...> struct tuple {};
+ template <typename... T> struct tuple_size<tuple<T...>> { static constexpr int value = 1; };
+ template <typename T, typename... U> struct tuple_element<0, tuple<T, U...>> { typedef T type; };
+ template <int, typename... T> int& get (tuple<T...>);
+}
+
+template <int N>
+void
+foo (std::tuple<int> b)
+{
+ auto [c] = b; // { dg-warning "decomposition declaration only available with" "" { target c++14_down } }
+}
+
+template <typename T>
+void
+bar (std::tuple<T> b)
+{
+ auto [c] = b; // { dg-warning "decomposition declaration only available with" "" { target c++14_down } }
+}
+
+void
+baz (std::tuple<int> b)
+{
+ foo <5> (b);
+ bar (b);
+}
+
+int
+main ()
+{
+ [](auto) { [](std::tuple<int> b) { auto[c] = b; }; } (0); // { dg-warning "decomposition declaration only available with" "" { target c++14_down } }
+}
diff --git a/gcc/testsuite/g++.dg/cpp1z/gen-attrs1.C b/gcc/testsuite/g++.dg/cpp1z/gen-attrs1.C
index fe1ebb29a1d..019175f7519 100644
--- a/gcc/testsuite/g++.dg/cpp1z/gen-attrs1.C
+++ b/gcc/testsuite/g++.dg/cpp1z/gen-attrs1.C
@@ -6,10 +6,10 @@ foo ()
{
static int a [[using gnu: unused, used]]; // { dg-warning "attribute using prefix only available" "" { target c++14_down } }
int b [[ using foo : bar (2), baz ]]; // { dg-warning "'foo::bar' scoped attribute directive ignored" }
- // { dg-warning "'foo::baz' scoped attribute directive ignored" "" { target *-*-* } 8 }
- // { dg-warning "attribute using prefix only available" "" { target c++14_down } 8 }
+ // { dg-warning "'foo::baz' scoped attribute directive ignored" "" { target *-*-* } .-1 }
+ // { dg-warning "attribute using prefix only available" "" { target c++14_down } .-2 }
int c [[ using foo : using ("foo")]]; // { dg-warning "'foo::using' scoped attribute directive ignored" }
- // { dg-warning "attribute using prefix only available" "" { target c++14_down } 11 }
+ // { dg-warning "attribute using prefix only available" "" { target c++14_down } .-1 }
b = 0;
c = 0;
return b + c;
@@ -19,11 +19,11 @@ int
bar ()
{
int a [[ using BAR: foo::bar]]; // { dg-error "attribute using prefix used together with scoped attribute token" }
- // { dg-warning "ignored" "" { target *-*-* } 21 }
- // { dg-warning "attribute using prefix only available" "" { target c++14_down } 21 }
+ // { dg-warning "ignored" "" { target *-*-* } .-1 }
+ // { dg-warning "attribute using prefix only available" "" { target c++14_down } .-2 }
int b [[ using BAZ: bar(2), bar::bar(3, 4) ]];// { dg-error "attribute using prefix used together with scoped attribute token" }
- // { dg-warning "ignored" "" { target *-*-* } 24 }
- // { dg-warning "attribute using prefix only available" "" { target c++14_down } 24 }
+ // { dg-warning "ignored" "" { target *-*-* } .-1 }
+ // { dg-warning "attribute using prefix only available" "" { target c++14_down } .-2 }
a = 0;
b = 0;
return a + b;
@@ -33,10 +33,10 @@ int
baz ()
{
int a [[ using using: using]]; // { dg-warning "attribute using prefix only available" "" { target c++14_down } }
- // { dg-warning "'using::using' scoped attribute directive ignored" "" { target *-*-* } 35 }
+ // { dg-warning "'using::using' scoped attribute directive ignored" "" { target *-*-* } .-1 }
int b [[ using bitand: bitor, xor]]; // { dg-warning "attribute using prefix only available" "" { target c++14_down } }
- // { dg-warning "'bitand::bitor' scoped attribute directive ignored" "" { target *-*-* } 37 }
- // { dg-warning "'bitand::xor' scoped attribute directive ignored" "" { target *-*-* } 37 }
+ // { dg-warning "'bitand::bitor' scoped attribute directive ignored" "" { target *-*-* } .-1 }
+ // { dg-warning "'bitand::xor' scoped attribute directive ignored" "" { target *-*-* } .-2 }
a = 0;
b = 0;
return a + b;
diff --git a/gcc/testsuite/g++.dg/diagnostic/pr71075.C b/gcc/testsuite/g++.dg/diagnostic/pr71075.C
index 6bb1e68e0b7..62b6e0d17ed 100644
--- a/gcc/testsuite/g++.dg/diagnostic/pr71075.C
+++ b/gcc/testsuite/g++.dg/diagnostic/pr71075.C
@@ -4,5 +4,5 @@ template<typename T, int I> struct A {};
template<typename T> void foo(A<T,1>) {}
int main() {
foo(A<int,2>()); // { dg-error "no matching" }
-// { dg-message "template argument .2. does not match .1." "" { target *-*-* } 6 }
+// { dg-message "template argument .2. does not match .1." "" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/eh/goto2.C b/gcc/testsuite/g++.dg/eh/goto2.C
index e9f1ca515a2..1cd254c0404 100644
--- a/gcc/testsuite/g++.dg/eh/goto2.C
+++ b/gcc/testsuite/g++.dg/eh/goto2.C
@@ -8,6 +8,6 @@ try
} catch (...)
{
l2: ; // { dg-error "jump to label 'l2'" }
- // { dg-message "enters catch block" "" { target *-*-*} 10 }
+ // { dg-message "enters catch block" "" { target *-*-*} .-1 }
goto l1; // { dg-message "from here|enters try block" }
}
diff --git a/gcc/testsuite/g++.dg/eh/goto3.C b/gcc/testsuite/g++.dg/eh/goto3.C
index d584ad76e81..250324e08f4 100644
--- a/gcc/testsuite/g++.dg/eh/goto3.C
+++ b/gcc/testsuite/g++.dg/eh/goto3.C
@@ -9,6 +9,6 @@ try
} catch (...)
{
l2: ; // { dg-error "jump to label 'l2'" }
- // { dg-message "enters catch block" "" { target *-*-*} 11 }
+ // { dg-message "enters catch block" "" { target *-*-*} .-1 }
goto l1; // { dg-message "from here|enters try block" }
}
diff --git a/gcc/testsuite/g++.dg/expr/bitfield4.C b/gcc/testsuite/g++.dg/expr/bitfield4.C
index 97a1fe9bef3..3bb9d2b6a9d 100644
--- a/gcc/testsuite/g++.dg/expr/bitfield4.C
+++ b/gcc/testsuite/g++.dg/expr/bitfield4.C
@@ -15,7 +15,7 @@ void f(bool) {}
int main() {
f(s.x++); // { dg-warning "deprecated" "" { target { ! c++1z } } }
- // { dg-error "forbidden" "" { target c++1z } 17 }
+ // { dg-error "forbidden" "" { target c++1z } .-1 }
f(++s.x); // { dg-warning "deprecated" "" { target { ! c++1z } } }
- // { dg-error "forbidden" "" { target c++1z } 19 }
+ // { dg-error "forbidden" "" { target c++1z } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/expr/bitfield5.C b/gcc/testsuite/g++.dg/expr/bitfield5.C
index bba35cbae19..6effd0a7738 100644
--- a/gcc/testsuite/g++.dg/expr/bitfield5.C
+++ b/gcc/testsuite/g++.dg/expr/bitfield5.C
@@ -9,11 +9,11 @@ S s;
int main() {
s.x++; // { dg-warning "deprecated" "" { target { ! c++1z } } }
- // { dg-error "forbidden" "" { target c++1z } 11 }
+ // { dg-error "forbidden" "" { target c++1z } .-1 }
if (s.x != 1)
return 1;
++s.x; // { dg-warning "deprecated" "" { target { ! c++1z } } }
- // { dg-error "forbidden" "" { target c++1z } 15 }
+ // { dg-error "forbidden" "" { target c++1z } .-1 }
if (s.x != 1)
return 2;
}
diff --git a/gcc/testsuite/g++.dg/expr/bitfield6.C b/gcc/testsuite/g++.dg/expr/bitfield6.C
index 202c2464358..263164fe7a2 100644
--- a/gcc/testsuite/g++.dg/expr/bitfield6.C
+++ b/gcc/testsuite/g++.dg/expr/bitfield6.C
@@ -8,5 +8,5 @@ S s;
void f() {
++s.x = false; // { dg-warning "deprecated" "" { target { ! c++1z } } }
- // { dg-error "forbidden" "" { target c++1z } 10 }
+ // { dg-error "forbidden" "" { target c++1z } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/expr/bool1.C b/gcc/testsuite/g++.dg/expr/bool1.C
index 4ecc6acb088..ba2df1d5642 100644
--- a/gcc/testsuite/g++.dg/expr/bool1.C
+++ b/gcc/testsuite/g++.dg/expr/bool1.C
@@ -11,9 +11,9 @@ int main()
int i;
b++; // { dg-warning "deprecated" "" { target { ! c++1z } } }
- // { dg-error "forbidden" "" { target c++1z } 13 }
+ // { dg-error "forbidden" "" { target c++1z } .-1 }
b++; // { dg-warning "deprecated" "" { target { ! c++1z } } }
- // { dg-error "forbidden" "" { target c++1z } 15 }
+ // { dg-error "forbidden" "" { target c++1z } .-1 }
i = b;
if (i != 1)
abort ();
diff --git a/gcc/testsuite/g++.dg/expr/bool3.C b/gcc/testsuite/g++.dg/expr/bool3.C
index cfc9da3cc6d..d7bb7735714 100644
--- a/gcc/testsuite/g++.dg/expr/bool3.C
+++ b/gcc/testsuite/g++.dg/expr/bool3.C
@@ -11,9 +11,9 @@ int main()
int i;
b++; // { dg-warning "deprecated" "" { target { ! c++1z } } }
- // { dg-error "forbidden" "" { target c++1z } 13 }
+ // { dg-error "forbidden" "" { target c++1z } .-1 }
b++; // { dg-warning "deprecated" "" { target { ! c++1z } } }
- // { dg-error "forbidden" "" { target c++1z } 15 }
+ // { dg-error "forbidden" "" { target c++1z } .-1 }
i = b;
if (i != 1)
abort ();
diff --git a/gcc/testsuite/g++.dg/expr/cond10.C b/gcc/testsuite/g++.dg/expr/cond10.C
index 892576fa8b8..b22dc158a87 100644
--- a/gcc/testsuite/g++.dg/expr/cond10.C
+++ b/gcc/testsuite/g++.dg/expr/cond10.C
@@ -13,5 +13,5 @@ void
foo (bool b)
{
b ? c : s; // { dg-error "?:" }
- // { dg-message "convert" "" { target *-*-* } 15 }
+ // { dg-message "convert" "" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/expr/cond11.C b/gcc/testsuite/g++.dg/expr/cond11.C
index 7bd122ddac5..6f91cf917ac 100644
--- a/gcc/testsuite/g++.dg/expr/cond11.C
+++ b/gcc/testsuite/g++.dg/expr/cond11.C
@@ -16,5 +16,5 @@ void
foo (bool b)
{
b ? c : a; // { dg-error "?:" }
- // { dg-message "ambiguous" "" { target *-*-* } 18 }
+ // { dg-message "ambiguous" "" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/expr/lval3.C b/gcc/testsuite/g++.dg/expr/lval3.C
index 4011441494e..ffbbe3121ab 100644
--- a/gcc/testsuite/g++.dg/expr/lval3.C
+++ b/gcc/testsuite/g++.dg/expr/lval3.C
@@ -4,5 +4,5 @@ f()
{
bool i = 0;
i++ = 3; // { dg-error "" }
- // { dg-warning "deprecated" "" { target { ! c++1z } } 6 }
+ // { dg-warning "deprecated" "" { target { ! c++1z } } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/expr/lval4.C b/gcc/testsuite/g++.dg/expr/lval4.C
index c012dd3844c..e731c2039f3 100644
--- a/gcc/testsuite/g++.dg/expr/lval4.C
+++ b/gcc/testsuite/g++.dg/expr/lval4.C
@@ -4,6 +4,6 @@ f()
{
bool i = 0;
++i = 3;
- // { dg-warning "deprecated" "" { target { ! c++1z } } 6 }
- // { dg-error "forbidden" "" { target c++1z } 6 }
+ // { dg-warning "deprecated" "" { target { ! c++1z } } .-1 }
+ // { dg-error "forbidden" "" { target c++1z } .-2 }
}
diff --git a/gcc/testsuite/g++.dg/ext/anon-struct4.C b/gcc/testsuite/g++.dg/ext/anon-struct4.C
index 8eff728cc11..b3fdd4c15ec 100644
--- a/gcc/testsuite/g++.dg/ext/anon-struct4.C
+++ b/gcc/testsuite/g++.dg/ext/anon-struct4.C
@@ -1,5 +1,5 @@
// PR c++/14401
struct { struct { int& i ; } bar ; } foo ; // { dg-error "deleted|uninitialized" "uninit" }
-// { dg-warning "unnamed" "anon" { target { ! c++11 } } 3 }
-// { dg-message "should be initialized" "ref-uninit" { target { ! c++11 } } 3 }
+// { dg-warning "unnamed" "anon" { target { ! c++11 } } .-1 }
+// { dg-message "should be initialized" "ref-uninit" { target { ! c++11 } } .-2 }
diff --git a/gcc/testsuite/g++.dg/ext/attrib44.C b/gcc/testsuite/g++.dg/ext/attrib44.C
index cb83653f30d..0d9f5203446 100644
--- a/gcc/testsuite/g++.dg/ext/attrib44.C
+++ b/gcc/testsuite/g++.dg/ext/attrib44.C
@@ -1,4 +1,4 @@
// PR c++/52671
// { dg-do compile }
__attribute__ ((deprecated)) enum E { E0 }; // { dg-warning "attribute ignored in declaration of" "ignored" }
-// { dg-message "must follow the" "must follow" { target *-*-* } 3 }
+// { dg-message "must follow the" "must follow" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/ext/builtin3.C b/gcc/testsuite/g++.dg/ext/builtin3.C
index f168db62488..6becaa055e6 100644
--- a/gcc/testsuite/g++.dg/ext/builtin3.C
+++ b/gcc/testsuite/g++.dg/ext/builtin3.C
@@ -10,5 +10,5 @@ extern "C" int printf(char*, ...); // { dg-message "std::printf" }
void foo() {
printf("abc"); // { dg-error "3:'printf' was not declared" }
- // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } 12 }
+ // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/ext/dllimport7.C b/gcc/testsuite/g++.dg/ext/dllimport7.C
index 0a79b3da33c..bc14e8c00d2 100644
--- a/gcc/testsuite/g++.dg/ext/dllimport7.C
+++ b/gcc/testsuite/g++.dg/ext/dllimport7.C
@@ -19,7 +19,7 @@ class __declspec(dllimport) Bar
};
const int Bar::three = 3; // { dg-warning "redeclared without dllimport" }
-// { dg-error "definition of static data" "C++ specific error" { target i?86-*-cygwin* i?86-*-mingw* x86_64-*-mingw* } 21 }
+// { dg-error "definition of static data" "C++ specific error" { target i?86-*-cygwin* i?86-*-mingw* x86_64-*-mingw* } .-1 }
const Baz Bar::null_baz; // { dg-warning "redeclared without dllimport" }
diff --git a/gcc/testsuite/g++.dg/ext/label5.C b/gcc/testsuite/g++.dg/ext/label5.C
index 34ca90d87b3..6de3576a333 100644
--- a/gcc/testsuite/g++.dg/ext/label5.C
+++ b/gcc/testsuite/g++.dg/ext/label5.C
@@ -3,4 +3,4 @@
struct A { };
int main() { b: A() && && b; } // { dg-error "operand types are 'A' and 'void\\*'" }
-// { dg-message "candidate|operator&&|no known conversion" "additional" { target *-*-* } 5 }
+// { dg-message "candidate|operator&&|no known conversion" "additional" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/ext/no-asm-1.C b/gcc/testsuite/g++.dg/ext/no-asm-1.C
index e41ebbefcd8..7dec2dbce62 100644
--- a/gcc/testsuite/g++.dg/ext/no-asm-1.C
+++ b/gcc/testsuite/g++.dg/ext/no-asm-1.C
@@ -6,5 +6,5 @@
int asm; // { dg-error "before .asm." }
int typeof; // { dg-error "expected" "expected" }
-// { dg-error "multiple types" "multiple" { target *-*-* } 8 }
-// { dg-error "declaration" "declaration" { target *-*-* } 8 }
+// { dg-error "multiple types" "multiple" { target *-*-* } .-1 }
+// { dg-error "declaration" "declaration" { target *-*-* } .-2 }
diff --git a/gcc/testsuite/g++.dg/ext/pr80363.C b/gcc/testsuite/g++.dg/ext/pr80363.C
new file mode 100644
index 00000000000..2ff7bca80b6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/pr80363.C
@@ -0,0 +1,12 @@
+// PR c++/80363
+// { dg-do compile }
+
+typedef int V __attribute__((vector_size (16)));
+
+int
+foo (V *a, V *b)
+{
+ if (*a < *b) // { dg-error "could not convert\[^#]*from" }
+ return 1;
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/ext/utf16-4.C b/gcc/testsuite/g++.dg/ext/utf16-4.C
index 807b77524a4..8ba88afe54e 100644
--- a/gcc/testsuite/g++.dg/ext/utf16-4.C
+++ b/gcc/testsuite/g++.dg/ext/utf16-4.C
@@ -13,6 +13,6 @@ const static char16_t c5 = U'\u2029';
const static char16_t c6 = U'\U00064321'; /* { dg-warning "implicitly truncated" } */
const static char16_t c7 = L'a';
const static char16_t c8 = L'\u2029';
-const static char16_t c9 = L'\U00064321'; /* { dg-warning "implicitly truncated" "" { target { 4byte_wchar_t } } 16 } */
- /* { dg-warning "constant too long" "" { target { ! 4byte_wchar_t } } 16 } */
+const static char16_t c9 = L'\U00064321'; /* { dg-warning "implicitly truncated" "" { target { 4byte_wchar_t } } . } */
+ /* { dg-warning "constant too long" "" { target { ! 4byte_wchar_t } } .-1 } */
int main () {}
diff --git a/gcc/testsuite/g++.dg/ext/vla2.C b/gcc/testsuite/g++.dg/ext/vla2.C
index 3e83c8b3de9..7e67fb0305b 100644
--- a/gcc/testsuite/g++.dg/ext/vla2.C
+++ b/gcc/testsuite/g++.dg/ext/vla2.C
@@ -15,5 +15,5 @@ void bar(int i)
char d[i] ;
begin(d); // { dg-error "no matching function" "" }
- // { dg-message "(candidate|valid template argument)" "candidate note" { target *-*-* } 17 }
+ // { dg-message "(candidate|valid template argument)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/gomp/block-1.C b/gcc/testsuite/g++.dg/gomp/block-1.C
index b0704ac7fa2..6acdd396f9e 100644
--- a/gcc/testsuite/g++.dg/gomp/block-1.C
+++ b/gcc/testsuite/g++.dg/gomp/block-1.C
@@ -10,7 +10,7 @@ void foo()
#pragma omp parallel
{
bad2: ; // { dg-error "jump to label" }
- // { dg-message "enters OpenMP" "" { target *-*-* } 12 }
+ // { dg-message "enters OpenMP" "" { target *-*-* } .-1 }
}
#pragma omp parallel
diff --git a/gcc/testsuite/g++.dg/gomp/block-2.C b/gcc/testsuite/g++.dg/gomp/block-2.C
index 5336c5a30a1..b4e5516a8da 100644
--- a/gcc/testsuite/g++.dg/gomp/block-2.C
+++ b/gcc/testsuite/g++.dg/gomp/block-2.C
@@ -18,7 +18,7 @@ void foo()
for (i = 0; i < 10; ++i)
{
bad2: ; // { dg-error "jump" }
- // { dg-message "enters OpenMP" "" { target *-*-* } 20 }
+ // { dg-message "enters OpenMP" "" { target *-*-* } .-1 }
}
#pragma omp for
diff --git a/gcc/testsuite/g++.dg/gomp/block-3.C b/gcc/testsuite/g++.dg/gomp/block-3.C
index 23f97268edd..753c19b5cfa 100644
--- a/gcc/testsuite/g++.dg/gomp/block-3.C
+++ b/gcc/testsuite/g++.dg/gomp/block-3.C
@@ -26,13 +26,13 @@ void foo()
goto bad2; // { dg-message "from here" }
}
bad2:; // { dg-error "jump" }
- // { dg-message "exits OpenMP" "" { target *-*-* } 28 }
+ // { dg-message "exits OpenMP" "" { target *-*-* } .-1 }
goto bad3; // { dg-message "from here" }
#pragma omp sections
{
bad3: ; // { dg-error "jump" }
- // { dg-message "enters OpenMP" "" { target *-*-* } 34 }
+ // { dg-message "enters OpenMP" "" { target *-*-* } .-1 }
}
#pragma omp sections
diff --git a/gcc/testsuite/g++.dg/gomp/block-5.C b/gcc/testsuite/g++.dg/gomp/block-5.C
index d6d28c4b4c3..985e761d385 100644
--- a/gcc/testsuite/g++.dg/gomp/block-5.C
+++ b/gcc/testsuite/g++.dg/gomp/block-5.C
@@ -10,7 +10,7 @@ void foo()
#pragma omp master
{
bad1: // { dg-error "jump" }
- // { dg-message "exits OpenMP" "" { target *-*-* } 12 }
+ // { dg-message "exits OpenMP" "" { target *-*-* } .-1 }
return; // { dg-error "invalid exit" }
}
}
diff --git a/gcc/testsuite/g++.dg/gomp/linear-2.C b/gcc/testsuite/g++.dg/gomp/linear-2.C
index acb85d1a3aa..eed982276e7 100644
--- a/gcc/testsuite/g++.dg/gomp/linear-2.C
+++ b/gcc/testsuite/g++.dg/gomp/linear-2.C
@@ -33,7 +33,7 @@ void
f4 ()
{
#pragma omp for linear (i:1) linear (j:2) collapse(2) // { dg-error "iteration variable .i. should not be linear" }
- for (i = 0; i < 32; i++) // { dg-error "iteration variable .j. should not be linear" "" { target *-*-* } 35 }
+ for (i = 0; i < 32; i++) // { dg-error "iteration variable .j. should not be linear" "" { target *-*-* } .-1 }
for (j = 0; j < 32; j+=2)
;
}
@@ -50,7 +50,7 @@ f5 ()
void
f6 ()
{
- #pragma omp parallel for linear (i:1) collapse(2) linear (j:2) // { dg-error "iteration variable .i. should not be linear" "" { target *-*-* } 54 }
+ #pragma omp parallel for linear (i:1) collapse(2) linear (j:2) // { dg-error "iteration variable .i. should not be linear" "" { target *-*-* } .+1 }
for (i = 0; i < 32; i++) // { dg-error "iteration variable .j. should not be linear" }
for (j = 0; j < 32; j+=2)
;
@@ -88,7 +88,7 @@ void
f10 ()
{
#pragma omp for linear (i:1) linear (j:2) collapse(2) // { dg-error "iteration variable .i. should not be linear" }
- for (i = 0; i < 32; i++) // { dg-error "iteration variable .j. should not be linear" "" { target *-*-* } 90 }
+ for (i = 0; i < 32; i++) // { dg-error "iteration variable .j. should not be linear" "" { target *-*-* } .-1 }
for (j = 0; j < 32; j+=2)
;
}
@@ -107,7 +107,7 @@ template <int N>
void
f12 ()
{
- #pragma omp parallel for linear (i:1) collapse(2) linear (j:2) // { dg-error "iteration variable .i. should not be linear" "" { target *-*-* } 111 }
+ #pragma omp parallel for linear (i:1) collapse(2) linear (j:2) // { dg-error "iteration variable .i. should not be linear" "" { target *-*-* } .+1 }
for (i = 0; i < 32; i++) // { dg-error "iteration variable .j. should not be linear" }
for (j = 0; j < 32; j+=2)
;
diff --git a/gcc/testsuite/g++.dg/gomp/target-1.C b/gcc/testsuite/g++.dg/gomp/target-1.C
index 97508739d8c..81837c965ba 100644
--- a/gcc/testsuite/g++.dg/gomp/target-1.C
+++ b/gcc/testsuite/g++.dg/gomp/target-1.C
@@ -11,7 +11,7 @@ foo (int x)
#pragma omp target
{
bad2: ; // { dg-error "jump to label" }
- // { dg-message "enters OpenMP" "" { target *-*-* } 13 }
+ // { dg-message "enters OpenMP" "" { target *-*-* } .-1 }
}
#pragma omp target
@@ -26,7 +26,7 @@ foo (int x)
{
#pragma omp target // { dg-warning "statement will never be executed" }
{ case 0:; } // { dg-error "jump" }
- // { dg-message "enters" "" { target *-*-* } 28 }
+ // { dg-message "enters" "" { target *-*-* } .-1 }
}
}
diff --git a/gcc/testsuite/g++.dg/gomp/target-2.C b/gcc/testsuite/g++.dg/gomp/target-2.C
index 333b4d0f7fc..afb55e4ab31 100644
--- a/gcc/testsuite/g++.dg/gomp/target-2.C
+++ b/gcc/testsuite/g++.dg/gomp/target-2.C
@@ -11,7 +11,7 @@ foo (int x, int y)
#pragma omp target data map(tofrom: y)
{
bad2: ; // { dg-error "jump to label" }
- // { dg-message "enters OpenMP" "" { target *-*-* } 13 }
+ // { dg-message "enters OpenMP" "" { target *-*-* } .-1 }
}
#pragma omp target data map(tofrom: y)
@@ -26,7 +26,7 @@ foo (int x, int y)
{
#pragma omp target data map(tofrom: y) // { dg-warning "statement will never be executed" }
{ case 0:; } // { dg-error "jump" }
- // { dg-message "enters" "" { target *-*-* } 28 }
+ // { dg-message "enters" "" { target *-*-* } .-1 }
}
}
diff --git a/gcc/testsuite/g++.dg/gomp/taskgroup-1.C b/gcc/testsuite/g++.dg/gomp/taskgroup-1.C
index 5542a4e4fd2..9b8b1f74a1a 100644
--- a/gcc/testsuite/g++.dg/gomp/taskgroup-1.C
+++ b/gcc/testsuite/g++.dg/gomp/taskgroup-1.C
@@ -11,7 +11,7 @@ foo (int x)
#pragma omp taskgroup
{
bad2: ; // { dg-error "jump to label" }
- // { dg-message "enters OpenMP" "" { target *-*-* } 13 }
+ // { dg-message "enters OpenMP" "" { target *-*-* } .-1 }
}
#pragma omp taskgroup
@@ -26,7 +26,7 @@ foo (int x)
{
#pragma omp taskgroup // { dg-warning "statement will never be executed" }
{ case 0:; } // { dg-error "jump" }
- // { dg-message "enters" "" { target *-*-* } 28 }
+ // { dg-message "enters" "" { target *-*-* } .-1 }
}
}
diff --git a/gcc/testsuite/g++.dg/gomp/teams-1.C b/gcc/testsuite/g++.dg/gomp/teams-1.C
index 3cea407bf1b..a453c7cd47e 100644
--- a/gcc/testsuite/g++.dg/gomp/teams-1.C
+++ b/gcc/testsuite/g++.dg/gomp/teams-1.C
@@ -11,7 +11,7 @@ foo (int x)
#pragma omp target teams
{
bad2: ; // { dg-error "jump to label" }
- // { dg-message "enters OpenMP" "" { target *-*-* } 13 }
+ // { dg-message "enters OpenMP" "" { target *-*-* } .-1 }
}
#pragma omp target teams
@@ -44,7 +44,7 @@ bar (int x)
#pragma omp teams
{
bad2: ; // { dg-error "jump to label" }
- // { dg-message "enters OpenMP" "" { target *-*-* } 46 }
+ // { dg-message "enters OpenMP" "" { target *-*-* } .-1 }
}
#pragma omp target
@@ -61,7 +61,7 @@ bar (int x)
#pragma omp target // { dg-warning "statement will never be executed" }
#pragma omp teams
{ case 0:; } // { dg-error "jump" }
- // { dg-message "enters" "" { target *-*-* } 63 }
+ // { dg-message "enters" "" { target *-*-* } .-1 }
}
}
diff --git a/gcc/testsuite/g++.dg/inherit/pure1.C b/gcc/testsuite/g++.dg/inherit/pure1.C
index 99a5767c787..364369b85e1 100644
--- a/gcc/testsuite/g++.dg/inherit/pure1.C
+++ b/gcc/testsuite/g++.dg/inherit/pure1.C
@@ -4,7 +4,7 @@
void foo0() = 0; // { dg-error "like a variable" }
virtual void foo1() = 0; // { dg-error "1:'virtual' outside class" }
-// { dg-error "like a variable" "" { target *-*-* } 6 }
+// { dg-error "like a variable" "" { target *-*-* } .-1 }
struct A
{
void foo2() = 0; // { dg-error "non-virtual" }
diff --git a/gcc/testsuite/g++.dg/init/array43.C b/gcc/testsuite/g++.dg/init/array43.C
index 37ef2411518..b4e6512284a 100644
--- a/gcc/testsuite/g++.dg/init/array43.C
+++ b/gcc/testsuite/g++.dg/init/array43.C
@@ -1,2 +1,2 @@
int a[] = 0; // { dg-error "5:initializer fails to determine size" }
-// { dg-error "11:array must be initialized" "" { target *-*-* } 1 }
+// { dg-error "11:array must be initialized" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/init/array46.C b/gcc/testsuite/g++.dg/init/array46.C
index 34fc2665756..85849645144 100644
--- a/gcc/testsuite/g++.dg/init/array46.C
+++ b/gcc/testsuite/g++.dg/init/array46.C
@@ -1,3 +1,3 @@
int foo();
int a[] = foo(); // { dg-error "14:initializer fails to determine size" }
-// { dg-error "14:array must be initialized" "" { target *-*-* } 2 }
+// { dg-error "14:array must be initialized" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/init/const10.C b/gcc/testsuite/g++.dg/init/const10.C
index ecd0db4501b..283da624b5c 100644
--- a/gcc/testsuite/g++.dg/init/const10.C
+++ b/gcc/testsuite/g++.dg/init/const10.C
@@ -2,7 +2,7 @@
// { dg-do compile { target c++11 } }
class B // { dg-message "implicitly deleted" }
- // { dg-error "uninitialized" "" { target c++11 } 4 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int const v_; // { dg-message "should be initialized" }
};
@@ -10,7 +10,7 @@ class B // { dg-message "implicitly deleted" }
struct D : B {}; // { dg-error "deleted" }
class A // { dg-message "implicitly deleted" }
- // { dg-error "uninitialized" "" { target c++11 } 12 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int& ref; // { dg-message "should be initialized" }
};
diff --git a/gcc/testsuite/g++.dg/init/ctor4-1.C b/gcc/testsuite/g++.dg/init/ctor4-1.C
index 1333b35f9dd..33e58dfec32 100644
--- a/gcc/testsuite/g++.dg/init/ctor4-1.C
+++ b/gcc/testsuite/g++.dg/init/ctor4-1.C
@@ -6,7 +6,7 @@ public:
};
class bar: public foo { // { dg-error "uninitialized" }
- // { dg-message "implicitly deleted" "" { target c++11 } 8 }
+ // { dg-message "implicitly deleted" "" { target c++11 } .-1 }
private:
int const a; // { dg-message "should be initialized" }
};
@@ -17,5 +17,5 @@ foo::foo() {
int main(int argc, char **argv)
{
bar x; // { dg-error "deleted" "" { target c++11 } }
- // { dg-message "synthesized" "" { target { ! c++11 } } 19 }
+ // { dg-message "synthesized" "" { target { ! c++11 } } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/init/ctor4.C b/gcc/testsuite/g++.dg/init/ctor4.C
index 21034b6796d..5450fc14acb 100644
--- a/gcc/testsuite/g++.dg/init/ctor4.C
+++ b/gcc/testsuite/g++.dg/init/ctor4.C
@@ -7,7 +7,7 @@ public:
};
class bar: public foo { // { dg-error "uninitialized" }
- // { dg-message "implicitly deleted" "" { target c++11 } 9 }
+ // { dg-message "implicitly deleted" "" { target c++11 } .-1 }
private:
int &a; // { dg-message "should be initialized" }
};
@@ -18,5 +18,5 @@ foo::foo() {
int main(int argc, char **argv)
{
bar x; // { dg-error "deleted" "" { target c++11 } }
- // { dg-message "synthesized" "" { target { ! c++11 } } 20 }
+ // { dg-message "synthesized" "" { target { ! c++11 } } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/init/new37.C b/gcc/testsuite/g++.dg/init/new37.C
index 734b1419128..3255a696143 100644
--- a/gcc/testsuite/g++.dg/init/new37.C
+++ b/gcc/testsuite/g++.dg/init/new37.C
@@ -41,7 +41,7 @@ struct T1 {
struct T2 {
static const double n = 2; // { dg-error "23:'constexpr' needed" "" { target c++11 } }
- // { dg-error "23:ISO C\\+\\+ forbids" "" { target c++98_only } 43 }
+ // { dg-error "23:ISO C\\+\\+ forbids" "" { target c++98_only } .-1 }
};
struct T3 {
diff --git a/gcc/testsuite/g++.dg/init/pr25811.C b/gcc/testsuite/g++.dg/init/pr25811.C
index c29f40607bd..4cda484e5af 100644
--- a/gcc/testsuite/g++.dg/init/pr25811.C
+++ b/gcc/testsuite/g++.dg/init/pr25811.C
@@ -2,56 +2,56 @@
// { dg-do compile }
struct A1 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 4 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int const j; // { dg-message "should be initialized" }
};
struct A2 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 10 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int const volatile i; // { dg-message "should be initialized" }
};
struct A3 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 16 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int& ref; // { dg-message "should be initialized" }
};
struct A4 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 22 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int const& ref; // { dg-message "should be initialized" }
};
struct A5 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 28 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int& ref; // { dg-message "should be initialized" }
int const i; // { dg-message "should be initialized" }
};
template <class T> struct S1 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 35 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
T const i; // { dg-message "should be initialized" }
};
template <class T> struct S2 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 41 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
T const volatile i; // { dg-message "should be initialized" }
};
template <class T> struct S3 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 47 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
T& ref; // { dg-message "should be initialized" }
};
template <class T> struct S4 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 53 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
T const i; // { dg-message "should be initialized" }
T& ref; // { dg-message "should be initialized" }
@@ -65,7 +65,7 @@ struct X
};
struct Y11 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 67 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int const i; // { dg-message "should be initialized" }
};
@@ -76,7 +76,7 @@ struct Y1 // { dg-error "deleted" "" { target c++11 } }
};
struct Y22 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 78 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int& ref; // { dg-message "should be initialized" }
};
@@ -87,25 +87,25 @@ struct Y2 // { dg-error "deleted" "" { target c++11 } }
};
struct Z1 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 89 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int const i; // { dg-message "should be initialized" }
};
struct Z2 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 95 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int& ref; // { dg-message "should be initialized" }
};
struct Z3 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 101 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int const i; // { dg-message "should be initialized" }
};
struct Z4 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 107 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int& ref; // { dg-message "should be initialized" }
};
@@ -125,7 +125,7 @@ struct Z // { dg-error "deleted" "" { target c++11 } }
};
union U // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 127 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int const i; // { dg-message "should be initialized" }
};
diff --git a/gcc/testsuite/g++.dg/init/pr29043.C b/gcc/testsuite/g++.dg/init/pr29043.C
index c81c39cb0f6..61845951a4a 100644
--- a/gcc/testsuite/g++.dg/init/pr29043.C
+++ b/gcc/testsuite/g++.dg/init/pr29043.C
@@ -2,7 +2,7 @@
// { dg-do compile }
struct S // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 4 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int const i; // { dg-message "should be initialized" }
};
@@ -15,7 +15,7 @@ public:
};
struct S2 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 17 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int& ref; // { dg-message "should be initialized" }
};
@@ -36,7 +36,7 @@ class C3
};
struct S4 // { dg-message "implicitly deleted" "" { target c++11 } }
- // { dg-error "uninitialized" "" { target c++11 } 38 }
+ // { dg-error "uninitialized" "" { target c++11 } .-1 }
{
int const i; // { dg-message "should be initialized" }
};
diff --git a/gcc/testsuite/g++.dg/init/pr29571.C b/gcc/testsuite/g++.dg/init/pr29571.C
index d0dc678cf3e..32e8973f22c 100644
--- a/gcc/testsuite/g++.dg/init/pr29571.C
+++ b/gcc/testsuite/g++.dg/init/pr29571.C
@@ -3,7 +3,7 @@
struct A
{
static const int i = 0/0 + ""; // { dg-warning "division by zero" }
- // { dg-error "constant|conversion|initializ" "" { target *-*-* } 5 }
+ // { dg-error "constant|conversion|initializ" "" { target *-*-* } .-1 }
static const int j = int(i);
};
diff --git a/gcc/testsuite/g++.dg/init/ref23.C b/gcc/testsuite/g++.dg/init/ref23.C
new file mode 100644
index 00000000000..12b8851f2b9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ref23.C
@@ -0,0 +1,15 @@
+// PR c++/80176
+// { dg-do compile }
+
+struct X { static void foo(); static void baz(int); static int baz(double); } x;
+struct Y { void o(unsigned char); static void o(int); void o(double); } y;
+void X::foo() {}
+static void bar() {}
+void (&r1)() = x.foo;
+void (&r2)() = X::foo;
+void (&r3)() = bar;
+void (&r4)(int) = x.baz;
+int (&r5)(double) = x.baz;
+void (&r6)(int) = X::baz;
+int (&r7)(double) = X::baz;
+void (&r8)(int) = y.o;
diff --git a/gcc/testsuite/g++.dg/ipa/pr80212.C b/gcc/testsuite/g++.dg/ipa/pr80212.C
new file mode 100644
index 00000000000..60d3b613035
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ipa/pr80212.C
@@ -0,0 +1,18 @@
+// PR ipa/80212
+// { dg-options "-O2 --param partial-inlining-entry-probability=403796683 -fno-early-inlining" }
+
+struct b
+{
+ virtual b *c () const;
+};
+struct d : virtual b
+{
+};
+struct e : d
+{
+ e *
+ c () const
+ {
+ }
+};
+main () { e a; }
diff --git a/gcc/testsuite/g++.dg/lookup/duperr1.C b/gcc/testsuite/g++.dg/lookup/duperr1.C
index c50e9f642b9..78f66a9ae6f 100644
--- a/gcc/testsuite/g++.dg/lookup/duperr1.C
+++ b/gcc/testsuite/g++.dg/lookup/duperr1.C
@@ -1,5 +1,5 @@
// PR c++/29048
class A { int i; }; // { dg-bogus "is private.*is private" }
-// { dg-message "private" "" { target *-*-* } 3 }
+// { dg-message "private" "" { target *-*-* } .-1 }
class B:public A { B() { A::i=0; } }; // { dg-error "within this context" }
diff --git a/gcc/testsuite/g++.dg/lookup/error1.C b/gcc/testsuite/g++.dg/lookup/error1.C
index 3eb4b972132..d2741fb2812 100644
--- a/gcc/testsuite/g++.dg/lookup/error1.C
+++ b/gcc/testsuite/g++.dg/lookup/error1.C
@@ -4,7 +4,7 @@
namespace N { int i; } // { dg-message "N::i" }
void foo() { i; } // { dg-error "not declared" }
- // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } 6 }
+ // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } .-1 }
using namespace N;
void bar() { i; }
diff --git a/gcc/testsuite/g++.dg/lookup/koenig5.C b/gcc/testsuite/g++.dg/lookup/koenig5.C
index ac35165e618..89c8ed8b142 100644
--- a/gcc/testsuite/g++.dg/lookup/koenig5.C
+++ b/gcc/testsuite/g++.dg/lookup/koenig5.C
@@ -32,12 +32,12 @@ void g (N::A *a, M::B *b, O::C *c)
One (a); // ok
One (a, b); // ok
One (b); // { dg-error "3:'One' was not declared" }
- // { dg-message "suggested alternatives" "suggested alternative for One" { target *-*-* } 34 }
+ // { dg-message "suggested alternatives" "suggested alternative for One" { target *-*-* } .-1 }
Two (c); // ok
Two (a, c); // ok
Two (a); // { dg-error "3:'Two' was not declared" }
- // { dg-message "suggested alternatives" "suggested alternative for Two" { target *-*-* } 39 }
+ // { dg-message "suggested alternatives" "suggested alternative for Two" { target *-*-* } .-1 }
Two (a, a); // error masked by earlier error
Two (b); // error masked by earlier error
Two (a, b); // error masked by earlier error
@@ -45,5 +45,5 @@ void g (N::A *a, M::B *b, O::C *c)
Three (b); // ok
Three (a, b); // ok
Three (a); // { dg-error "3:'Three' was not declared" }
- // { dg-message "suggested alternatives" "suggested alternative for Three" { target *-*-* } 47 }
+ // { dg-message "suggested alternatives" "suggested alternative for Three" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/lookup/pr77549.C b/gcc/testsuite/g++.dg/lookup/pr77549.C
index 6fe1a0e6b53..b4b8d0ef254 100644
--- a/gcc/testsuite/g++.dg/lookup/pr77549.C
+++ b/gcc/testsuite/g++.dg/lookup/pr77549.C
@@ -23,7 +23,7 @@ f2 ()
{
using N::bar;
baz++; // { dg-error "'baz' was not declared in this scope" }
-} // { dg-message "note: suggested alternative: 'bar'" "" { target *-*-* } 25 }
+} // { dg-message "note: suggested alternative: 'bar'" "" { target *-*-* } .-1 }
int
bar ()
@@ -45,7 +45,7 @@ f3 ()
{
using M::bar;
baz (); // { dg-error "'baz' was not declared in this scope" }
-} // { dg-message "note: suggested alternative: 'bar'" "" { target *-*-* } 47 }
+} // { dg-message "note: suggested alternative: 'bar'" "" { target *-*-* } .-1 }
namespace O
{
@@ -71,6 +71,6 @@ f4 ()
using O::foo;
using P::bar;
fooo (); // { dg-error "'fooo' was not declared in this scope" }
- // { dg-message "note: suggested alternative: 'foo'" "" { target *-*-* } 73 }
+ // { dg-message "note: suggested alternative: 'foo'" "" { target *-*-* } .-1 }
baz (); // { dg-error "'baz' was not declared in this scope" }
-} // { dg-message "note: suggested alternative: 'bar'" "" { target *-*-* } 75 }
+} // { dg-message "note: suggested alternative: 'bar'" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/lookup/suggestions1.C b/gcc/testsuite/g++.dg/lookup/suggestions1.C
index 1185d58416a..da98d11cbc9 100644
--- a/gcc/testsuite/g++.dg/lookup/suggestions1.C
+++ b/gcc/testsuite/g++.dg/lookup/suggestions1.C
@@ -2,7 +2,7 @@
namespace N { namespace M { int foo; } } // { dg-message "N::M::foo" }
int f (void) { return N::foo; } // { dg-error "not a member" }
-// { dg-message "suggested alternative" "missing namespace" { target *-*-* } 4 }
+// { dg-message "suggested alternative" "missing namespace" { target *-*-* } .-1 }
int g (void) { return ::foo; } // { dg-error "not been declared" }
-// { dg-message "suggested alternative" "omitted namespace" { target *-*-* } 7 }
+// { dg-message "suggested alternative" "omitted namespace" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/lookup/using16.C b/gcc/testsuite/g++.dg/lookup/using16.C
index 8a36504caf2..7f2a74f8a83 100644
--- a/gcc/testsuite/g++.dg/lookup/using16.C
+++ b/gcc/testsuite/g++.dg/lookup/using16.C
@@ -15,4 +15,4 @@ using namespace M;
using namespace N;
struct ::S s; // { dg-bogus "ambiguous.*ambiguous" "duplicate error" }
-// { dg-error "reference to 'S' is ambiguous|invalid type" "" { target *-*-* } 17 }}
+// { dg-error "reference to 'S' is ambiguous|invalid type" "" { target *-*-* } .-1 }}
diff --git a/gcc/testsuite/g++.dg/lookup/using7.C b/gcc/testsuite/g++.dg/lookup/using7.C
index 0c75a2df6ba..f774021d9b4 100644
--- a/gcc/testsuite/g++.dg/lookup/using7.C
+++ b/gcc/testsuite/g++.dg/lookup/using7.C
@@ -6,7 +6,7 @@ template <typename T, bool=T::X> struct A
template <typename T> struct B : A<T> // { dg-error "incomplete" }
{
using A<T>::i; // { dg-error "incomplete" "incomplete" }
- // { dg-error "using" "using" { target *-*-* } 8 }
+ // { dg-error "using" "using" { target *-*-* } .-1 }
};
B<void> b; // { dg-message "required" }
diff --git a/gcc/testsuite/g++.dg/lto/pr79671_0.C b/gcc/testsuite/g++.dg/lto/pr79671_0.C
new file mode 100644
index 00000000000..a55a57fd79a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lto/pr79671_0.C
@@ -0,0 +1,26 @@
+// { dg-lto-do run }
+
+void *operator new(__SIZE_TYPE__, void *p2) { return p2; }
+struct B { B(int i_) : i(i_) {} int i; };
+struct X
+{
+ unsigned char buf[sizeof (B)];
+};
+
+int __attribute__((noinline)) foo()
+{
+ X x alignas (B), y alignas (B);
+ new (&x) B (0);
+ y = x;
+ B *q = reinterpret_cast <B *>(&y);
+ asm volatile ("" : "=r" (q) : "r" (q));
+ return q->i;
+}
+extern "C" void bar ();
+int main()
+{
+ if (foo() != 0)
+ __builtin_abort ();
+ bar ();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/lto/pr79671_1.c b/gcc/testsuite/g++.dg/lto/pr79671_1.c
new file mode 100644
index 00000000000..934cb2d63f5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lto/pr79671_1.c
@@ -0,0 +1,5 @@
+struct X
+{
+ unsigned char buf[sizeof (int)];
+};
+void bar () { struct X x; *(volatile char *)x.buf = 1; }
diff --git a/gcc/testsuite/g++.dg/lto/pr80287_0.C b/gcc/testsuite/g++.dg/lto/pr80287_0.C
new file mode 100644
index 00000000000..ea655c97b29
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lto/pr80287_0.C
@@ -0,0 +1,92 @@
+// { dg-lto-options { "-std=gnu++17" } }
+// { dg-lto-do run }
+
+// Copyright (C) 2014-2017 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <any>
+#define VERIFY(x) if (!(x)) __builtin_abort()
+
+using std::any;
+using std::any_cast;
+
+bool moved = false;
+bool copied = false;
+
+struct X
+{
+ X() = default;
+ X(const X&) { copied = true; }
+ X(X&& x) { moved = true; }
+};
+
+struct X2
+{
+ X2() = default;
+ X2(const X2&) { copied = true; }
+ X2(X2&& x) noexcept { moved = true; }
+}__attribute((may_alias));
+
+void test01()
+{
+ moved = false;
+ X x;
+ any a1;
+ a1 = x;
+ VERIFY(moved == false);
+ any a2;
+ copied = false;
+ a2 = std::move(x);
+ VERIFY(moved == true);
+ VERIFY(copied == false);
+}
+
+void test02()
+{
+ moved = false;
+ X x;
+ any a1;
+ a1 = x;
+ VERIFY(moved == false);
+ any a2;
+ copied = false;
+ a2 = std::move(a1);
+ VERIFY(moved == false);
+ VERIFY(copied == false);
+}
+
+void test03()
+{
+ moved = false;
+ X2 x;
+ any a1;
+ a1 = x;
+ VERIFY(copied && moved);
+ any a2;
+ moved = false;
+ copied = false;
+ a2 = std::move(a1);
+ VERIFY(moved == true);
+ VERIFY(copied == false);
+}
+
+int main()
+{
+ test01();
+ test02();
+ test03();
+}
diff --git a/gcc/testsuite/g++.dg/opt/pr80385.C b/gcc/testsuite/g++.dg/opt/pr80385.C
new file mode 100644
index 00000000000..f18abc941f3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/pr80385.C
@@ -0,0 +1,14 @@
+// PR rtl-optimization/80385
+// { dg-do compile { target { i?86-*-* x86_64-*-* } } }
+// { dg-options "-Ofast -msse2" }
+
+#include <x86intrin.h>
+
+__m128 a, e;
+struct A { __m128 b; A (); A (__m128 x) : b(x) {} };
+A operator+ (A, A);
+A operator- (A) { __m128 c = -a; return c; }
+A foo (A x) { __m128 d = x.b; return _mm_andnot_ps (d, e); }
+struct B { A n[1]; };
+void bar (B x) { A f = foo (x.n[0]); A g = f + A (); }
+void baz () { B h; B i; A j; i.n[0] = -j; h = i; B k = h; bar (k); }
diff --git a/gcc/testsuite/g++.dg/other/anon-union3.C b/gcc/testsuite/g++.dg/other/anon-union3.C
index 3d9982893ee..ca59d0233fb 100644
--- a/gcc/testsuite/g++.dg/other/anon-union3.C
+++ b/gcc/testsuite/g++.dg/other/anon-union3.C
@@ -3,7 +3,7 @@
class C
{
auto union // { dg-error "storage class" "" { target { ! c++11 } } }
- { // { dg-error "auto" "" { target c++11 } 5 }
+ { // { dg-error "auto" "" { target c++11 } .-1 }
int a;
}; // { dg-error "multiple types" "" { target c++11 } }
register union // { dg-error "storage class" }
diff --git a/gcc/testsuite/g++.dg/other/array2.C b/gcc/testsuite/g++.dg/other/array2.C
index b091d96bec8..95a2fa6067c 100644
--- a/gcc/testsuite/g++.dg/other/array2.C
+++ b/gcc/testsuite/g++.dg/other/array2.C
@@ -2,5 +2,5 @@
// { dg-do compile }
int x[1/0]; // { dg-warning "division by zero" }
- // { dg-error "constant" "constant" { target *-*-* } 4 }
+ // { dg-error "constant" "constant" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/other/error13.C b/gcc/testsuite/g++.dg/other/error13.C
index efda0863298..c04e68750a9 100644
--- a/gcc/testsuite/g++.dg/other/error13.C
+++ b/gcc/testsuite/g++.dg/other/error13.C
@@ -3,7 +3,7 @@
struct A // { dg-message "note" }
{
A(void x); // { dg-error "invalid use|incomplete type|candidates" }
- // { dg-message "" "match candidate text" { target *-*-* } 5 }
+ // { dg-message "" "match candidate text" { target *-*-* } .-1 }
};
struct B : A {}; // { dg-error "no matching function for call|deleted" }
diff --git a/gcc/testsuite/g++.dg/other/error34.C b/gcc/testsuite/g++.dg/other/error34.C
index d6f3eb590ea..f5ced1adfdc 100644
--- a/gcc/testsuite/g++.dg/other/error34.C
+++ b/gcc/testsuite/g++.dg/other/error34.C
@@ -3,4 +3,4 @@
// { dg-options "" }
S () : str(__PRETTY_FUNCTION__) {} // { dg-error "forbids declaration" "decl" }
-// { dg-error "only constructors" "constructor" { target *-*-* } 5 }
+// { dg-error "only constructors" "constructor" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/overload/builtin1.C b/gcc/testsuite/g++.dg/overload/builtin1.C
index 72080ea444a..f2b324b1d45 100644
--- a/gcc/testsuite/g++.dg/overload/builtin1.C
+++ b/gcc/testsuite/g++.dg/overload/builtin1.C
@@ -13,5 +13,5 @@ int main ()
{
A a;
a + a; // { dg-error "ambiguous" "ambiguous" }
- // { dg-message "operator" "match candidate text" { target *-*-* } 15 }
+ // { dg-message "operator" "match candidate text" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/overload/conv-op1.C b/gcc/testsuite/g++.dg/overload/conv-op1.C
index cd8d9f481ec..abcd7413b1f 100644
--- a/gcc/testsuite/g++.dg/overload/conv-op1.C
+++ b/gcc/testsuite/g++.dg/overload/conv-op1.C
@@ -11,7 +11,7 @@ void f()
{
const int i = 42;
A()(i); // { dg-message "<conversion>" }
- // { dg-error "qualifiers" "" { target *-*-* } 13 }
+ // { dg-error "qualifiers" "" { target *-*-* } .-1 }
}
// { dg-prune-output "no match" }
diff --git a/gcc/testsuite/g++.dg/overload/error3.C b/gcc/testsuite/g++.dg/overload/error3.C
index 8391875150b..0eb66cb26e2 100644
--- a/gcc/testsuite/g++.dg/overload/error3.C
+++ b/gcc/testsuite/g++.dg/overload/error3.C
@@ -35,7 +35,7 @@ class MainWindow {
void MainWindow::update_status(Result result) {
switch (result) {
status_frame.modify_bg(Gtk::STATE_NORMAL,Gdk::Color::Color("green")); // { dg-error "" }
- // { dg-warning "statement will never be executed" "" { target *-*-* } 37 }
+ // { dg-warning "statement will never be executed" "" { target *-*-* } .-1 }
status_frame.modify_bg(Gtk::STATE_NORMAL,Gdk::Color::Color("red")); // { dg-error "" }
status_label.set_text("Out of memory");
}
diff --git a/gcc/testsuite/g++.dg/overload/koenig1.C b/gcc/testsuite/g++.dg/overload/koenig1.C
index cd82bf25af3..3c1c293560b 100644
--- a/gcc/testsuite/g++.dg/overload/koenig1.C
+++ b/gcc/testsuite/g++.dg/overload/koenig1.C
@@ -14,6 +14,6 @@ void g ()
B *bp;
N::A *ap;
f (bp); // { dg-error "3:'f' was not declared" }
- // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } 16 }
+ // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } .-1 }
f (ap);
}
diff --git a/gcc/testsuite/g++.dg/overload/operator5.C b/gcc/testsuite/g++.dg/overload/operator5.C
index 6e7703b9ccf..329775aa872 100644
--- a/gcc/testsuite/g++.dg/overload/operator5.C
+++ b/gcc/testsuite/g++.dg/overload/operator5.C
@@ -13,4 +13,4 @@ inline bool equalPossiblyIgnoringCase(const String& a,
const String& b,
bool ignoreCase) {
return ignoreCase ? equalIgnoringCase(a, b) : (a == b); } // { dg-error "ambiguous" }
-// { dg-message "note" "note" { target *-*-* } 15 }
+// { dg-message "note" "note" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/overload/template5.C b/gcc/testsuite/g++.dg/overload/template5.C
index b1dc65ebe18..8ff1b3d657c 100644
--- a/gcc/testsuite/g++.dg/overload/template5.C
+++ b/gcc/testsuite/g++.dg/overload/template5.C
@@ -9,7 +9,7 @@ int high(T a, T b, T c) { return a + b + c; } // { dg-message "template" }
int test (void)
{
low (5, 6); // { dg-error "no matching function" }
- // { dg-message "(candidate|3 arguments, 2 provided)" "" { target *-*-* } 11 }
+ // { dg-message "(candidate|3 arguments, 2 provided)" "" { target *-*-* } .-1 }
high (5, 6, 7, 8); // { dg-error "no matching function" }
- // { dg-message "(candidate|3 arguments, 4 provided)" "" { target *-*-* } 13 }
+ // { dg-message "(candidate|3 arguments, 4 provided)" "" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/overload/unknown1.C b/gcc/testsuite/g++.dg/overload/unknown1.C
index 128c4344fed..b4b5c1c48d9 100644
--- a/gcc/testsuite/g++.dg/overload/unknown1.C
+++ b/gcc/testsuite/g++.dg/overload/unknown1.C
@@ -6,5 +6,5 @@ template <typename T> void bar(T f); // { dg-message "note" }
void baz() {
bar(foo); // { dg-error "<unresolved overloaded function type>" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 8 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/overload/using2.C b/gcc/testsuite/g++.dg/overload/using2.C
index 579e4e6a4d6..b1d52f7cf43 100644
--- a/gcc/testsuite/g++.dg/overload/using2.C
+++ b/gcc/testsuite/g++.dg/overload/using2.C
@@ -47,11 +47,11 @@ using std::C1;
void abort (void) throw (); // { dg-message "previous" }
void _exit (int) throw (); // { dg-error "conflicts" "conflicts" }
- // { dg-message "void _exit" "_exit" { target *-*-* } 49 }
+ // { dg-message "void _exit" "_exit" { target *-*-* } .-1 }
extern "C" void c1 (void) throw ();
void C1 (void) throw (); // { dg-error "conflicts" "conflicts" }
- // { dg-message "void C1" "C1" { target *-*-* } 53 }
+ // { dg-message "void C1" "C1" { target *-*-* } .-1 }
extern "C" void c2 (void) throw ();
void C2 (void) throw (); // { dg-message "previous" }
diff --git a/gcc/testsuite/g++.dg/parse/constructor1.C b/gcc/testsuite/g++.dg/parse/constructor1.C
index 1bb9ee0a105..b3a67b76b58 100644
--- a/gcc/testsuite/g++.dg/parse/constructor1.C
+++ b/gcc/testsuite/g++.dg/parse/constructor1.C
@@ -2,7 +2,7 @@
// { dg-options "-fshow-column" }
ACE_Process_Descriptor::ACE_Process_Descriptor () :
- // { dg-error "does not name a type" "no type" { target *-*-* } 4 }
+ // { dg-error "does not name a type" "no type" { target *-*-* } .-1 }
process_ (0)
{
}
diff --git a/gcc/testsuite/g++.dg/parse/crash36.C b/gcc/testsuite/g++.dg/parse/crash36.C
index a5a142c2e0f..4b2384cb9f2 100644
--- a/gcc/testsuite/g++.dg/parse/crash36.C
+++ b/gcc/testsuite/g++.dg/parse/crash36.C
@@ -5,7 +5,7 @@
template <typename... T> struct A // { dg-warning "variadic templates" }
{
static T &t; // { dg-error "not expanded with" "not expanded" }
- // { dg-message "T" "T" { target *-*-* } 7 }
+ // { dg-message "T" "T" { target *-*-* } .-1 }
static const int i = sizeof (++t); // { dg-error "was not declared in this scope" }
};
diff --git a/gcc/testsuite/g++.dg/parse/crash63.C b/gcc/testsuite/g++.dg/parse/crash63.C
index c7189c2c17e..c2e2d5d7ee3 100644
--- a/gcc/testsuite/g++.dg/parse/crash63.C
+++ b/gcc/testsuite/g++.dg/parse/crash63.C
@@ -6,5 +6,5 @@ namespace std
template <class E> class initializer_list {};
template <int N> struct D { D(initializer_list<int>) {} };
D<0> d {1, 2, 3}; // { dg-error "constructor|no matching" }
- // { dg-warning "initializer list" "" { target *-*-* } 8 }
+ // { dg-warning "initializer list" "" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/parse/error11.C b/gcc/testsuite/g++.dg/parse/error11.C
index 846e676c9c0..d118c19deb8 100644
--- a/gcc/testsuite/g++.dg/parse/error11.C
+++ b/gcc/testsuite/g++.dg/parse/error11.C
@@ -17,40 +17,40 @@ struct Foo
void method(void) {
typename Foo<::B>::template Nested<::B> n; // { dg-error "17:'<::' cannot begin" "17-begin" { target { ! c++11 } } }
-// { dg-message "17:'<:' is an alternate spelling" "17-alt" { target { ! c++11 } } 19 }
-// { dg-error "39:'<::' cannot begin" "39-begin" { target { ! c++11 } } 19 }
-// { dg-message "39:'<:' is an alternate spelling" "39-alt" { target { ! c++11 } } 19 }
+// { dg-message "17:'<:' is an alternate spelling" "17-alt" { target { ! c++11 } } .-1 }
+// { dg-error "39:'<::' cannot begin" "39-begin" { target { ! c++11 } } .-2 }
+// { dg-message "39:'<:' is an alternate spelling" "39-alt" { target { ! c++11 } } .-3 }
n.template Nested<B>::method();
n.template Nested<::B>::method(); // { dg-error "22:'<::' cannot begin" "error" { target { ! c++11 } } }
-// { dg-message "22:'<:' is an alternate" "note" { target { ! c++11 } } 24 }
+// { dg-message "22:'<:' is an alternate" "note" { target { ! c++11 } } .-1 }
Nested<B>::method();
Nested<::B>::method(); // { dg-error "11:'<::' cannot begin" "error" { target { ! c++11 } } }
-// { dg-message "11:'<:' is an alternate" "note" { target { ! c++11 } } 27 }
+// { dg-message "11:'<:' is an alternate" "note" { target { ! c++11 } } .-1 }
}
};
template <int N> struct Foo2 {};
template struct Foo2<::B>; // { dg-error "21:'<::' cannot begin" "begin" { target { ! c++11 } } }
-// { dg-message "21:'<:' is an alternate" "alt" { target { ! c++11 } } 33 }
-// { dg-message "25:type/value mismatch" "mismatch" { target *-*-* } 33 }
-// { dg-message "25:expected a constant" "const" { target *-*-* } 33 }
+// { dg-message "21:'<:' is an alternate" "alt" { target { ! c++11 } } .-1 }
+// { dg-message "25:type/value mismatch" "mismatch" { target *-*-* } .-2 }
+// { dg-message "25:expected a constant" "const" { target *-*-* } .-3 }
int value = 0;
void func(void)
{
Foo<::B> f; // { dg-error "cannot begin" "begin" { target { ! c++11 } } }
-// { dg-message "alternate spelling" "alt" { target { ! c++11 } } 42 }
+// { dg-message "alternate spelling" "alt" { target { ! c++11 } } .-1 }
f.Foo<B>::method();
f.Foo<::B>::method(); // { dg-error "8:cannot begin" "begin" { target { ! c++11 } } }
-// { dg-message "8:alternate spelling" "alt" { target { ! c++11 } } 45 }
+// { dg-message "8:alternate spelling" "alt" { target { ! c++11 } } .-1 }
// Check cases where we the token sequence is the correct one, but there
// was no digraph or whitespaces in the middle, so we should not emit
// the special error message.
Foo<: :B> k2; // { dg-bogus "cannot begin|alternate spelling" "smart error should not be triggered here" }
Foo[:B> k1; // { dg-bogus "cannot begin|alternate spelling" "smart error should not be triggered here" }
-// { dg-error "6:missing template arguments before" "template" { target *-*-* } { 51 } }
+// { dg-error "6:missing template arguments before" "template" { target *-*-* } 51 }
// { dg-error "9:expected primary-expression before ':' token" "primary" { target *-*-* } 51 }
// { dg-error "9:expected '\]' before ':' token" "backslash" { target *-*-* } 51 }
// { dg-error "6:missing template arguments before" "template" { target *-*-* } 52 }
@@ -62,7 +62,7 @@ void func(void)
}
template struct Foo<::B>; // { dg-error "20:'<::' cannot begin" "begin" { target { ! c++11 } } }
-// { dg-message "20:is an alternate" "alt" { target { ! c++11 } } 64 }
+// { dg-message "20:is an alternate" "alt" { target { ! c++11 } } .-1 }
// On the first error message, an additional note about the use of
// -fpermissive should be present
diff --git a/gcc/testsuite/g++.dg/parse/error12.C b/gcc/testsuite/g++.dg/parse/error12.C
index 3e6d374e351..f146a6d306f 100644
--- a/gcc/testsuite/g++.dg/parse/error12.C
+++ b/gcc/testsuite/g++.dg/parse/error12.C
@@ -9,5 +9,5 @@ template <class A>
struct Foo {};
Foo<::B> foo; // { dg-bogus "error" "error in place of warning" { target { ! c++11 } } }
-// { dg-warning "4: '<::' cannot begin a template-argument list" "warning <::" { target { ! c++11 } } 11 }
-// { dg-message "4:'<:' is an alternate spelling for '.'. Insert whitespace between '<' and '::'" "note <:" { target { ! c++11 } } 11 }
+// { dg-warning "4: '<::' cannot begin a template-argument list" "warning <::" { target { ! c++11 } } .-1 }
+// { dg-message "4:'<:' is an alternate spelling for '.'. Insert whitespace between '<' and '::'" "note <:" { target { ! c++11 } } .-2 }
diff --git a/gcc/testsuite/g++.dg/parse/error14.C b/gcc/testsuite/g++.dg/parse/error14.C
index 37a3d2001ff..e87ce83201d 100644
--- a/gcc/testsuite/g++.dg/parse/error14.C
+++ b/gcc/testsuite/g++.dg/parse/error14.C
@@ -20,5 +20,5 @@ struct X
// }
}; // { dg-error "2:expected '.' at end of input" "at end of input" }
- // { dg-error "1:expected primary-expression before '.' token" "primary" { target *-*-* } 22 }
- // { dg-error "1:expected unqualified-id" "unqualified-id" { target *-*-* } 22 }
+ // { dg-error "1:expected primary-expression before '.' token" "primary" { target *-*-* } .-1 }
+ // { dg-error "1:expected unqualified-id" "unqualified-id" { target *-*-* } .-2 }
diff --git a/gcc/testsuite/g++.dg/parse/error2.C b/gcc/testsuite/g++.dg/parse/error2.C
index ac7a14cb9de..0675730461f 100644
--- a/gcc/testsuite/g++.dg/parse/error2.C
+++ b/gcc/testsuite/g++.dg/parse/error2.C
@@ -8,7 +8,7 @@ int func(double);
template <int>
struct Foo {};
-Foo<func(g)> f; // { dg-error "5:'int func.double.' cannot appear in a constant-expression" "func double" { target *-*-* } 11 }
-// { dg-error "10:'g' cannot appear in a constant-expression" "g" { target *-*-* } 11 }
-// { dg-error "11:a function call cannot appear in a constant-expression" "call" { target *-*-* } 11 }
-// { dg-error "12:template argument 1 is invalid" "invalid template argument" { target *-*-* } 11 }
+Foo<func(g)> f; // { dg-error "5:'int func.double.' cannot appear in a constant-expression" "func double" { target *-*-* } . }
+// { dg-error "10:'g' cannot appear in a constant-expression" "g" { target *-*-* } .-1 }
+// { dg-error "11:a function call cannot appear in a constant-expression" "call" { target *-*-* } .-2 }
+// { dg-error "12:template argument 1 is invalid" "invalid template argument" { target *-*-* } .-3 }
diff --git a/gcc/testsuite/g++.dg/parse/error21.C b/gcc/testsuite/g++.dg/parse/error21.C
index 469e5fb4e1c..8c717d7e811 100644
--- a/gcc/testsuite/g++.dg/parse/error21.C
+++ b/gcc/testsuite/g++.dg/parse/error21.C
@@ -8,6 +8,6 @@ void foo()
// Check that we do not complain about an unused
// compiler-generated variable.
A& = a; // { dg-error "6:expected unqualified-id before '=' token" "6" }
- // { dg-error "8:'a' was not declared in this scope" "8" { target *-*-* } 10 }
+ // { dg-error "8:'a' was not declared in this scope" "8" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/parse/error26.C b/gcc/testsuite/g++.dg/parse/error26.C
index 1084e76d34a..95f299163e9 100644
--- a/gcc/testsuite/g++.dg/parse/error26.C
+++ b/gcc/testsuite/g++.dg/parse/error26.C
@@ -4,11 +4,11 @@
void foo()
{
if (({int c[2];})) ; // { dg-error "7:ISO C.. forbids" "7" }
- // { dg-error "17:could not convert" "17" { target *-*-* } 6 }
+ // { dg-error "17:could not convert" "17" { target *-*-* } .-1 }
}
void bar()
{
if (({})); // { dg-error "7:ISO C.. forbids" "7" }
- // { dg-error "11:could not convert" "11" { target *-*-* } 12 }
+ // { dg-error "11:could not convert" "11" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/parse/error3.C b/gcc/testsuite/g++.dg/parse/error3.C
index 938ab45b24c..cf01dbe6da4 100644
--- a/gcc/testsuite/g++.dg/parse/error3.C
+++ b/gcc/testsuite/g++.dg/parse/error3.C
@@ -5,4 +5,4 @@ static void InstantiateConstraint(const float&, unsigned,
void(*AddFunction)(const TYPE&,bool&,
char*, char*,
unsigned*));
-// { dg-error "60: 'TYPE' does not name a type" "does not" { target *-*-* } { 5 } }
+// { dg-error "60: 'TYPE' does not name a type" "does not" { target *-*-* } 5 }
diff --git a/gcc/testsuite/g++.dg/parse/error36.C b/gcc/testsuite/g++.dg/parse/error36.C
index 92e27a928df..46080b4835d 100644
--- a/gcc/testsuite/g++.dg/parse/error36.C
+++ b/gcc/testsuite/g++.dg/parse/error36.C
@@ -12,7 +12,7 @@ void f(T t)
{
typedef A<T>::foo type; // { dg-error "typename" }
A<T>::bar b; // { dg-error "typename" "typename" }
-} // { dg-error "expected ';'" "expected" { target *-*-* } 14 }
+} // { dg-error "expected ';'" "expected" { target *-*-* } .-1 }
// PR c++/36353
template <class T> struct B
@@ -20,7 +20,7 @@ template <class T> struct B
void f()
{
A<T>::baz z; // { dg-error "typename" "typename" }
- } // { dg-error "expected ';'" "expected" { target *-*-* } 22 }
+ } // { dg-error "expected ';'" "expected" { target *-*-* } .-1 }
};
// PR c++/40738
diff --git a/gcc/testsuite/g++.dg/parse/friend12.C b/gcc/testsuite/g++.dg/parse/friend12.C
index f0e28a8527a..84d6e25e766 100644
--- a/gcc/testsuite/g++.dg/parse/friend12.C
+++ b/gcc/testsuite/g++.dg/parse/friend12.C
@@ -3,5 +3,5 @@
struct A
{
friend int i = 0; // { dg-error "cannot be declared friend" }
-// { dg-error "non-static data member" "" { target { ! c++11 } } 5 }
+// { dg-error "non-static data member" "" { target { ! c++11 } } .-1 }
};
diff --git a/gcc/testsuite/g++.dg/parse/invalid-op1.C b/gcc/testsuite/g++.dg/parse/invalid-op1.C
index 8d745c1a61d..e07ed49de8a 100644
--- a/gcc/testsuite/g++.dg/parse/invalid-op1.C
+++ b/gcc/testsuite/g++.dg/parse/invalid-op1.C
@@ -7,7 +7,7 @@ template <int I> struct A
template <int> struct B
{
enum { e = I * A<I-1>::B }; // { dg-error "dependent-name" "depname" }
- // { dg-message "note" "note" { target *-*-* } 9 }
+ // { dg-message "note" "note" { target *-*-* } .-1 }
};
};
diff --git a/gcc/testsuite/g++.dg/parse/missing-template1.C b/gcc/testsuite/g++.dg/parse/missing-template1.C
index e5e03146dbb..fcc3aa0c3ff 100644
--- a/gcc/testsuite/g++.dg/parse/missing-template1.C
+++ b/gcc/testsuite/g++.dg/parse/missing-template1.C
@@ -13,8 +13,8 @@ template <typename T> struct A
template <typename T> void foo()
{
typedef typename A<T>::B<T>::X Y; // { dg-error "non-template" "non" }
- // { dg-error "not declare" "decl" { target *-*-* } 15 }
- // { dg-message "note" "note" { target *-*-* } 15 }
+ // { dg-error "not declare" "decl" { target *-*-* } .-1 }
+ // { dg-message "note" "note" { target *-*-* } .-2 }
}
void bar()
diff --git a/gcc/testsuite/g++.dg/parse/parser-pr28152-2.C b/gcc/testsuite/g++.dg/parse/parser-pr28152-2.C
index c6bc5d39bf3..11e1063e12a 100644
--- a/gcc/testsuite/g++.dg/parse/parser-pr28152-2.C
+++ b/gcc/testsuite/g++.dg/parse/parser-pr28152-2.C
@@ -8,4 +8,4 @@ main (void)
z = __complex__ (1.90000007326203904e+19, 0.0); // { dg-error "expected primary-expression before '__complex__'" "primary-expression" }
z = __complex__ (1.0e+0, 0.0) / z; // { dg-error "expected primary-expression before '__complex__'" "primaty-expression" }
- // { dg-error "at end of input" "end" { target *-*-* } 10 }
+ // { dg-error "at end of input" "end" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/parse/parser-pr28152.C b/gcc/testsuite/g++.dg/parse/parser-pr28152.C
index 4d08fd0633f..ceefee3790c 100644
--- a/gcc/testsuite/g++.dg/parse/parser-pr28152.C
+++ b/gcc/testsuite/g++.dg/parse/parser-pr28152.C
@@ -8,4 +8,4 @@ main (void)
z = _Complex (1.90000007326203904e+19, 0.0); // { dg-error "expected primary-expression before '_Complex'" "primary-expression" }
z = _Complex (1.0e+0, 0.0) / z; // { dg-error "expected primary-expression before '_Complex'" "primary-expression" }
- // { dg-error "at end of input" "end" { target *-*-* } 10 }
+ // { dg-error "at end of input" "end" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/parse/pr16696-permissive.C b/gcc/testsuite/g++.dg/parse/pr16696-permissive.C
index 1d8a920ad25..c8fe5c658f1 100644
--- a/gcc/testsuite/g++.dg/parse/pr16696-permissive.C
+++ b/gcc/testsuite/g++.dg/parse/pr16696-permissive.C
@@ -12,6 +12,6 @@ int main () {
x++; // { dg-warning "trying prefix operator" }
y++; // { dg-warning "trying prefix operator" }
- // { dg-error "no match" "" { target *-*-* } 14 }
+ // { dg-error "no match" "" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/parse/pr16696.C b/gcc/testsuite/g++.dg/parse/pr16696.C
index 902e2a1a90b..ae15b43e5ad 100644
--- a/gcc/testsuite/g++.dg/parse/pr16696.C
+++ b/gcc/testsuite/g++.dg/parse/pr16696.C
@@ -10,8 +10,8 @@ int main () {
X x;
Y y;
x++; // { dg-bogus "trying prefix operator" }
- // { dg-error "fpermissive" "" { target *-*-* } 12 }
+ // { dg-error "fpermissive" "" { target *-*-* } .-1 }
y++; // { dg-bogus "trying prefix operator" }
- // { dg-error "fpermissive" "" { target *-*-* } 14 }
+ // { dg-error "fpermissive" "" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/parse/pr69628.C b/gcc/testsuite/g++.dg/parse/pr69628.C
index 0bbd08b73d9..7643fd1b35e 100644
--- a/gcc/testsuite/g++.dg/parse/pr69628.C
+++ b/gcc/testsuite/g++.dg/parse/pr69628.C
@@ -2,4 +2,4 @@
// { dg-do compile }
0''; // { dg-error "empty character constant" }
-// { dg-error "expected unqualified-id before numeric constant" "" { target *-*-* } 4 }
+// { dg-error "expected unqualified-id before numeric constant" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/parse/ret-type2.C b/gcc/testsuite/g++.dg/parse/ret-type2.C
index 35638c28afc..4b7a0457edd 100644
--- a/gcc/testsuite/g++.dg/parse/ret-type2.C
+++ b/gcc/testsuite/g++.dg/parse/ret-type2.C
@@ -1,10 +1,10 @@
struct S {} f(); // { dg-error "return" "err" }
-// { dg-message "note" "note" { target *-*-* } 1 }
+// { dg-message "note" "note" { target *-*-* } .-1 }
struct T {} *g(); // { dg-error "return" }
-// { dg-message "note" "note" { target *-*-* } 3 }
+// { dg-message "note" "note" { target *-*-* } .-1 }
struct U {} h() {} // { dg-error "return" }
-// { dg-message "note" "note" { target *-*-* } 5 }
+// { dg-message "note" "note" { target *-*-* } .-1 }
struct V {} *i() {} // { dg-error "return" }
-// { dg-message "note" "note" { target *-*-* } 7 }
+// { dg-message "note" "note" { target *-*-* } .-1 }
struct W {} (*p) (); // { dg-error "return" }
-// { dg-message "note" "note" { target *-*-* } 9 }
+// { dg-message "note" "note" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/parse/specialization1.C b/gcc/testsuite/g++.dg/parse/specialization1.C
index 8a47f177205..44a98baa2f4 100644
--- a/gcc/testsuite/g++.dg/parse/specialization1.C
+++ b/gcc/testsuite/g++.dg/parse/specialization1.C
@@ -4,4 +4,4 @@
template <typename T> class A;
template <typename T> class A<T>::B; // { dg-error "declaration" "err" }
-// { dg-warning "declaration" "warn" { target *-*-* } 6 }
+// { dg-warning "declaration" "warn" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/parse/template3.C b/gcc/testsuite/g++.dg/parse/template3.C
index d10d46d8133..c284a5ee040 100644
--- a/gcc/testsuite/g++.dg/parse/template3.C
+++ b/gcc/testsuite/g++.dg/parse/template3.C
@@ -14,6 +14,6 @@ struct X : Outer<b>::template Inner<T>
template <bool b, typename T>
struct Y : Outer<b>::Inner<T> {}; // { dg-error "used as template" "temp" }
-// { dg-error "expected" "exp" { target *-*-* } 16 }
-// { dg-message "note" "note" { target *-*-* } 16 }
+// { dg-error "expected" "exp" { target *-*-* } .-1 }
+// { dg-message "note" "note" { target *-*-* } .-2 }
diff --git a/gcc/testsuite/g++.dg/parse/template9.C b/gcc/testsuite/g++.dg/parse/template9.C
index 17b7da91f37..fb6cfba7157 100644
--- a/gcc/testsuite/g++.dg/parse/template9.C
+++ b/gcc/testsuite/g++.dg/parse/template9.C
@@ -1,6 +1,6 @@
template <typename T>
void f() {
g(); // { dg-error "must be available" "err" }
- // { dg-message "note" "note" { target *-*-* } 3 }
+ // { dg-message "note" "note" { target *-*-* } .-1 }
h(3); // { dg-error "must be available" }
}
diff --git a/gcc/testsuite/g++.dg/parse/typename11.C b/gcc/testsuite/g++.dg/parse/typename11.C
index bbaaec72bcc..22f300707c8 100644
--- a/gcc/testsuite/g++.dg/parse/typename11.C
+++ b/gcc/testsuite/g++.dg/parse/typename11.C
@@ -11,6 +11,6 @@ template <int dim> struct Y : X<dim> {
// note: I is nested type in X, not Y!
template <int dim>
Y<dim>::I::I () {} // { dg-error "dependent typedef" "typedef" }
-// { dg-error "no type|dependent type" "no type" { target *-*-* } 13 }
+// { dg-error "no type|dependent type" "no type" { target *-*-* } .-1 }
template struct Y<1>;
diff --git a/gcc/testsuite/g++.dg/plugin/attribute_plugin-test-1.C b/gcc/testsuite/g++.dg/plugin/attribute_plugin-test-1.C
index 1ca321d1fde..d68219a124e 100644
--- a/gcc/testsuite/g++.dg/plugin/attribute_plugin-test-1.C
+++ b/gcc/testsuite/g++.dg/plugin/attribute_plugin-test-1.C
@@ -5,7 +5,7 @@ void normal_func (char __attribute__((user("param"))) c, char);
void normal_func (char c, char __attribute__((user("param"))) c2)
{
} // { dg-warning "attribute 'user' on param 'c' of function normal_func" }
-// { dg-warning "attribute 'user' on param 'c2' of function normal_func" "" { target *-*-* } 7 }
+// { dg-warning "attribute 'user' on param 'c2' of function normal_func" "" { target *-*-* } .-1 }
class Foo {
void method (char __attribute__((user("param"))) c);
diff --git a/gcc/testsuite/g++.dg/pr45330.C b/gcc/testsuite/g++.dg/pr45330.C
index 02d9b3f63bb..f89d1e5c93b 100644
--- a/gcc/testsuite/g++.dg/pr45330.C
+++ b/gcc/testsuite/g++.dg/pr45330.C
@@ -32,6 +32,6 @@ namespace E
int bar()
{
return foo; // { dg-error "was not declared" }
- // { dg-message "maximum limit of 4 namespaces" "maximum limit" { target *-*-* } 34 }
- // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } 34 }
+ // { dg-message "maximum limit of 4 namespaces" "maximum limit" { target *-*-* } .-1 }
+ // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } .-2 }
}
diff --git a/gcc/testsuite/g++.dg/pr80374.C b/gcc/testsuite/g++.dg/pr80374.C
new file mode 100644
index 00000000000..83f778be638
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pr80374.C
@@ -0,0 +1,22 @@
+// { dg-do compile }
+// { dg-options "-O1 -std=c++11" }
+void a (const char *, const char *, int, const char *)
+ __attribute__ ((__noreturn__));
+template <typename b, int>
+void
+c () try
+ {
+ throw;
+ }
+catch (b d)
+ {
+ if (d)
+ a ("", "", 2, __PRETTY_FUNCTION__);
+ }
+void
+foo ()
+{
+ using e = decltype (nullptr);
+ c<volatile e, true> ();
+}
+
diff --git a/gcc/testsuite/g++.dg/rtti/typeid6.C b/gcc/testsuite/g++.dg/rtti/typeid6.C
index d8879c59ced..25f241ff4bd 100644
--- a/gcc/testsuite/g++.dg/rtti/typeid6.C
+++ b/gcc/testsuite/g++.dg/rtti/typeid6.C
@@ -8,5 +8,5 @@ namespace std
template<int> void foo()
{
!typeid(void); // { dg-error "!typeid\\(void\\)|candidate is" }
- // { dg-message "" "match candidate text" { target *-*-* } 10 }
+ // { dg-message "" "match candidate text" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/spellcheck-fields.C b/gcc/testsuite/g++.dg/spellcheck-fields.C
index 1ac77a6efe8..504992aa541 100644
--- a/gcc/testsuite/g++.dg/spellcheck-fields.C
+++ b/gcc/testsuite/g++.dg/spellcheck-fields.C
@@ -38,7 +38,7 @@ int test4 (struct foo *ptr)
int test5 (struct foo *ptr)
{
return ptr->this_is_unlike_any_of_the_fields; /* { dg-bogus "did you mean" } */
- /* { dg-error "has no member named" "" { target *-*-* } 40 } */
+ /* { dg-error "has no member named" "" { target *-*-* } .-1 } */
}
union u
diff --git a/gcc/testsuite/g++.dg/spellcheck-typenames.C b/gcc/testsuite/g++.dg/spellcheck-typenames.C
index 9aa5b72cc54..01bcf78781e 100644
--- a/gcc/testsuite/g++.dg/spellcheck-typenames.C
+++ b/gcc/testsuite/g++.dg/spellcheck-typenames.C
@@ -70,7 +70,7 @@ int64 i; // { dg-error "1: 'int64' does not name a type; did you mean 'int64_t'?
/* Verify that gcc doesn't offer nonsensical suggestions. */
nonsensical_suggestion_t var; /* { dg-bogus "did you mean" } */
-/* { dg-error "'nonsensical_suggestion_t' does not name a type" "" { target { *-*-* } } 72 } */
+/* { dg-error "'nonsensical_suggestion_t' does not name a type" "" { target { *-*-* } } .-1 } */
/* { dg-begin-multiline-output "" }
nonsensical_suggestion_t var;
^~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/gcc/testsuite/g++.dg/tc1/dr108.C b/gcc/testsuite/g++.dg/tc1/dr108.C
index 43bae15eaf1..03654396447 100644
--- a/gcc/testsuite/g++.dg/tc1/dr108.C
+++ b/gcc/testsuite/g++.dg/tc1/dr108.C
@@ -8,6 +8,6 @@ template <class T> struct S {
};
struct I2 : public I1 {
X x; // { dg-error "does not name a type" "name" }
- // { dg-message "note" "note" { target *-*-* } 10 }
+ // { dg-message "note" "note" { target *-*-* } .-1 }
};
};
diff --git a/gcc/testsuite/g++.dg/tc1/dr147.C b/gcc/testsuite/g++.dg/tc1/dr147.C
index 0fb97e8ab7d..6b656491e81 100644
--- a/gcc/testsuite/g++.dg/tc1/dr147.C
+++ b/gcc/testsuite/g++.dg/tc1/dr147.C
@@ -21,7 +21,7 @@ void A::f()
void f()
{
A::A a; // { dg-error "constructor" "constructor" }
-} // { dg-error "" "error cascade" { target *-*-* } 23 } error cascade
+} // { dg-error "" "error cascade" { target *-*-* } .-1 } error cascade
}
namespace N2 {
diff --git a/gcc/testsuite/g++.dg/template/arg7.C b/gcc/testsuite/g++.dg/template/arg7.C
index dfd26bd2d97..4575f2513d6 100644
--- a/gcc/testsuite/g++.dg/template/arg7.C
+++ b/gcc/testsuite/g++.dg/template/arg7.C
@@ -3,7 +3,7 @@
template<typename T> struct A
{
template<template<T> class> struct B {}; // { dg-error "void|mismatch|expected" }
- // { dg-bogus "not supported" "" { target *-*-* } 5 }
+ // { dg-bogus "not supported" "" { target *-*-* } .-1 }
template<T> struct C; // { dg-error "void" }
B<C> b;
};
diff --git a/gcc/testsuite/g++.dg/template/conv11.C b/gcc/testsuite/g++.dg/template/conv11.C
index f08e756a3ee..b9aadf7b596 100644
--- a/gcc/testsuite/g++.dg/template/conv11.C
+++ b/gcc/testsuite/g++.dg/template/conv11.C
@@ -7,5 +7,5 @@ struct A
int main()
{
A().operator int(); // { dg-error "operator int" }
- // { dg-message "(candidate|mismatched types)" "candidate note" { target *-*-* } 9 }
+ // { dg-message "(candidate|mismatched types)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/template/crash13.C b/gcc/testsuite/g++.dg/template/crash13.C
index 14bec68e9b3..6e0fb393121 100644
--- a/gcc/testsuite/g++.dg/template/crash13.C
+++ b/gcc/testsuite/g++.dg/template/crash13.C
@@ -13,7 +13,7 @@ template <typename T> struct C
{
typedef typename A<T>::B X;
X::Y; // { dg-error "not a base type" }
-// { dg-warning "deprecated" "" { target *-*-* } 15 }
+// { dg-warning "deprecated" "" { target *-*-* } .-1 }
};
C<void> c;
diff --git a/gcc/testsuite/g++.dg/template/crash55.C b/gcc/testsuite/g++.dg/template/crash55.C
index b9b29f7fc8d..eac5d3cb195 100644
--- a/gcc/testsuite/g++.dg/template/crash55.C
+++ b/gcc/testsuite/g++.dg/template/crash55.C
@@ -1,7 +1,7 @@
//PR c++/27668
template<typename class T, T = T()> // { dg-error "nested-name-specifier|two or more|valid type" }
-// { dg-error "cast" "" { target c++98_only } 3 }
+// { dg-error "cast" "" { target c++98_only } .-1 }
struct A {};
template<int> void foo(A<int>); // { dg-error "template argument 2" "" { target c++98_only } }
diff --git a/gcc/testsuite/g++.dg/template/dependent-expr5.C b/gcc/testsuite/g++.dg/template/dependent-expr5.C
index 8d14553352d..85d91cfcb6f 100644
--- a/gcc/testsuite/g++.dg/template/dependent-expr5.C
+++ b/gcc/testsuite/g++.dg/template/dependent-expr5.C
@@ -40,12 +40,12 @@ struct foo {
bind (&bar::baikt);
bind (&barf); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 42 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
bind (&foo::barf); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 44 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
bindm (&barf); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 47 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
bindm (&foo::barf);
bindn (&barf);
@@ -56,12 +56,12 @@ struct foo {
bind (&bark); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 58 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
bind (&bar::bark); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 60 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
bindm (&bark); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 63 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
bindm (&bar::bark);
bindn (&bark);
@@ -92,12 +92,12 @@ struct foo {
bind (&barT::baikt);
bind (&barf); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 94 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
bind (&foo::barf); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 96 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
bindm (&barf); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 99 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
bindm (&foo::barf);
bindn (&barf);
@@ -108,12 +108,12 @@ struct foo {
bind (&bark); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 110 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
bind (&barT::bark); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 112 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
bindm (&bark); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 115 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
bindm (&barT::bark);
bindn (&bark);
diff --git a/gcc/testsuite/g++.dg/template/error17.C b/gcc/testsuite/g++.dg/template/error17.C
index 10c8b824ae5..30a693f84d1 100644
--- a/gcc/testsuite/g++.dg/template/error17.C
+++ b/gcc/testsuite/g++.dg/template/error17.C
@@ -5,5 +5,5 @@ void
foo()
{
union { struct { }; }; // { dg-error "prohibits anonymous struct" "anon" }
- // { dg-error "not inside" "not inside" { target *-*-* } 7 }
+ // { dg-error "not inside" "not inside" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/template/error33.C b/gcc/testsuite/g++.dg/template/error33.C
index b6a2a8ae820..f71496d177d 100644
--- a/gcc/testsuite/g++.dg/template/error33.C
+++ b/gcc/testsuite/g++.dg/template/error33.C
@@ -7,6 +7,6 @@ template<int> struct A
};
template<int> int A<0>::i(0); // { dg-error "template" "error" }
-// { dg-message "note" "note" { target *-*-* } 9 }
+// { dg-message "note" "note" { target *-*-* } .-1 }
A<0> a;
diff --git a/gcc/testsuite/g++.dg/template/error4.C b/gcc/testsuite/g++.dg/template/error4.C
index 12942fcb773..9d76561aa02 100644
--- a/gcc/testsuite/g++.dg/template/error4.C
+++ b/gcc/testsuite/g++.dg/template/error4.C
@@ -6,4 +6,4 @@ template<class T> struct C1
template<class T, class U>
void foo(typename C1<T>::C2<U>::Type *) { } // { dg-error "template" "error " }
-// { dg-message "note" "note" { target *-*-* } 8 }
+// { dg-message "note" "note" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/template/error50.C b/gcc/testsuite/g++.dg/template/error50.C
index d8702f8881d..f85470bf4d1 100644
--- a/gcc/testsuite/g++.dg/template/error50.C
+++ b/gcc/testsuite/g++.dg/template/error50.C
@@ -16,4 +16,4 @@ int main()
{
D d;
f(d); // { dg-error "no matching" }
-} // { dg-message "'A<T>' is an ambiguous base" "" { target *-*-* } 18 }
+} // { dg-message "'A<T>' is an ambiguous base" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/template/error53.C b/gcc/testsuite/g++.dg/template/error53.C
index 5976c868d6d..221003477a4 100644
--- a/gcc/testsuite/g++.dg/template/error53.C
+++ b/gcc/testsuite/g++.dg/template/error53.C
@@ -10,4 +10,4 @@ void f()
{
S<1000> t;
g(t); // { dg-error "no matching" }
-} // { dg-message "mismatched types 'long long int' and 'int'" "" { target *-*-* } 12 }
+} // { dg-message "mismatched types 'long long int' and 'int'" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/template/friend.C b/gcc/testsuite/g++.dg/template/friend.C
index e315a1a0902..eccb60b852a 100644
--- a/gcc/testsuite/g++.dg/template/friend.C
+++ b/gcc/testsuite/g++.dg/template/friend.C
@@ -26,5 +26,5 @@ int main()
{
s<int>::t y;
cout << y; // { dg-error "" }
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 28 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/template/func2.C b/gcc/testsuite/g++.dg/template/func2.C
index 746f0e279a7..0116f23d945 100644
--- a/gcc/testsuite/g++.dg/template/func2.C
+++ b/gcc/testsuite/g++.dg/template/func2.C
@@ -4,8 +4,8 @@ typedef void (*fptr)();
fptr zeroptr = 0;
template<typename T, fptr F> struct foo { };
template<typename T> struct foo<T,zeroptr> { };
-// { dg-error "not a valid template argument" "not valid" { target *-*-* } 6 }
-// { dg-message "must be the address" "must be the address " { target *-*-* } 6 }
+// { dg-error "not a valid template argument" "not valid" { target *-*-* } .-1 }
+// { dg-message "must be the address" "must be the address " { target *-*-* } .-2 }
// The rest is needed to trigger the ICE in 4.0 to 4.3:
void f() { }
diff --git a/gcc/testsuite/g++.dg/template/local6.C b/gcc/testsuite/g++.dg/template/local6.C
index 3eb828fd711..94c19be56a2 100644
--- a/gcc/testsuite/g++.dg/template/local6.C
+++ b/gcc/testsuite/g++.dg/template/local6.C
@@ -5,7 +5,7 @@ template <class T> struct PCVector2 // { dg-message "note" }
PCVector2<T> operator- (const PCVector2<T> &ov) const
{
return PCVector2<T>(ov.xFIELD, ov.yFIELD); // { dg-error "matching" }
- // { dg-message "(candidate|expects 1 argument, 2 provided|cannot convert)" "candidate note" { target *-*-* } 7 }
+ // { dg-message "(candidate|expects 1 argument, 2 provided|cannot convert)" "candidate note" { target *-*-* } .-1 }
}
T xFIELD, yFIELD;
diff --git a/gcc/testsuite/g++.dg/template/member5.C b/gcc/testsuite/g++.dg/template/member5.C
index 0cdd52aea89..dbce9a84b71 100644
--- a/gcc/testsuite/g++.dg/template/member5.C
+++ b/gcc/testsuite/g++.dg/template/member5.C
@@ -28,6 +28,6 @@ struct S {
template< typename _A > void S::foo() {}
template void S::foo< 0 >(); // { dg-error "no definition available" "no def" }
- // { dg-message "required" "instantiated" { target *-*-* } 30 }
+ // { dg-message "required" "instantiated" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/template/meminit1.C b/gcc/testsuite/g++.dg/template/meminit1.C
index 1dc96c472ad..5a9edf452a4 100644
--- a/gcc/testsuite/g++.dg/template/meminit1.C
+++ b/gcc/testsuite/g++.dg/template/meminit1.C
@@ -3,6 +3,6 @@ template <class T >
struct S
{
S() : S() {} // { dg-message "delegating constructors" }
-}; // { dg-error "delegates to itself" "" { target *-*-* } 5 }
+}; // { dg-error "delegates to itself" "" { target *-*-* } .-1 }
S<int> s;
diff --git a/gcc/testsuite/g++.dg/template/nested3.C b/gcc/testsuite/g++.dg/template/nested3.C
index 5dcbf1961fa..a5ec7c303a1 100644
--- a/gcc/testsuite/g++.dg/template/nested3.C
+++ b/gcc/testsuite/g++.dg/template/nested3.C
@@ -18,8 +18,8 @@ class B {
int _j;
};
A<U,SubB1>::SubA<SubB2> _a; // { dg-error "not a base type" "not base" }
- // { dg-message "note" "note" { target *-*-* } 20 }
- // { dg-error "non-template" "non-template" { target *-*-* } 20 }
+ // { dg-message "note" "note" { target *-*-* } .-1 }
+ // { dg-error "non-template" "non-template" { target *-*-* } .-2 }
};
diff --git a/gcc/testsuite/g++.dg/template/nontype6.C b/gcc/testsuite/g++.dg/template/nontype6.C
index b51474f83ea..2da57b74629 100644
--- a/gcc/testsuite/g++.dg/template/nontype6.C
+++ b/gcc/testsuite/g++.dg/template/nontype6.C
@@ -13,7 +13,7 @@ template <class T>
void func(void)
{
(void)A<T>::type(); // { dg-error "non-type" "non-type" }
-// { dg-message "if a type" "note" { target *-*-* } 15 }
+// { dg-message "if a type" "note" { target *-*-* } .-1 }
}
template void func<float>(void); // { dg-message "required from here" }
diff --git a/gcc/testsuite/g++.dg/template/overload12.C b/gcc/testsuite/g++.dg/template/overload12.C
index 656dcaefeed..3251474bd6a 100644
--- a/gcc/testsuite/g++.dg/template/overload12.C
+++ b/gcc/testsuite/g++.dg/template/overload12.C
@@ -6,12 +6,12 @@ int foo(T a, T b) {return a + b;} // { dg-message "template" }
template<typename T, typename T2>
int foo(T a, T2& b, T2 c) {return a + b;} // { dg-message "template" }
int foo(char*, S&); // { dg-message "foo" }
-// { dg-message "candidate expects 2 arguments, 3 provided" "arity" { target *-*-* } 8 }
+// { dg-message "candidate expects 2 arguments, 3 provided" "arity" { target *-*-* } .-1 }
int foo2(int x)
{
S s={1,2};
char c;
foo(c, 2, c); // { dg-error "no matching function" }
- // { dg-message "(candidate|deduced conflicting types for)" "candidate note" { target *-*-* } 15 }
+ // { dg-message "(candidate|deduced conflicting types for)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/template/ptrmem8.C b/gcc/testsuite/g++.dg/template/ptrmem8.C
index d0473f5cc16..85ffa4a6e8d 100644
--- a/gcc/testsuite/g++.dg/template/ptrmem8.C
+++ b/gcc/testsuite/g++.dg/template/ptrmem8.C
@@ -16,9 +16,9 @@ template <int (D::*fun)() const> int Get(); // { dg-message "note" }
int main ()
{
Get<&B::I>(); // { dg-error "not a valid template argument" "not valid" }
- // { dg-error "no match" "no match" { target *-*-* } 18 }
- // { dg-message "note" "note" { target *-*-* } 18 }
+ // { dg-error "no match" "no match" { target *-*-* } .-1 }
+ // { dg-message "note" "note" { target *-*-* } .-2 }
Get<&D::I>(); // { dg-error "not a valid template argument" "not valid" }
- // { dg-error "no match" "no match" { target *-*-* } 21 }
- // { dg-message "note" "note" { target *-*-* } 21 }
+ // { dg-error "no match" "no match" { target *-*-* } .-1 }
+ // { dg-message "note" "note" { target *-*-* } .-2 }
}
diff --git a/gcc/testsuite/g++.dg/template/qualified-id1.C b/gcc/testsuite/g++.dg/template/qualified-id1.C
index c46a6a4de5d..af17b2d7a28 100644
--- a/gcc/testsuite/g++.dg/template/qualified-id1.C
+++ b/gcc/testsuite/g++.dg/template/qualified-id1.C
@@ -18,7 +18,7 @@ template <typename T> void foo()
{
T::C (); // { dg-error "parsed as a non-type|if a type is meant" }
T::template B<false>(); // { dg-error "parsed as a non-type" "non-type" }
- // { dg-message "if a type" "if a type" { target *-*-* } 20 }
+ // { dg-message "if a type" "if a type" { target *-*-* } .-1 }
}
void bar()
diff --git a/gcc/testsuite/g++.dg/template/spec15.C b/gcc/testsuite/g++.dg/template/spec15.C
index 37fbc08e37e..e76b9112d96 100644
--- a/gcc/testsuite/g++.dg/template/spec15.C
+++ b/gcc/testsuite/g++.dg/template/spec15.C
@@ -19,7 +19,7 @@ struct A<float> {
};
template <> void A<int>::f (int); // { dg-error "" }
-// { dg-message "need 2" "" { target *-*-* } 21 }
+// { dg-message "need 2" "" { target *-*-* } .-1 }
template <> template <> void A<int>::f (int);
template <> void A<int>::f2 (int);
diff --git a/gcc/testsuite/g++.dg/template/static1.C b/gcc/testsuite/g++.dg/template/static1.C
index 76736acdb21..5218414b7db 100644
--- a/gcc/testsuite/g++.dg/template/static1.C
+++ b/gcc/testsuite/g++.dg/template/static1.C
@@ -1,6 +1,6 @@
template <typename T> struct A
{
static const int t[1][1]={{0}}; // { dg-error "20:'constexpr' needed" "" { target c++11 } }
- // { dg-error "20:invalid in-class" "" { target c++98_only } 3 }
- // { dg-error "28:a brace-enclosed" "" { target c++98_only } 3 }
+ // { dg-error "20:invalid in-class" "" { target c++98_only } .-1 }
+ // { dg-error "28:a brace-enclosed" "" { target c++98_only } .-2 }
};
diff --git a/gcc/testsuite/g++.dg/template/static10.C b/gcc/testsuite/g++.dg/template/static10.C
index 881db081c4f..5740ac44eea 100644
--- a/gcc/testsuite/g++.dg/template/static10.C
+++ b/gcc/testsuite/g++.dg/template/static10.C
@@ -20,5 +20,5 @@ namespace std
{
template<> void
vector<int, allocator<int> >::swap(vector<int, allocator<int> >&) { } // { dg-error "" }
- // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } 22 }
+ // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/template/static2.C b/gcc/testsuite/g++.dg/template/static2.C
index d8ce087d229..84342be4d89 100644
--- a/gcc/testsuite/g++.dg/template/static2.C
+++ b/gcc/testsuite/g++.dg/template/static2.C
@@ -5,8 +5,8 @@ class B
{
public:
static int A::* const p = P; // { dg-error "25:'constexpr' needed" "" { target c++11 } }
- // { dg-error "25:invalid in-class" "" { target c++98_only } 7 }
- // { dg-error "29:template parameter" "" { target c++98_only } 7 }
+ // { dg-error "25:invalid in-class" "" { target c++98_only } .-1 }
+ // { dg-error "29:template parameter" "" { target c++98_only } .-2 }
};
class A
diff --git a/gcc/testsuite/g++.dg/template/ttp25.C b/gcc/testsuite/g++.dg/template/ttp25.C
index 46762ae21af..47adabab450 100644
--- a/gcc/testsuite/g++.dg/template/ttp25.C
+++ b/gcc/testsuite/g++.dg/template/ttp25.C
@@ -18,12 +18,12 @@ void f4(T, C<5>); // { dg-message "note" }
template<int N> struct X {};
void g() {
f1(5l, X<5>()); // { dg-error "no matching" }
- // { dg-message "(candidate|inconsistent with)" "candidate note" { target *-*-* } 20 }
+ // { dg-message "(candidate|inconsistent with)" "candidate note" { target *-*-* } .-1 }
f2(X<5>(), 5);
f3(X<5>(), 5l); // { dg-error "no matching" }
- // { dg-message "(candidate|inconsistent with)" "candidate note" { target *-*-* } 23 }
+ // { dg-message "(candidate|inconsistent with)" "candidate note" { target *-*-* } .-1 }
f4(5, X<5>());
f4(5l, X<5>()); // { dg-error "no matching" }
- // { dg-message "(candidate|inconsistent with)" "candidate note" { target *-*-* } 26 }
+ // { dg-message "(candidate|inconsistent with)" "candidate note" { target *-*-* } .-1 }
f4((short)5, X<5>());
}
diff --git a/gcc/testsuite/g++.dg/template/typedef2.C b/gcc/testsuite/g++.dg/template/typedef2.C
index cfe0f3f75bf..4b39348eb69 100644
--- a/gcc/testsuite/g++.dg/template/typedef2.C
+++ b/gcc/testsuite/g++.dg/template/typedef2.C
@@ -1,4 +1,4 @@
// PR c++/18155
template<int> typedef struct A; // { dg-warning "'typedef' was ignored" }
- // { dg-error "" "" { target *-*-* } 3 }
+ // { dg-error "" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/template/typename2.C b/gcc/testsuite/g++.dg/template/typename2.C
index b0e16d46434..251eb3f37b2 100644
--- a/gcc/testsuite/g++.dg/template/typename2.C
+++ b/gcc/testsuite/g++.dg/template/typename2.C
@@ -22,5 +22,5 @@ template<typename _CharT>
class ctype2 : public __ctype_abstract_base<_CharT>
{
typedef mask mask; // { dg-error "does not name a type" "no type" }
- // { dg-message "note" "note" { target *-*-* } 24 }
+ // { dg-message "note" "note" { target *-*-* } .-1 }
};
diff --git a/gcc/testsuite/g++.dg/template/unify10.C b/gcc/testsuite/g++.dg/template/unify10.C
index 7f2fd534624..88e3f329aba 100644
--- a/gcc/testsuite/g++.dg/template/unify10.C
+++ b/gcc/testsuite/g++.dg/template/unify10.C
@@ -26,34 +26,34 @@ void cvFunction(void (CLASS::* method)() const volatile) {} // { dg-message "not
int main() {
mFunction(&MyClass::mMethod);
mFunction(&MyClass::cMethod); // { dg-error "no matching function" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 28 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
mFunction(&MyClass::vMethod); // { dg-error "no matching function" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 30 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
mFunction(&MyClass::cvMethod); // { dg-error "no matching function" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 32 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
cFunction(&MyClass::mMethod); // { dg-error "no matching function" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 35 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
cFunction(&MyClass::cMethod);
cFunction(&MyClass::vMethod); // { dg-error "no matching function" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 38 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
cFunction(&MyClass::cvMethod); // { dg-error "no matching function" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 40 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
vFunction(&MyClass::mMethod); // { dg-error "no matching function" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 43 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
vFunction(&MyClass::cMethod); // { dg-error "no matching function" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 45 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
vFunction(&MyClass::vMethod);
vFunction(&MyClass::cvMethod); // { dg-error "no matching function" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 48 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
cvFunction(&MyClass::mMethod); // { dg-error "no matching function" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 51 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
cvFunction(&MyClass::cMethod); // { dg-error "no matching function" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 53 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
cvFunction(&MyClass::vMethod); // { dg-error "no matching function" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 55 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
cvFunction(&MyClass::cvMethod);
return 0;
diff --git a/gcc/testsuite/g++.dg/template/unify6.C b/gcc/testsuite/g++.dg/template/unify6.C
index 551c96ebb9f..8228e3e0c74 100644
--- a/gcc/testsuite/g++.dg/template/unify6.C
+++ b/gcc/testsuite/g++.dg/template/unify6.C
@@ -19,5 +19,5 @@ void Bar ()
Foo3 (&Baz);
Foo3 (&Baz, &Baz); // { dg-error "no matching function" "" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 21 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/template/unify7.C b/gcc/testsuite/g++.dg/template/unify7.C
index 88d9fd9baa0..91cd58f3a6f 100644
--- a/gcc/testsuite/g++.dg/template/unify7.C
+++ b/gcc/testsuite/g++.dg/template/unify7.C
@@ -11,5 +11,5 @@ int main()
{
Foo (f);
Baz (f); // { dg-error "no matching function" "" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 13 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/template/unify9.C b/gcc/testsuite/g++.dg/template/unify9.C
index f06f83a8d1b..ee18b86eb1f 100644
--- a/gcc/testsuite/g++.dg/template/unify9.C
+++ b/gcc/testsuite/g++.dg/template/unify9.C
@@ -14,5 +14,5 @@ const X *x;
int main () {
f (*x, &X::g); // { dg-error "no matching function" }
- // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } 16 }
+ // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/template/varmod1.C b/gcc/testsuite/g++.dg/template/varmod1.C
index 4ba11049b5a..38e1e1c85df 100644
--- a/gcc/testsuite/g++.dg/template/varmod1.C
+++ b/gcc/testsuite/g++.dg/template/varmod1.C
@@ -7,5 +7,5 @@ void bar()
int i;
int A[i][i];
foo(A); // { dg-error "" }
- // { dg-message "(candidate|not a valid template argument)" "candidate note" { target *-*-* } 9 }
+ // { dg-message "(candidate|not a valid template argument)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.dg/torture/pr79671.C b/gcc/testsuite/g++.dg/torture/pr79671.C
new file mode 100644
index 00000000000..d3c6f9bfb16
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr79671.C
@@ -0,0 +1,25 @@
+// { dg-do run }
+
+void *operator new(__SIZE_TYPE__, void *p2) { return p2; }
+struct B { B(int i_) : i(i_) {} int i; };
+struct X
+{
+ unsigned char buf[sizeof (B)];
+};
+
+int __attribute__((noinline)) foo()
+{
+ X x alignas(B), y alignas(B);
+ new (&x) B (0);
+ y = x;
+ B *q = reinterpret_cast <B *>(&y);
+ asm volatile ("" : "=r" (q) : "0" (q));
+ return q->i;
+}
+
+int main()
+{
+ if (foo() != 0)
+ __builtin_abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/torture/pr79905.C b/gcc/testsuite/g++.dg/torture/pr79905.C
index ded5db64cb0..ab9d07c6373 100644
--- a/gcc/testsuite/g++.dg/torture/pr79905.C
+++ b/gcc/testsuite/g++.dg/torture/pr79905.C
@@ -1,6 +1,7 @@
// PR target/79905
// { dg-do compile { target { powerpc*-*-* } } }
// { dg-require-effective-target powerpc_altivec_ok }
+// { dg-options "-maltivec" }
typedef int V4i __attribute__((vector_size(16)));
void a (V4i) {
diff --git a/gcc/testsuite/g++.dg/ubsan/div-by-zero-1.C b/gcc/testsuite/g++.dg/ubsan/div-by-zero-1.C
index 80147054e88..11ed7ec0893 100644
--- a/gcc/testsuite/g++.dg/ubsan/div-by-zero-1.C
+++ b/gcc/testsuite/g++.dg/ubsan/div-by-zero-1.C
@@ -6,5 +6,5 @@ foo (int i)
{
switch (i)
case 0 * (1 / 0): /* { dg-warning "division by zero" } */
- ; /* { dg-error "is not a constant.expression" "" { target *-*-* } 8 } */
+ ; /* { dg-error "is not a constant.expression" "" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/g++.dg/ubsan/div-by-zero-3.C b/gcc/testsuite/g++.dg/ubsan/div-by-zero-3.C
new file mode 100644
index 00000000000..589dd255c1e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ubsan/div-by-zero-3.C
@@ -0,0 +1,22 @@
+// PR sanitizer/80348
+// { dg-do compile }
+// { dg-options "-fsanitize=integer-divide-by-zero" }
+
+extern long long int i;
+void
+fn1 ()
+{
+ (0 >= 10253361740180 >= long (0 >= 0)) % i;
+}
+
+void
+fn2 ()
+{
+ 0 / unsigned (!(0 - 3) >= (0 > 0));
+}
+
+void
+fn3 ()
+{
+ (0 < 0 >= (0 < 0 < 0)) % (unsigned (2) << 0);
+}
diff --git a/gcc/testsuite/g++.dg/ubsan/pr63956.C b/gcc/testsuite/g++.dg/ubsan/pr63956.C
index ac01fa4fdd2..bce7b1cd2da 100644
--- a/gcc/testsuite/g++.dg/ubsan/pr63956.C
+++ b/gcc/testsuite/g++.dg/ubsan/pr63956.C
@@ -10,9 +10,9 @@ fn1 (int a, int b)
{
if (b != 2)
a <<= b;
- // { dg-error "5 << -2.. is negative" "" { target *-*-* } 12 }
- // { dg-error "is >= than the precision of the left operand" "" { target *-*-* } 12 }
- // { dg-error "-2 << 4.. is negative" "" { target *-*-* } 12 }
+ // { dg-error "5 << -2.. is negative" "" { target *-*-* } .-1 }
+ // { dg-error "is >= than the precision of the left operand" "" { target *-*-* } .-2 }
+ // { dg-error "-2 << 4.. is negative" "" { target *-*-* } .-3 }
return a;
}
@@ -33,8 +33,8 @@ fn2 (int a, int b)
{
if (b != 2)
a >>= b;
- // { dg-error "4 >> -1.. is negative" "" { target *-*-* } 35 }
- // { dg-error "is >= than the precision of the left operand" "" { target *-*-* } 35 }
+ // { dg-error "4 >> -1.. is negative" "" { target *-*-* } .-1 }
+ // { dg-error "is >= than the precision of the left operand" "" { target *-*-* } .-2 }
return a;
}
diff --git a/gcc/testsuite/g++.dg/ubsan/pr80349.C b/gcc/testsuite/g++.dg/ubsan/pr80349.C
new file mode 100644
index 00000000000..f705b92caff
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ubsan/pr80349.C
@@ -0,0 +1,11 @@
+// PR sanitizer/80349
+// { dg-do compile }
+// { dg-options "-fsanitize=undefined" }
+
+extern const long long int v;
+
+void
+foo ()
+{
+ (int)((v & 50 | 051UL) << 0) << 0;
+}
diff --git a/gcc/testsuite/g++.dg/ubsan/pr80403-2.C b/gcc/testsuite/g++.dg/ubsan/pr80403-2.C
new file mode 100644
index 00000000000..434a883dbe9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ubsan/pr80403-2.C
@@ -0,0 +1,14 @@
+// PR sanitizer/80403
+// { dg-do compile }
+// { dg-options "-fsanitize=undefined" }
+
+extern const long long int v;
+extern unsigned long int w;
+
+int
+foo ()
+{
+ int a = (0 - 40U <= (0 == 8)) << !w << (0 < v) == 0;
+ int b = ((0 ^ 0) < (long) (1066066618772207110 <= 0)) / 0 << 0; // { dg-warning "division by zero" }
+ return a + b;
+}
diff --git a/gcc/testsuite/g++.dg/ubsan/pr80403.C b/gcc/testsuite/g++.dg/ubsan/pr80403.C
new file mode 100644
index 00000000000..e249f9ba43d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ubsan/pr80403.C
@@ -0,0 +1,11 @@
+// PR sanitizer/80403
+// { dg-do compile }
+// { dg-options "-fsanitize=undefined" }
+
+unsigned
+foo ()
+{
+ unsigned a = (unsigned) (!(6044238 >> 0) >= (0 < 0)) % 0; // { dg-warning "division by zero" }
+ unsigned b = (unsigned) (!(6044238 >> 0) >= (0 < 0)) / 0; // { dg-warning "division by zero" }
+ return a + b;
+}
diff --git a/gcc/testsuite/g++.dg/ubsan/pr80404.C b/gcc/testsuite/g++.dg/ubsan/pr80404.C
new file mode 100644
index 00000000000..b3fa7c24286
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ubsan/pr80404.C
@@ -0,0 +1,12 @@
+// PR sanitizer/80404
+// { dg-do compile }
+// { dg-options "-fsanitize=undefined" }
+
+extern short v;
+
+unsigned
+foo ()
+{
+ unsigned a = (0 < 0 >= (0 >= 0)) / (unsigned) v;
+ return a;
+}
diff --git a/gcc/testsuite/g++.dg/ubsan/pr80405.C b/gcc/testsuite/g++.dg/ubsan/pr80405.C
new file mode 100644
index 00000000000..30a9b1a68cb
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ubsan/pr80405.C
@@ -0,0 +1,11 @@
+// PR sanitizer/80405
+// { dg-do compile }
+// { dg-options "-fsanitize=undefined" }
+
+extern unsigned int v, w;
+
+void
+foo ()
+{
+ w = (!~0 >= (unsigned) (0 < 0)) << v;
+}
diff --git a/gcc/testsuite/g++.dg/warn/Waddress-1.C b/gcc/testsuite/g++.dg/warn/Waddress-1.C
index 8723ac936ec..8795c88bf4d 100644
--- a/gcc/testsuite/g++.dg/warn/Waddress-1.C
+++ b/gcc/testsuite/g++.dg/warn/Waddress-1.C
@@ -24,13 +24,13 @@ void ll() { if (&s != (T*)0) z(); } // { dg-warning "address" }
void ml() { if (&t != (S*)0) z(); } // { dg-warning "address" }
void nl() { if (z != (S*)0) z(); } // { dg-error "comparison" }
-// { dg-warning "address" "" { target *-*-* } 26 }
+// { dg-warning "address" "" { target *-*-* } .-1 }
void pl() { if (z != (ptrfn)0) z(); } // { dg-error "comparison" }
-// { dg-warning "address" "" { target *-*-* } 28 }
+// { dg-warning "address" "" { target *-*-* } .-1 }
void ql() { if (&d != (int*)0) z(); } // { dg-error "comparison" }
-// { dg-warning "address" "" { target *-*-* } 30 }
+// { dg-warning "address" "" { target *-*-* } .-1 }
void rl() { if (&s != (U*)0) z(); } // { dg-error "comparison" }
-// { dg-warning "address" "" { target *-*-* } 32 }
+// { dg-warning "address" "" { target *-*-* } .-1 }
void gr() { if (0 != z) z(); } // { dg-warning "address" }
void hr() { if ((ptrf)0 != z) z(); } // { dg-warning "address" }
@@ -41,10 +41,10 @@ void lr() { if ((T*)0 != &s) z(); } // { dg-warning "address" }
void mr() { if ((S*)0 != &t) z(); } // { dg-warning "address" }
void nr() { if ((S*)0 != z) z(); } // { dg-error "comparison" }
-// { dg-warning "address" "" { target *-*-* } 43 }
+// { dg-warning "address" "" { target *-*-* } .-1 }
void pr() { if ((ptrfn)0 != z) z(); } // { dg-error "comparison" }
-// { dg-warning "address" "" { target *-*-* } 45 }
+// { dg-warning "address" "" { target *-*-* } .-1 }
void qr() { if ((int*)0 != &d) z(); } // { dg-error "comparison" }
-// { dg-warning "address" "" { target *-*-* } 47 }
+// { dg-warning "address" "" { target *-*-* } .-1 }
void rr() { if ((U*)0 != &s) z(); } // { dg-error "comparison" }
-// { dg-warning "address" "" { target *-*-* } 49 }
+// { dg-warning "address" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/warn/Wconversion2.C b/gcc/testsuite/g++.dg/warn/Wconversion2.C
index d105d922059..158c2a96719 100644
--- a/gcc/testsuite/g++.dg/warn/Wconversion2.C
+++ b/gcc/testsuite/g++.dg/warn/Wconversion2.C
@@ -1,4 +1,4 @@
// { dg-options "-Wconversion-null" }
void foo(const char *);
void bar() { foo(false); } // { dg-warning "pointer type for argument" "" { target { ! c++11 } } }
-// { dg-error "cannot convert" "" { target c++11 } 3 }
+// { dg-error "cannot convert" "" { target c++11 } .-1 }
diff --git a/gcc/testsuite/g++.dg/warn/Wnull-conversion-1.C b/gcc/testsuite/g++.dg/warn/Wnull-conversion-1.C
index d35074417e7..099be9555b9 100644
--- a/gcc/testsuite/g++.dg/warn/Wnull-conversion-1.C
+++ b/gcc/testsuite/g++.dg/warn/Wnull-conversion-1.C
@@ -7,12 +7,12 @@ void func1(int* ptr);
void func2() {
int* t = false; // { dg-warning "converting 'false' to pointer" "" { target { ! c++11 } } }
-// { dg-error "cannot convert" "" { target c++11 } 9 }
+// { dg-error "cannot convert" "" { target c++11 } .-1 }
int* p;
p = false; // { dg-warning "converting 'false' to pointer" "" { target { ! c++11 } } }
-// { dg-error "cannot convert" "" { target c++11 } 12 }
+// { dg-error "cannot convert" "" { target c++11 } .-1 }
int* r = sizeof(char) / 2; // { dg-error "invalid conversion from" "" { target c++11 } }
func1(false); // { dg-warning "converting 'false' to pointer" "" { target { ! c++11 } } }
-// { dg-error "cannot convert" "" { target c++11 } 15 }
+// { dg-error "cannot convert" "" { target c++11 } .-1 }
int i = NULL; // { dg-warning "converting to non-pointer" }
}
diff --git a/gcc/testsuite/g++.dg/warn/Wsubobject-linkage-1.C b/gcc/testsuite/g++.dg/warn/Wsubobject-linkage-1.C
index adcaa6dbdaf..fb963f61950 100644
--- a/gcc/testsuite/g++.dg/warn/Wsubobject-linkage-1.C
+++ b/gcc/testsuite/g++.dg/warn/Wsubobject-linkage-1.C
@@ -4,6 +4,6 @@ typedef volatile struct { } Foo;
#line 6 "foo.C"
struct Bar { Foo foo; }; // { dg-warning "no linkage" }
-// { dg-bogus "anonymous namespace" "" { target *-*-* } 6 }
+// { dg-bogus "anonymous namespace" "" { target *-*-* } .-1 }
struct Bar2 : Foo { }; // { dg-warning "no linkage" }
-// { dg-bogus "anonymous namespace" "" { target *-*-* } 8 }
+// { dg-bogus "anonymous namespace" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/warn/Wsubobject-linkage-3.C b/gcc/testsuite/g++.dg/warn/Wsubobject-linkage-3.C
index e9acb633a1c..95a04501441 100644
--- a/gcc/testsuite/g++.dg/warn/Wsubobject-linkage-3.C
+++ b/gcc/testsuite/g++.dg/warn/Wsubobject-linkage-3.C
@@ -4,6 +4,6 @@ namespace { struct Foo { }; }
#line 6 "foo.C"
struct Bar { Foo foo; }; // { dg-warning "anonymous namespace" }
-// { dg-bogus "no linkage" "" { target *-*-* } 6 }
+// { dg-bogus "no linkage" "" { target *-*-* } .-1 }
struct Bar2 : Foo { }; // { dg-warning "anonymous namespace" }
-// { dg-bogus "no linkage" "" { target *-*-* } 8 }
+// { dg-bogus "no linkage" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/warn/Wswitch-1.C b/gcc/testsuite/g++.dg/warn/Wswitch-1.C
index 1da7180ec79..f15416f87b5 100644
--- a/gcc/testsuite/g++.dg/warn/Wswitch-1.C
+++ b/gcc/testsuite/g++.dg/warn/Wswitch-1.C
@@ -20,7 +20,7 @@ foo (int i, int j, enum e ei, enum e ej, enum e ek, enum e el,
default: break;
}
switch (ei) /* { dg-warning "enumeration value 'e1' not handled in switch" "enum e1" } */
- { /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } 22 } */
+ { /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } .-1 } */
}
switch (ej)
{
diff --git a/gcc/testsuite/g++.dg/warn/Wtype-limits-Wextra.C b/gcc/testsuite/g++.dg/warn/Wtype-limits-Wextra.C
index f840f306b7d..6470d4f04c8 100644
--- a/gcc/testsuite/g++.dg/warn/Wtype-limits-Wextra.C
+++ b/gcc/testsuite/g++.dg/warn/Wtype-limits-Wextra.C
@@ -13,7 +13,7 @@ void a (unsigned char x)
return;
if (255 >= x) /* { dg-warning "comparison is always true due to limited range of data type" } */
return;
- if ((int)x <= 255) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } 16 } */
+ if ((int)x <= 255) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } . } */
return;
if (255 >= (unsigned char) 1)
return;
@@ -58,7 +58,7 @@ void e (unsigned long long x)
int test (int x)
{
- if ((long long)x <= 0x123456789ABCLL) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } 61 } */
+ if ((long long)x <= 0x123456789ABCLL) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } . } */
return 1;
else
return 0;
diff --git a/gcc/testsuite/g++.dg/warn/Wtype-limits.C b/gcc/testsuite/g++.dg/warn/Wtype-limits.C
index a352e7ba9bb..f585e97aa23 100644
--- a/gcc/testsuite/g++.dg/warn/Wtype-limits.C
+++ b/gcc/testsuite/g++.dg/warn/Wtype-limits.C
@@ -13,7 +13,7 @@ void a (unsigned char x)
return;
if (255 >= x) /* { dg-warning "comparison is always true due to limited range of data type" } */
return;
- if ((int)x <= 255) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } 16 } */
+ if ((int)x <= 255) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } . } */
return;
if (255 >= (unsigned char) 1)
return;
@@ -58,7 +58,7 @@ void e (unsigned long long x)
int test (int x)
{
- if ((long long)x <= 0x123456789ABCLL) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } 61 } */
+ if ((long long)x <= 0x123456789ABCLL) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } . } */
return 1;
else
return 0;
diff --git a/gcc/testsuite/g++.dg/warn/Wunused-parm-5.C b/gcc/testsuite/g++.dg/warn/Wunused-parm-5.C
index e952d0221bd..5e408581abf 100644
--- a/gcc/testsuite/g++.dg/warn/Wunused-parm-5.C
+++ b/gcc/testsuite/g++.dg/warn/Wunused-parm-5.C
@@ -4,11 +4,11 @@
void f1 (long s) { } // { dg-warning "15:unused parameter 's'" }
void f2 (long s, int u) { } // { dg-warning "15:unused parameter 's'" }
-// { dg-warning "22:unused parameter 'u'" "" { target *-*-* } 6 }
+// { dg-warning "22:unused parameter 'u'" "" { target *-*-* } .-1 }
void f3 (long s);
void f3 (long s) { } // { dg-warning "15:unused parameter 's'" }
void f4 (long s, int u);
void f4 (long s, int u) { } // { dg-warning "15:unused parameter 's'" }
-// { dg-warning "22:unused parameter 'u'" "" { target *-*-* } 13 }
+// { dg-warning "22:unused parameter 'u'" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/warn/deprecated-6.C b/gcc/testsuite/g++.dg/warn/deprecated-6.C
index 159a8c71cd8..ad9eb3d4820 100644
--- a/gcc/testsuite/g++.dg/warn/deprecated-6.C
+++ b/gcc/testsuite/g++.dg/warn/deprecated-6.C
@@ -51,9 +51,9 @@ int func1()
int (*pf)() = f1; /* { dg-warning "'INT1 f1\\(\\)' is deprecated: Please avoid f1" "" } */
z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated: Please avoid x" "" } */
- /* { dg-warning "'y' is deprecated: Please avoid y" "y" { target *-*-* } 53 } */
- /* { dg-warning "'g2' is deprecated: Please avoid g2" "g2" { target *-*-* } 53 } */
- /* { dg-warning "'g3' is deprecated: Please avoid g3" "g3" { target *-*-* } 53 } */
+ /* { dg-warning "'y' is deprecated: Please avoid y" "y" { target *-*-* } .-1 } */
+ /* { dg-warning "'g2' is deprecated: Please avoid g2" "g2" { target *-*-* } .-2 } */
+ /* { dg-warning "'g3' is deprecated: Please avoid g3" "g3" { target *-*-* } .-3 } */
return f1(); /* { dg-warning "'INT1 f1\\(\\)' is deprecated: Please avoid f1" "f1" } */
}
@@ -69,7 +69,7 @@ int func2(S1 *p)
p->u1.field5 = g1 + p->field7;
p->u2.field9; /* { dg-warning "'S1::u2' is deprecated: Please avoid u2" "" } */
return p->u1.field6 + p->field8; /* { dg-warning "'S1::<unnamed union>::field6' is deprecated: Please avoid field6" "" } */
- /* { dg-warning "'S1::field8' is deprecated: Please avoid field8" "field8" { target *-*-* } 71 } */
+ /* { dg-warning "'S1::field8' is deprecated: Please avoid field8" "field8" { target *-*-* } .-1 } */
}
struct SS1 {
diff --git a/gcc/testsuite/g++.dg/warn/deprecated.C b/gcc/testsuite/g++.dg/warn/deprecated.C
index 0c684efe29d..a5b2aee03e3 100644
--- a/gcc/testsuite/g++.dg/warn/deprecated.C
+++ b/gcc/testsuite/g++.dg/warn/deprecated.C
@@ -53,9 +53,9 @@ int func1()
int (*pf)() = f1; /* { dg-warning "'INT1 f1\\(\\)' is deprecated" "" } */
z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated" "" } */
- /* { dg-warning "'y' is deprecated" "y" { target *-*-* } 55 } */
- /* { dg-warning "'g2' is deprecated" "g2" { target *-*-* } 55 } */
- /* { dg-warning "'g3' is deprecated" "g3" { target *-*-* } 55 } */
+ /* { dg-warning "'y' is deprecated" "y" { target *-*-* } .-1 } */
+ /* { dg-warning "'g2' is deprecated" "g2" { target *-*-* } .-2 } */
+ /* { dg-warning "'g3' is deprecated" "g3" { target *-*-* } .-3 } */
return f1(); /* { dg-warning "'INT1 f1\\(\\)' is deprecated" "f1" } */
}
@@ -71,7 +71,7 @@ int func2(S1 *p)
p->u1.field5 = g1 + p->field7;
p->u2.field9; /* { dg-warning "'S1::u2' is deprecated" "" } */
return p->u1.field6 + p->field8; /* { dg-warning "'S1::<unnamed union>::field6' is deprecated" "" } */
- /* { dg-warning "'S1::field8' is deprecated" "field8" { target *-*-* } 73 } */
+ /* { dg-warning "'S1::field8' is deprecated" "field8" { target *-*-* } .-1 } */
}
struct SS1 {
diff --git a/gcc/testsuite/g++.dg/warn/incomplete1.C b/gcc/testsuite/g++.dg/warn/incomplete1.C
index 1fa27123e6b..e880e360eb0 100644
--- a/gcc/testsuite/g++.dg/warn/incomplete1.C
+++ b/gcc/testsuite/g++.dg/warn/incomplete1.C
@@ -17,6 +17,6 @@ int
main (int argc, char **argv)
{
delete a; // { dg-warning "delete" "warn" }
- // { dg-message "note" "note" { target *-*-* } 19 }
+ // { dg-message "note" "note" { target *-*-* } .-1 }
return 0;
}
diff --git a/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-1.C b/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-1.C
index c941c133321..5ccc7aff868 100644
--- a/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-1.C
+++ b/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-1.C
@@ -8,6 +8,6 @@ int
g (void)
{
return - - - - -INT_MIN; /* { dg-bogus "integer overflow in expression.*integer overflow in expression" } */
- /* { dg-warning "integer overflow in expression" "" { target *-*-* } 10 } */
+ /* { dg-warning "integer overflow in expression" "" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-2.C b/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-2.C
index 863016bfd68..31e00ed993d 100644
--- a/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-2.C
+++ b/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-2.C
@@ -8,5 +8,5 @@ int
g1 (void)
{
return INT_MAX + 1 - INT_MAX; /* { dg-bogus "integer overflow in expression.*integer overflow in expression" } */
- /* { dg-warning "integer overflow in expression" "" { target *-*-* } 10 } */
+ /* { dg-warning "integer overflow in expression" "" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-3.C b/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-3.C
index afb4e517f28..19eac3a9f20 100644
--- a/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-3.C
+++ b/gcc/testsuite/g++.dg/warn/multiple-overflow-warn-3.C
@@ -6,7 +6,7 @@ short int
g (void)
{
short int wc = ((short int)1 << 31) - 1; /* { dg-bogus "overflow .* overflow" } */
- /* { dg-warning "overflow" "" { target *-*-* } 8 } */
+ /* { dg-warning "overflow" "" { target *-*-* } .-1 } */
return wc;
}
diff --git a/gcc/testsuite/g++.dg/warn/overflow-warn-1.C b/gcc/testsuite/g++.dg/warn/overflow-warn-1.C
index 995e7dfd65d..b29eec34f8f 100644
--- a/gcc/testsuite/g++.dg/warn/overflow-warn-1.C
+++ b/gcc/testsuite/g++.dg/warn/overflow-warn-1.C
@@ -11,18 +11,18 @@ enum e {
E1 = UINT_MAX + 1,
/* Overflow in an unevaluated part of an expression is OK (example
in the standard). */
- E2 = 2 || 1 / 0, /* { dg-bogus "warning: division by zero" "" { xfail *-*-* } 14 } */
+ E2 = 2 || 1 / 0, /* { dg-bogus "warning: division by zero" "" { xfail *-*-* } . } */
E3 = 1 / 0, /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E3' is not an integer constant|not a constant.expression" "enum error" { target *-*-* } 15 } */
+ /* { dg-error "enumerator value for 'E3' is not an integer constant|not a constant.expression" "enum error" { target *-*-* } .-1 } */
/* But as in DR#031, the 1/0 in an evaluated subexpression means the
whole expression violates the constraints. */
E4 = 0 * (1 / 0), /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target c++ } 19 } */
+ /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target c++ } .-1 } */
E5 = INT_MAX + 1, /* { dg-warning "integer overflow in expression" } */
- /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 21 } */
+ /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
/* Again, overflow in evaluated subexpression. */
E6 = 0 * (INT_MAX + 1), /* { dg-warning "integer overflow in expression" } */
- /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 24 } */
+ /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
/* A cast does not constitute overflow in conversion. */
E7 = (char) INT_MAX
};
@@ -31,7 +31,7 @@ struct s {
int a;
int : 0 * (1 / 0); /* { dg-warning "division by zero" } */
int : 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
- /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 33 } */
+ /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
};
void
@@ -52,9 +52,9 @@ void *n = 0;
constants. The third has the overflow in an unevaluated
subexpression, so is a null pointer constant. */
void *p = 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
-/* { dg-warning "invalid conversion from 'int' to 'void" "null" { target *-*-* } 54 } */
+/* { dg-warning "invalid conversion from 'int' to 'void" "null" { target *-*-* } .-1 } */
void *q = 0 * (1 / 0); /* { dg-warning "division by zero" } */
-/* { dg-error "invalid conversion from 'int' to 'void*'" "null" { xfail *-*-* } 56 } */
+/* { dg-error "invalid conversion from 'int' to 'void*'" "null" { xfail *-*-* } .-1 } */
void *r = (1 ? 0 : INT_MAX+1); /* { dg-bogus "integer overflow in expression" "" { xfail *-*-* } } */
void
@@ -65,7 +65,7 @@ g (int i)
case 0 * (1/0): /* { dg-warning "division by zero" } */
;
case 1 + 0 * (INT_MAX + 1): /* { dg-warning "integer overflow in expression" } */
- /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 67 } */
+ /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
;
}
}
diff --git a/gcc/testsuite/g++.dg/warn/overflow-warn-3.C b/gcc/testsuite/g++.dg/warn/overflow-warn-3.C
index 0ead45a65c1..a43ea5c0b0d 100644
--- a/gcc/testsuite/g++.dg/warn/overflow-warn-3.C
+++ b/gcc/testsuite/g++.dg/warn/overflow-warn-3.C
@@ -11,18 +11,18 @@ enum e {
E1 = UINT_MAX + 1,
/* Overflow in an unevaluated part of an expression is OK (example
in the standard). */
- E2 = 2 || 1 / 0, /* { dg-bogus "warning: division by zero" "" { xfail *-*-* } 14 } */
+ E2 = 2 || 1 / 0, /* { dg-bogus "warning: division by zero" "" { xfail *-*-* } . } */
E3 = 1 / 0, /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E3' is not an integer constant|not a constant.expression" "enum error" { target *-*-* } 15 } */
+ /* { dg-error "enumerator value for 'E3' is not an integer constant|not a constant.expression" "enum error" { target *-*-* } .-1 } */
/* But as in DR#031, the 1/0 in an evaluated subexpression means the
whole expression violates the constraints. */
E4 = 0 * (1 / 0), /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target c++ } 19 } */
+ /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target c++ } .-1 } */
E5 = INT_MAX + 1, /* { dg-warning "integer overflow in expression" } */
- /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 21 } */
+ /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
/* Again, overflow in evaluated subexpression. */
E6 = 0 * (INT_MAX + 1), /* { dg-warning "integer overflow in expression" } */
- /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 24 } */
+ /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
/* A cast does not constitute overflow in conversion. */
E7 = (char) INT_MAX
};
@@ -31,7 +31,7 @@ struct s {
int a;
int : 0 * (1 / 0); /* { dg-warning "division by zero" } */
int : 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
- /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 33 } */
+ /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
};
void
@@ -53,10 +53,10 @@ void *n = 0;
constants. The third has the overflow in an unevaluated
subexpression, so is a null pointer constant. */
void *p = 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
-/* { dg-warning "invalid conversion from 'int' to 'void" "null" { target *-*-* } 55 } */
+/* { dg-warning "invalid conversion from 'int' to 'void" "null" { target *-*-* } .-1 } */
void *q = 0 * (1 / 0); /* { dg-warning "division by zero" } */
-/* { dg-warning "invalid conversion from 'int' to 'void" "null" { target *-*-* } 58 } */
+/* { dg-warning "invalid conversion from 'int' to 'void" "null" { target *-*-* } .-1 } */
void *r = (1 ? 0 : INT_MAX+1); /* { dg-bogus "integer overflow in expression" "" { xfail *-*-* } } */
void
@@ -65,9 +65,9 @@ g (int i)
switch (i)
{
case 0 * (1/0): /* { dg-warning "division by zero" } */
- ; /* { dg-error "division by zero is not a constant expression" "division" { target c++11 } 67 } */
+ ; /* { dg-error "division by zero is not a constant expression" "division" { target c++11 } .-1 } */
case 1 + 0 * (INT_MAX + 1): /* { dg-warning "integer overflow in expression" } */
- /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 69 } */
+ /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
;
}
}
diff --git a/gcc/testsuite/g++.dg/warn/overflow-warn-4.C b/gcc/testsuite/g++.dg/warn/overflow-warn-4.C
index 447e39144f1..b9d4ebd7d25 100644
--- a/gcc/testsuite/g++.dg/warn/overflow-warn-4.C
+++ b/gcc/testsuite/g++.dg/warn/overflow-warn-4.C
@@ -13,18 +13,18 @@ enum e {
in the standard). */
E2 = 2 || 1 / 0, /* { dg-bogus "warning: division by zero" "" { xfail *-*-* } } */
E3 = 1 / 0, /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E3' is not an integer constant|not a constant.expression" "enum error" { target *-*-* } 15 } */
+ /* { dg-error "enumerator value for 'E3' is not an integer constant|not a constant.expression" "enum error" { target *-*-* } .-1 } */
/* But as in DR#031, the 1/0 in an evaluated subexpression means the
whole expression violates the constraints. */
E4 = 0 * (1 / 0), /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target c++ } 19 } */
+ /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target c++ } .-1 } */
E5 = INT_MAX + 1, /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 21 } */
- /* { dg-error "enumerator value for 'E5' is not an integer constant" "enum error" { target *-*-* } 21 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
+ /* { dg-error "enumerator value for 'E5' is not an integer constant" "enum error" { target *-*-* } .-2 } */
/* Again, overflow in evaluated subexpression. */
E6 = 0 * (INT_MAX + 1), /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 25 } */
- /* { dg-error "enumerator value for 'E6' is not an integer constant" "enum error" { target *-*-* } 25 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
+ /* { dg-error "enumerator value for 'E6' is not an integer constant" "enum error" { target *-*-* } .-2 } */
/* A cast does not constitute overflow in conversion. */
E7 = (char) INT_MAX
};
@@ -33,8 +33,8 @@ struct s {
int a;
int : 0 * (1 / 0); /* { dg-warning "division by zero" } */
int : 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 35 } */
- /* { dg-error "bit-field .* width not an integer constant" "" { target *-*-* } 35 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
+ /* { dg-error "bit-field .* width not an integer constant" "" { target *-*-* } .-2 } */
};
void
@@ -56,10 +56,10 @@ void *n = 0;
constants. The third has the overflow in an unevaluated
subexpression, so is a null pointer constant. */
void *p = 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
-/* { dg-error "invalid conversion from 'int' to 'void" "null" { target *-*-* } 58 } */
+/* { dg-error "invalid conversion from 'int' to 'void" "null" { target *-*-* } .-1 } */
void *q = 0 * (1 / 0); /* { dg-warning "division by zero" } */
-/* { dg-error "invalid conversion from 'int' to 'void" "null" { target *-*-* } 61 } */
+/* { dg-error "invalid conversion from 'int' to 'void" "null" { target *-*-* } .-1 } */
void *r = (1 ? 0 : INT_MAX+1); /* { dg-bogus "integer overflow in expression" "" { xfail *-*-* } } */
void
@@ -68,9 +68,9 @@ g (int i)
switch (i)
{
case 0 * (1/0): /* { dg-warning "division by zero" } */
- ; /* { dg-error "division by zero is not a constant expression" "division" { target c++11 } 70 } */
+ ; /* { dg-error "division by zero is not a constant expression" "division" { target c++11 } .-1 } */
case 1 + 0 * (INT_MAX + 1): /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 72 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
;
}
}
diff --git a/gcc/testsuite/g++.dg/warn/pr12242.C b/gcc/testsuite/g++.dg/warn/pr12242.C
index a2f81f87a62..f95bf8b92d9 100644
--- a/gcc/testsuite/g++.dg/warn/pr12242.C
+++ b/gcc/testsuite/g++.dg/warn/pr12242.C
@@ -11,7 +11,7 @@ void example ()
Y y;
x = 10; // { dg-warning "invalid conversion from .int. to .X." "invalid" }
- // { dg-warning "unspecified" "unspecified" { target *-*-* } 13 }
+ // { dg-warning "unspecified" "unspecified" { target *-*-* } .-1 }
x = 1; // { dg-warning "invalid conversion from .int. to .X." }
x = C; // { dg-error "cannot convert .Y. to .X. in assignment" }
x = D; // { dg-error "cannot convert .Y. to .X. in assignment" }
diff --git a/gcc/testsuite/g++.dg/warn/pr30551-2.C b/gcc/testsuite/g++.dg/warn/pr30551-2.C
index fe85c4ff4b4..b22447091b5 100644
--- a/gcc/testsuite/g++.dg/warn/pr30551-2.C
+++ b/gcc/testsuite/g++.dg/warn/pr30551-2.C
@@ -3,4 +3,4 @@
// { dg-options "-pedantic-errors" }
// { dg-skip-if "-Wmain not enabled with -pedantic on SPU" { spu-*-* } }
int main(char a) {} /* { dg-error "first argument of .*main.* should be .int." "int" } */
-/* { dg-error "main.* takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */
+/* { dg-error "main.* takes only zero or two arguments" "zero or two" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/g++.dg/warn/pr30551.C b/gcc/testsuite/g++.dg/warn/pr30551.C
index 23367139c20..4b3868e4717 100644
--- a/gcc/testsuite/g++.dg/warn/pr30551.C
+++ b/gcc/testsuite/g++.dg/warn/pr30551.C
@@ -3,4 +3,4 @@
// { dg-options "" }
// { dg-skip-if "-Wmain not enabled on SPU" { spu-*-* } }
int main(char a) {} /* { dg-warning "first argument of .*main.* should be .int." "int" } */
-/* { dg-warning "main.* takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */
+/* { dg-warning "main.* takes only zero or two arguments" "zero or two" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C b/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C
index 9338e875532..4fc3a6b8a68 100644
--- a/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C
+++ b/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C
@@ -22,8 +22,8 @@ void peace(const colombia&);
void foo(nicaragua& b) {
peace(b); // { dg-warning "choosing 'nicaragua::operator" "nic" }
- // { dg-warning "conversion" "conv" { target *-*-* } 24 }
- // { dg-message "note" "note" { target *-*-* } 24 }
+ // { dg-warning "conversion" "conv" { target *-*-* } .-1 }
+ // { dg-message "note" "note" { target *-*-* } .-2 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.bob/inherit1.C b/gcc/testsuite/g++.old-deja/g++.bob/inherit1.C
index c037a1c0b2d..79fb4fb01df 100644
--- a/gcc/testsuite/g++.old-deja/g++.bob/inherit1.C
+++ b/gcc/testsuite/g++.old-deja/g++.bob/inherit1.C
@@ -12,7 +12,7 @@ public:
class B : public A {
public:
char* m1 () { C::m1(); return ""; } // { dg-error "cannot call" }
- // { dg-warning "deprecated|forbids converting a string constant" "depr" { target *-*-* } 14 }
+ // { dg-warning "deprecated|forbids converting a string constant" "depr" { target *-*-* } .-1 }
};
int main () {
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C
index 776041519eb..1b2f079b6f9 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C
@@ -278,7 +278,7 @@ SetLD<T>::remove(const T& item)
Vix x;
for (first(x); 0 != x && this->REMOVE_CURRENT != a; next(x, a))
a = operator()(x) == item ? this->REMOVE_CURRENT: this->NORMAL; // { dg-error "" } .*
- // { dg-message "(candidate|not derived from)" "candidate note" { target *-*-* } 280 }
+ // { dg-message "(candidate|not derived from)" "candidate note" { target *-*-* } .-1 }
}
template<class T>
bool
@@ -287,7 +287,7 @@ SetLD<T>::contains(const T& item) const
Vix x;
for (first(x); 0 != x; next(x)) {
if (operator()(x) == item)// { dg-error "" } .*
- // { dg-message "(candidate|not derived from)" "candidate note" { target *-*-* } 289 }
+ // { dg-message "(candidate|not derived from)" "candidate note" { target *-*-* } .-1 }
return TRUE;
}
return FALSE;
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template17.C b/gcc/testsuite/g++.old-deja/g++.brendan/template17.C
index b8e2a0ba145..7d557eb152a 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/template17.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/template17.C
@@ -9,7 +9,7 @@ public:
};
const Regex NDAMName<'L'>::pattern("^[Ll](.*)$", 1);// { dg-error "type/value mismatch" "mismatch" }
-// { dg-message "expected a type" "expected" { target *-*-* } 11 }
-// { dg-warning "deprecated|forbids converting a string constant" "depr" { target *-*-* } 11 }
+// { dg-message "expected a type" "expected" { target *-*-* } .-1 }
+// { dg-warning "deprecated|forbids converting a string constant" "depr" { target *-*-* } .-2 }
unsigned NDAMName<'L'>::sequence_number = 0;// { dg-error "type/value mismatch" "mismatch" }
-// { dg-message "expected a type" "exp" { target *-*-* } 14 }
+// { dg-message "expected a type" "exp" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C b/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C
index 21b27d707f2..93f6dcd38a1 100644
--- a/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C
+++ b/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C
@@ -11,7 +11,7 @@ main ()
try
{
throw A(); // { dg-error "rvalue" "" { target c++14_down } } can't copy
- // { dg-error "thrown expression" "expr" { target c++14_down } 13 }
+ // { dg-error "thrown expression" "expr" { target c++14_down } .-1 }
}
catch (...) { }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/bool5.C b/gcc/testsuite/g++.old-deja/g++.jason/bool5.C
index 49126acdd96..1ed6d5c3a68 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/bool5.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/bool5.C
@@ -3,11 +3,11 @@ int main ()
{
bool b = false;
int i = b++; // { dg-warning "deprecated" "" { target { ! c++1z } } }
- // { dg-error "forbidden" "" { target c++1z } 5 }
+ // { dg-error "forbidden" "" { target c++1z } .-1 }
if (i != false || b != true)
return 1;
i = b++; // { dg-warning "deprecated" "" { target { ! c++1z } } }
- // { dg-error "forbidden" "" { target c++1z } 9 }
+ // { dg-error "forbidden" "" { target c++1z } .-1 }
if (i != true || b != true)
return 1;
}
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/cond.C b/gcc/testsuite/g++.old-deja/g++.jason/cond.C
index e0ae2b8ea19..dfc21dd5378 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/cond.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/cond.C
@@ -39,7 +39,7 @@ int main()
A bar; // { dg-error "not declared" "decl" }
if (enum A { one, two, three } foo = one) // { dg-error "defined" "def" }
- // { dg-error "not declared" "expected" { target *-*-* } 41 }
+ // { dg-error "not declared" "expected" { target *-*-* } .-1 }
;
struct B { operator int () { return 2; } };
@@ -48,7 +48,7 @@ int main()
;
if (int f () = 1) // { dg-warning "extern" "extern" }
- // { dg-error "is initialized like a variable" "var" { target *-*-* } 50 }
+ // { dg-error "is initialized like a variable" "var" { target *-*-* } .-1 }
;
if (int a[2] = {1, 2}) // { dg-error "extended init" "" { target { ! c++11 } } }
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/operator.C b/gcc/testsuite/g++.old-deja/g++.jason/operator.C
index 78031577172..339e6a447b4 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/operator.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/operator.C
@@ -29,4 +29,4 @@ void * operator new (A a); // { dg-error "first parameter" }
void operator delete (A a); // { dg-error "first parameter" }
char * operator char * (int); // { dg-error "return type" "ret" }
-// { dg-error "nonstatic member function" "mem" { target *-*-* } 31 }
+// { dg-error "nonstatic member function" "mem" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmf5.C b/gcc/testsuite/g++.old-deja/g++.jason/pmf5.C
index 26fa9432aca..fb7e1688145 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/pmf5.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/pmf5.C
@@ -16,4 +16,4 @@ static ThingEntry KeyWordTable[] = {
&Thing::FunctionA,
Thing::OverloadFn,
}; // { dg-error "assuming" "assuming" } implicit &
-// { dg-message "note" "note" { target *-*-* } 18 }
+// { dg-message "note" "note" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors5.C b/gcc/testsuite/g++.old-deja/g++.law/ctors5.C
index 8015c4bfc25..96604e858b9 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/ctors5.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/ctors5.C
@@ -15,7 +15,7 @@ class X // { dg-message "7:X::X|candidate expects" } implicit constructor
};
class Y // { dg-error "1:new types may not be defined in a return type" "err" }
- // { dg-message "1:\\(perhaps a semicolon is missing after the definition of 'Y'\\)" "note" { target *-*-* } 17 }
+ // { dg-message "1:\\(perhaps a semicolon is missing after the definition of 'Y'\\)" "note" { target *-*-* } .-1 }
{
private:
X xx;
@@ -23,7 +23,7 @@ class Y // { dg-error "1:new types may not be defined in a return type" "err" }
Y();
}
X::X( int xi ) // { dg-error "14:return type specification for constructor invalid" "err" }
-// { dg-message "1:X::X|candidate expects" "match candidate text" { target *-*-* } 25 }
+// { dg-message "1:X::X|candidate expects" "match candidate text" { target *-*-* } .-1 }
{
x = xi;
}
diff --git a/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C b/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C
index 42f70aeb997..ee69e1156cc 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C
@@ -15,9 +15,9 @@
#endif
inline int max(int a, int b) {return a > b ? a : b;}; // { dg-message "note" }
- // { dg-error "extra ';'" "extra ;" { target *-*-* } 17 }
+ // { dg-error "extra ';'" "extra ;" { target *-*-* } .-1 }
inline double max(double a, double b) {return a > b ? a : b;}; // { dg-message "note" } candidate
- // { dg-error "extra ';'" "extra ;" { target *-*-* } 19 }
+ // { dg-error "extra ';'" "extra ;" { target *-*-* } .-1 }
int main() {
static void foo(int i, int j, double x, double y) ;// { dg-error "" } .*
diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators9.C b/gcc/testsuite/g++.old-deja/g++.law/operators9.C
index 8d5b686d9ae..91c4130679b 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/operators9.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/operators9.C
@@ -10,7 +10,7 @@ class B
{
public:
operator=(B &); // { dg-error "no type" }
- // { dg-message "B::operator=|no known conversion" "note" { target *-*-* } 12 }
+ // { dg-message "B::operator=|no known conversion" "note" { target *-*-* } .-1 }
};
void
diff --git a/gcc/testsuite/g++.old-deja/g++.law/temps1.C b/gcc/testsuite/g++.old-deja/g++.law/temps1.C
index 5734210cc88..ad42f425751 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/temps1.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/temps1.C
@@ -17,4 +17,4 @@ struct cookie
};
cookie cat(&foo("apabepa"));// { dg-warning "deprecated conversion|forbids converting a string constant" "dep" }
-// { dg-warning "taking address of temporary" "add" { target *-*-* } 19 }
+// { dg-warning "taking address of temporary" "add" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/for2.C b/gcc/testsuite/g++.old-deja/g++.mike/for2.C
index 9c201178e20..6eb5d66675e 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/for2.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/for2.C
@@ -15,6 +15,6 @@ void bar() {
void bee () {
int i = 0;
for (int fun() = 0; i != 2; ++i) { // { dg-warning "extern" "extern" }
- // { dg-error "initialized" "init" { target *-*-* } 17 }
+ // { dg-error "initialized" "init" { target *-*-* } .-1 }
}
}
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns5.C b/gcc/testsuite/g++.old-deja/g++.mike/ns5.C
index fd1fbffce9e..3d317bf2d53 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/ns5.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/ns5.C
@@ -4,4 +4,4 @@ namespace A {
}
int j = i; // { dg-error "" }
- // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } 6 }
+ // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns7.C b/gcc/testsuite/g++.old-deja/g++.mike/ns7.C
index 67d9e7741f1..14a38b6267e 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/ns7.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/ns7.C
@@ -6,5 +6,5 @@ namespace A {
namespace B {
int j = i; // { dg-error "" }
- // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } 8 }
+ // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C b/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C
index 9c2dd297111..3ff25c38087 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C
@@ -18,7 +18,7 @@ public:
void A::main() {
void (B::*mPtrB)(B*);
(*(void (*)(A*))PMF2PF(mPtrB))(&b); // { dg-error "argument passing" }
- // { dg-warning "convert" "warn" { target *-*-* } 20 }
+ // { dg-warning "convert" "warn" { target *-*-* } .-1 }
}
int main() {
diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t120.C b/gcc/testsuite/g++.old-deja/g++.niklas/t120.C
index 3f5baea67a2..aff25af816e 100644
--- a/gcc/testsuite/g++.old-deja/g++.niklas/t120.C
+++ b/gcc/testsuite/g++.old-deja/g++.niklas/t120.C
@@ -3,4 +3,4 @@
typedef void (*T) (...);
void f ();
struct S { void g (T); void h() { g(f); } };// { dg-error "" "match" }
-// { dg-message "candidate|S::g|no known conversion" "match candidate text" { target *-*-* } 5 }
+// { dg-message "candidate|S::g|no known conversion" "match candidate text" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t121.C b/gcc/testsuite/g++.old-deja/g++.niklas/t121.C
index a2aa62fbde6..dd95a6070cd 100644
--- a/gcc/testsuite/g++.old-deja/g++.niklas/t121.C
+++ b/gcc/testsuite/g++.old-deja/g++.niklas/t121.C
@@ -3,4 +3,4 @@
void f ();
void g1 (void (*) (...)); void h1 () { g1 (f); }// { dg-error "invalid conversion" }
struct S { void g2 (void (*) (...)); void h2 () { g2 (f); } };// { dg-error "invalid conversion" "match" }
-// { dg-message "candidate|S::g2|no known conversion" "match candidate text" { target *-*-* } 5 }
+// { dg-message "candidate|S::g2|no known conversion" "match candidate text" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C
index 635f35e0118..2246f8a4c4c 100644
--- a/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C
+++ b/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C
@@ -15,5 +15,5 @@ void g()
// foo variable first, and therefore do not
// perform argument-dependent lookup.
bar(new X); // { dg-error "3:'bar' was not declared" }
- // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } 17 }
+ // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C b/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C
index 69a4fa5dcb7..5645206df78 100644
--- a/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C
+++ b/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C
@@ -14,7 +14,7 @@ struct foo {
-pedantic, even in bad1. */
int (*ok1)() = foo::bar;
void (foo::*bad1)(int) = foo::bar; // { dg-error "assuming pointer" }
-// { dg-message "note" "note" { target *-*-* } 16 }
+// { dg-message "note" "note" { target *-*-* } .-1 }
int (*ok2)() = &foo::bar; // ok
void (*bad2)(int) = foo::bar; // { dg-error "no matches" }
diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash24.C b/gcc/testsuite/g++.old-deja/g++.other/crash24.C
index a4d655a796a..8f0e545e7a7 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/crash24.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/crash24.C
@@ -12,7 +12,7 @@ class foo {
static void iteratorTest(const foo &x)
{
foo::const_iterator i = x.begin(); // { dg-error "incomplete type" "incomplete type" }
- // { dg-error "const foo" "" { target *-*-* } 14 }
+ // { dg-error "const foo" "" { target *-*-* } .-1 }
for (; i; ++i)
*i;
}
diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash25.C b/gcc/testsuite/g++.old-deja/g++.other/crash25.C
index 5460e03886f..5b313db1a8d 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/crash25.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/crash25.C
@@ -3,7 +3,7 @@
// Origin: Jakub Jelinek <jakub@redhat.com>
class X { // { dg-error "1:new types may not be defined in a return type" "new types" }
-// { dg-message "1:\\(perhaps a semicolon is missing after the definition of 'X'\\)" "note" { target *-*-* } 5 }
+// { dg-message "1:\\(perhaps a semicolon is missing after the definition of 'X'\\)" "note" { target *-*-* } .-1 }
public:
X();
virtual ~X();
diff --git a/gcc/testsuite/g++.old-deja/g++.other/decl5.C b/gcc/testsuite/g++.old-deja/g++.other/decl5.C
index aa2acf8d142..9167061c6b1 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/decl5.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/decl5.C
@@ -12,7 +12,7 @@ struct A {
int A::m; // { dg-error "extra qualification" }
struct e;
struct A::e {int i;}; // { dg-error "extra qualification" "qual" }
- // { dg-error "anonymous struct" "anon" { target *-*-* } 14 }
+ // { dg-error "anonymous struct" "anon" { target *-*-* } .-1 }
struct A::expand { // { dg-error "qualified name" }
int m;
};
diff --git a/gcc/testsuite/g++.old-deja/g++.other/lineno5.C b/gcc/testsuite/g++.old-deja/g++.other/lineno5.C
index d22733953f0..63dc0b4b6da 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/lineno5.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/lineno5.C
@@ -16,5 +16,5 @@ namespace tmp {
class A {
public:
int kaka(tmp::B = b); // { dg-error "" } no b in scope
- // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } 18 }
+ // { dg-message "suggested alternative" "suggested alternative" { target *-*-* } .-1 }
};
diff --git a/gcc/testsuite/g++.old-deja/g++.other/null3.C b/gcc/testsuite/g++.old-deja/g++.other/null3.C
index 96691d3a2cc..0654f7f4ac0 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/null3.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/null3.C
@@ -3,5 +3,5 @@
void x()
{
int* p = 1==0; // { dg-warning "converting 'false' to pointer" "" { target { ! c++11 } } }
-// { dg-error "cannot convert" "" { target { c++11 } } 5 }
+// { dg-error "cannot convert" "" { target { c++11 } } .-1 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C b/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C
index 9a5c4ca9540..4572474a025 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C
@@ -17,8 +17,8 @@ int main()
{
B b;
if ((const char *)b != 0) // { dg-warning "choosing 'B" "B" } surprising overload resolution
- // { dg-warning "for conversion" "conv" { target *-*-* } 19 }
- // { dg-message "note" "note" { target *-*-* } 19 }
+ // { dg-warning "for conversion" "conv" { target *-*-* } .-1 }
+ // { dg-message "note" "note" { target *-*-* } .-2 }
return 1;
if ((const char *)(const B)b == 0)
return 2;
diff --git a/gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C b/gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C
index 987c0445a67..cda4f426b24 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C
@@ -21,7 +21,7 @@ void A::foo ()
{
int (A::*ptr1) (int) = &A::ns;
int (A::*ptr2) (int) = A::ns; // { dg-error "pointer to member" "err" }
- // { dg-message "pointer to member" "note" { target *-*-* } 23 }
+ // { dg-message "pointer to member" "note" { target *-*-* } .-1 }
int (A::*ptr3) (int) = &ns; // { dg-error "pointer to member" "err" }
int (A::*ptr4) (int) = ns; // { dg-error "pointer to member" "err" }
diff --git a/gcc/testsuite/g++.old-deja/g++.other/typename1.C b/gcc/testsuite/g++.old-deja/g++.other/typename1.C
index a5cbad43927..4e1a4a834dd 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/typename1.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/typename1.C
@@ -14,4 +14,4 @@ template<class T>
void f()
{
Vector<T>::iterator i = 0; // { dg-error "typename" "typename" } missing typename
-} // { dg-error "expected" "expected" { target *-*-* } 16 }
+} // { dg-error "expected" "expected" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.old-deja/g++.other/vaarg3.C b/gcc/testsuite/g++.old-deja/g++.other/vaarg3.C
index 98f78773750..c14a4db4ccc 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/vaarg3.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/vaarg3.C
@@ -23,11 +23,11 @@ void fn1(va_list args)
const Z &z2 = va_arg (args, Z); // { dg-error "incomplete" }
va_arg (args, char); // { dg-warning "promote" }
- // { dg-message "should pass" "pass" { target *-*-* } 25 }
- // { dg-message "abort" "abort" { target *-*-* } 25 }
+ // { dg-message "should pass" "pass" { target *-*-* } .-1 }
+ // { dg-message "abort" "abort" { target *-*-* } .-2 }
va_arg (args, int []); // { dg-error "array with unspecified bounds" } promote
va_arg (args, int ()); // { dg-warning "promoted" } promote
- // { dg-message "abort" "abort" { target *-*-* } 29 }
+ // { dg-message "abort" "abort" { target *-*-* } .-1 }
va_arg (args, bool); // { dg-warning "promote" "promote" }
- // { dg-message "abort" "abort" { target *-*-* } 31 }
+ // { dg-message "abort" "abort" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash10.C b/gcc/testsuite/g++.old-deja/g++.pt/crash10.C
index 5e87876147c..a84b19004ee 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/crash10.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/crash10.C
@@ -4,8 +4,8 @@ template<int M, int N>
class GCD {
public:
enum { val = (N == 0) ? M : GCD<N, M % N>::val };
-// { dg-error "constant expression" "valid" { target *-*-* } 6 }
-// { dg-message "template argument" "valid" { target *-*-* } 6 }
+// { dg-error "constant expression" "valid" { target *-*-* } .-1 }
+// { dg-message "template argument" "valid" { target *-*-* } .-2 }
};
int main() {
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash28.C b/gcc/testsuite/g++.old-deja/g++.pt/crash28.C
index 81ed85a28ef..8fb520d6eb3 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/crash28.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/crash28.C
@@ -11,5 +11,5 @@ void f(unsigned int n) {
int x[n];
asize(x); // { dg-error "" } no matching function
- // { dg-message "(candidate|not a valid template argument)" "candidate note" { target *-*-* } 13 }
+ // { dg-message "(candidate|not a valid template argument)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash38.C b/gcc/testsuite/g++.old-deja/g++.pt/crash38.C
index 4fc658eb157..5d386132436 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/crash38.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/crash38.C
@@ -4,8 +4,8 @@
template <class T>
struct S {
typedef typename T::Y<T>::Z X; // { dg-error "non-template" "non-template" } No Y in A
-// { dg-message "note" "note" { target *-*-* } 6 }
-// { dg-error "does not declare" "not declare" { target *-*-* } 6 }
+// { dg-message "note" "note" { target *-*-* } .-1 }
+// { dg-error "does not declare" "not declare" { target *-*-* } .-2 }
X x; // { dg-error "does not name a type" } No Y in A
};
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C
index 6c535fc42f0..d744055d916 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C
@@ -41,4 +41,4 @@ template <class T>
void g(T);
template void g(int); // { dg-error "no definition available" "no def" }
-// { dg-message "required" "inst" { target *-*-* } 43 }
+// { dg-message "required" "inst" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit77.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit77.C
index d79ee7f05e5..0f7cdf85e6a 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/explicit77.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit77.C
@@ -15,5 +15,5 @@ void g() {
f<0>(s0, s2);
f(s0, s2); // { dg-error "" } no matching function
- // { dg-message "(candidate|deduced conflicting|ambiguous base class)" "candidate note" { target *-*-* } 17 }
+ // { dg-message "(candidate|deduced conflicting|ambiguous base class)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/expr2.C b/gcc/testsuite/g++.old-deja/g++.pt/expr2.C
index 06d22d5197a..3dc66682139 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/expr2.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/expr2.C
@@ -9,5 +9,5 @@ void foo(S<J + 2>); // { dg-message "note" }
void bar()
{
foo(S<3>()); // { dg-error "" } no way to deduce J from this.
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 11 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/niklas01a.C b/gcc/testsuite/g++.old-deja/g++.pt/niklas01a.C
index 3130d32cadb..f2b27a661de 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/niklas01a.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/niklas01a.C
@@ -4,6 +4,6 @@
struct A { // { dg-message "" } forward declaration
friend struct B : A { // { dg-error "invalid use of incomplete type 'struct A" "invalid" }
int x;
- }; // { dg-error "class definition may not be declared a friend" "may not" { target *-*-* } { 5 } }
+ }; // { dg-error "class definition may not be declared a friend" "may not" { target *-*-* } 5 }
int y;
};
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec5.C b/gcc/testsuite/g++.old-deja/g++.pt/spec5.C
index 96e8cf91160..a34c2aee8db 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/spec5.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/spec5.C
@@ -14,9 +14,9 @@ template void g(int i, int j);
void h()
{
f(3, 'c'); // { dg-error "" } no matching function
- // { dg-message "(candidate|deduced conflicting types)" "candidate note" { target *-*-* } 16 }
+ // { dg-message "(candidate|deduced conflicting types)" "candidate note" { target *-*-* } .-1 }
g(3, 'c'); // { dg-error "" } no matching function
- // { dg-message "(candidate|deduced conflicting types)" "candidate note" { target *-*-* } 18 }
+ // { dg-message "(candidate|deduced conflicting types)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec6.C b/gcc/testsuite/g++.old-deja/g++.pt/spec6.C
index b8f6673fa0b..293bb31701f 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/spec6.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/spec6.C
@@ -25,9 +25,9 @@ void h()
{
S1 s1;
s1.f(3, 'c'); // { dg-error "" } no matching function
- // { dg-message "(candidate|deduced conflicting types)" "candidate note" { target *-*-* } 27 }
+ // { dg-message "(candidate|deduced conflicting types)" "candidate note" { target *-*-* } .-1 }
S2<char> s2;
s2.f(3, 'c'); // { dg-error "" } no matching function
- // { dg-message "(candidate|deduced conflicting types)" "candidate note" { target *-*-* } 31 }
+ // { dg-message "(candidate|deduced conflicting types)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename3.C b/gcc/testsuite/g++.old-deja/g++.pt/typename3.C
index ad026a77070..6d145590721 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/typename3.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/typename3.C
@@ -12,7 +12,7 @@ template <class U>
struct B : public A<U>
{
A_Type Func(); // { dg-error "does not name a type" "err" } implicit typename
- // { dg-message "note" "note" { target *-*-* } 14 }
+ // { dg-message "note" "note" { target *-*-* } .-1 }
};
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename5.C b/gcc/testsuite/g++.old-deja/g++.pt/typename5.C
index bf3acc9910f..87b50d6b750 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/typename5.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/typename5.C
@@ -23,5 +23,5 @@ struct C : public B<U>
template <class U>
void C<U>::Func(A_Type) { // { dg-error "declared void" "void" } implicit typename
-// { dg-error "not declared" "decl" { target *-*-* } 25 }
+// { dg-error "not declared" "decl" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename6.C b/gcc/testsuite/g++.old-deja/g++.pt/typename6.C
index 734781202f1..18bce27019f 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/typename6.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/typename6.C
@@ -11,7 +11,7 @@ template <class U>
struct B : public A<U>
{
A_Type Func(); // { dg-error "does not name a type" "err" }
- // { dg-message "note" "note" { target *-*-* } 13 }
+ // { dg-message "note" "note" { target *-*-* } .-1 }
};
template <class U>
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename7.C b/gcc/testsuite/g++.old-deja/g++.pt/typename7.C
index 9bdc4b20c48..4119250b86c 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/typename7.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/typename7.C
@@ -16,7 +16,7 @@ struct D : public A <C <T> > {
void f ()
{
B* new_entries = (B *) 0; // { dg-error "'B' was not declared in this scope" "B" }
- // { dg-error "'new_entries' was not declared in this scope" "new_entries" { target *-*-* } 18 }
- // { dg-error "expected" "exp" { target *-*-* } 18 }
+ // { dg-error "'new_entries' was not declared in this scope" "new_entries" { target *-*-* } .-1 }
+ // { dg-error "expected" "exp" { target *-*-* } .-2 }
}
};
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/unify4.C b/gcc/testsuite/g++.old-deja/g++.pt/unify4.C
index 9285b21c2ee..55b1037d813 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/unify4.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/unify4.C
@@ -8,6 +8,6 @@ int
main ()
{
f (g); // { dg-error "" } ambiguous unification
- // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 10 }
+ // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
return 0;
}
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/unify8.C b/gcc/testsuite/g++.old-deja/g++.pt/unify8.C
index 2d9abd5f9e3..d46856d5258 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/unify8.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/unify8.C
@@ -16,6 +16,6 @@ void Foo (float); // { dg-message "note" } candidate
void baz (int **p1)
{
Foo (p1); // { dg-error "match" } no such function
- // { dg-message "(candidate|incompatible cv-qualifiers|conversion)" "candidate note" { target *-*-* } 18 }
+ // { dg-message "(candidate|incompatible cv-qualifiers|conversion)" "candidate note" { target *-*-* } .-1 }
Bar (p1); // OK
}
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/vaarg3.C b/gcc/testsuite/g++.old-deja/g++.pt/vaarg3.C
index ee84db9b805..ad276c6efd5 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/vaarg3.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/vaarg3.C
@@ -23,6 +23,6 @@ int main (void)
{
A dummy;
PrintArgs (dummy, dummy); // { dg-message "pass" } cannot pass non-POD
-// { dg-message "required" "inst" { target *-*-* } 25 }
+// { dg-message "required" "inst" { target *-*-* } .-1 }
return 0;
}
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C
index e9d50deaf63..62dd18d0ccb 100644
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C
+++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C
@@ -24,5 +24,5 @@ bool operator==(const MyInt& a, const MyInt& b) // { dg-message "operator==" } c
bool f()
{
return 3 == MyInt(); // { dg-error "ambiguous" "err" }
- // { dg-message "operator==" "match candidate text" { target *-*-* } 26 }
+ // { dg-message "operator==" "match candidate text" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C
index dfd3d6ceda4..99c2ca979ad 100644
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C
+++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C
@@ -31,7 +31,7 @@ public:
};
class some_derived::func(derived_func_args &a) // { dg-error "does not name a type" "type" } illegal member syntax
-// { dg-error "expected" "exp" { target *-*-* } 33 }
+// { dg-error "expected" "exp" { target *-*-* } .-1 }
{
std::cout << a.i << ' ' << a.f << std::endl;
}
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb44.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb44.C
index a7e61804cb1..b21343c478a 100644
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb44.C
+++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb44.C
@@ -15,7 +15,7 @@ template <class T>
class Vector
{
friend ostream& operator<< (ostream& out, const Vector<T> & vec); // { dg-warning "non-template" "warn" }
- // { dg-message "note" "note" { target *-*-* } 17 }
+ // { dg-message "note" "note" { target *-*-* } .-1 }
};
template <class T>
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C
index 9620b87be44..04a17a89296 100644
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C
+++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C
@@ -12,7 +12,7 @@ struct foo { // { dg-message "note" } candidate
struct bar : foo {
typedef int an_int;
bar() : bar::an_int(3) {} // { dg-error "match" "match" } not a base
- // { dg-message "expected" "exp" { target *-*-* } 14 }
+ // { dg-message "expected" "exp" { target *-*-* } .-1 }
};
int
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb98.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb98.C
index 410a3369118..64a1cb5bec2 100644
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb98.C
+++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb98.C
@@ -15,5 +15,5 @@
void f()
{
extent(b); // { dg-error "" } no matching function
- // { dg-message "(candidate|mismatched types)" "candidate note" { target *-*-* } 17 }
+ // { dg-message "(candidate|mismatched types)" "candidate note" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20170419-1.c b/gcc/testsuite/gcc.c-torture/compile/20170419-1.c
new file mode 100644
index 00000000000..c16a5ea2af4
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20170419-1.c
@@ -0,0 +1,13 @@
+extern int __fpclassifyd (double x);
+
+double fdim (double x, double y)
+{
+ int c = __fpclassifyd (x);
+ if (c == 0)
+ return (x);
+ if (__fpclassifyd (y) == 0)
+ return (y);
+ if (c == 1)
+ return (__builtin_huge_val ());
+ return x > y ? x - y : 0.0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr80357.c b/gcc/testsuite/gcc.c-torture/compile/pr80357.c
new file mode 100644
index 00000000000..a3c6ab00feb
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr80357.c
@@ -0,0 +1,18 @@
+typedef char a;
+a b, c;
+int d, e;
+void f(void *g) { *(volatile int *)g; }
+void j() {
+ a h, i;
+ for (; b; b += 2) {
+ d = b;
+ i = i >> b;
+ if (i)
+ continue;
+ f(&c + (b >> 2));
+ h = 0;
+ for (; h < 8 / 2; h++)
+ if (i << h)
+ e = 0;
+ }
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr80422.c b/gcc/testsuite/gcc.c-torture/compile/pr80422.c
new file mode 100644
index 00000000000..2cece6775dd
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr80422.c
@@ -0,0 +1,26 @@
+
+int a, c, f;
+short b, d, e;
+
+int fn1 (int h)
+{
+ return a > 2 || h > a ? h : h << a;
+}
+
+void fn2 ()
+{
+ int j, k;
+ while (1)
+ {
+ k = c && b;
+ f &= e > (fn1 (k) && j);
+ if (!d)
+ break;
+ }
+}
+
+int main ()
+{
+ fn2 ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr80443.c b/gcc/testsuite/gcc.c-torture/compile/pr80443.c
new file mode 100644
index 00000000000..8c30cce3488
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr80443.c
@@ -0,0 +1,20 @@
+/* PR tree-optimization/80443 */
+
+struct S { int a : 1; } b, c;
+signed char d, e, f;
+
+void
+foo ()
+{
+ while (f)
+ {
+ signed char g = b.a;
+ if (g)
+ b.a = ~(1 + (d || c.a));
+ if (b.a < g && b.a)
+ g = 0;
+ if (b.a > c.a)
+ b.a = g;
+ c.a = e;
+ }
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr80153.c b/gcc/testsuite/gcc.c-torture/execute/pr80153.c
new file mode 100644
index 00000000000..3eed57828be
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr80153.c
@@ -0,0 +1,48 @@
+/* PR tree-optimization/80153 */
+
+void check (int, int, int) __attribute__((noinline));
+void check (int c, int c2, int val)
+{
+ if (!val) {
+ __builtin_abort();
+ }
+}
+
+static const char *buf;
+static int l, i;
+
+void _fputs(const char *str) __attribute__((noinline));
+void _fputs(const char *str)
+{
+ buf = str;
+ i = 0;
+ l = __builtin_strlen(buf);
+}
+
+char _fgetc() __attribute__((noinline));
+char _fgetc()
+{
+ char val = buf[i];
+ i++;
+ if (i > l)
+ return -1;
+ else
+ return val;
+}
+
+static const char *string = "oops!\n";
+
+int main(void)
+{
+ int i;
+ int c;
+
+ _fputs(string);
+
+ for (i = 0; i < __builtin_strlen(string); i++) {
+ c = _fgetc();
+ check(c, string[i], c == string[i]);
+ }
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/20031223-1.c b/gcc/testsuite/gcc.dg/20031223-1.c
index 353397eff90..68aa74ffe50 100644
--- a/gcc/testsuite/gcc.dg/20031223-1.c
+++ b/gcc/testsuite/gcc.dg/20031223-1.c
@@ -8,6 +8,6 @@
void f ()
{
l: int; /* { dg-error "a label can only be part of a statement and a declaration is not a statement" "not stmt" } */
- /* { dg-warning "useless type name in empty declaration" "type name" { target *-*-* } 10 } */
- /* { dg-error "label at end of compound statement" "label" { target *-*-* } 10 } */
+ /* { dg-warning "useless type name in empty declaration" "type name" { target *-*-* } .-1 } */
+ /* { dg-error "label at end of compound statement" "label" { target *-*-* } .-2 } */
}
diff --git a/gcc/testsuite/gcc.dg/940510-1.c b/gcc/testsuite/gcc.dg/940510-1.c
index 1f40d18ef67..46183831d09 100644
--- a/gcc/testsuite/gcc.dg/940510-1.c
+++ b/gcc/testsuite/gcc.dg/940510-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
/* { dg-options "-std=c89 -pedantic" } */
struct { int a[]; } x = { 0 }; /* { dg-warning "ISO C90 does not support flexible array members" } */
-/* { dg-error "flexible array member in a struct with no named members" "" { target *-*-* } 3 } */
+/* { dg-error "flexible array member in a struct with no named members" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/990506-0.c b/gcc/testsuite/gcc.dg/990506-0.c
index 3cd3be3fe52..901dfa1e231 100644
--- a/gcc/testsuite/gcc.dg/990506-0.c
+++ b/gcc/testsuite/gcc.dg/990506-0.c
@@ -4,6 +4,6 @@
x()
{
foo (i);
- /* { dg-error "undeclared" "undeclared-variable message" { target *-*-* } { 6 } } */
- /* { dg-message "function it appears in" "reminder message" { target *-*-* } { 6 } } */
+ /* { dg-error "undeclared" "undeclared-variable message" { target *-*-* } .-1 } */
+ /* { dg-message "function it appears in" "reminder message" { target *-*-* } .-2 } */
}
diff --git a/gcc/testsuite/gcc.dg/Walloca-1.c b/gcc/testsuite/gcc.dg/Walloca-1.c
index fa191246054..ad39373fb9f 100644
--- 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_t len3)
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 } } 27 }
+ // { dg-warning "unbounded use of 'alloca'" "" { target { ! lp64 } } .-1 }
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
index 81d923c1e50..766ff8d8af3 100644
--- 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 } 39 }
- // { dg-warning "unbounded use of 'alloca'" "" { target { ! lp64 } } 39 }
+ // { dg-message "note:.*argument may be as large as 2999" "note" { target lp64 } .-1 }
+ // { dg-warning "unbounded use of 'alloca'" "" { target { ! lp64 } } .-2 }
}
else
p = __builtin_malloc (n);
diff --git a/gcc/testsuite/gcc.dg/Wconversion-integer.c b/gcc/testsuite/gcc.dg/Wconversion-integer.c
index 4479349e1ff..dc13e8fab36 100644
--- a/gcc/testsuite/gcc.dg/Wconversion-integer.c
+++ b/gcc/testsuite/gcc.dg/Wconversion-integer.c
@@ -41,9 +41,9 @@ void h (int x)
uc = 'A';
uc = x ? 1U : -1; /* { dg-warning " conversion" "conversion" } */
- /* { dg-warning "negative integer implicitly converted to unsigned type" "implicit" { target *-*-* } 43 } */
+ /* { dg-warning "negative integer implicitly converted to unsigned type" "implicit" { target *-*-* } .-1 } */
uc = x ? SCHAR_MIN : 1U; /* { dg-warning " conversion" "conversion" } */
- /* { dg-warning "negative integer implicitly converted to unsigned type" "implicit" { target *-*-* } 45 } */
+ /* { dg-warning "negative integer implicitly converted to unsigned type" "implicit" { target *-*-* } .-1 } */
uc = x ? 1 : -1; /* { dg-warning "negative integer implicitly converted to unsigned type" } */
uc = x ? SCHAR_MIN : 1; /* { dg-warning "negative integer implicitly converted to unsigned type" } */
ui = x ? 1U : -1; /* { dg-warning "negative integer implicitly converted to unsigned type" } */
diff --git a/gcc/testsuite/gcc.dg/Wcxx-compat-8.c b/gcc/testsuite/gcc.dg/Wcxx-compat-8.c
index 4e9ddc1b397..85ccec7989f 100644
--- a/gcc/testsuite/gcc.dg/Wcxx-compat-8.c
+++ b/gcc/testsuite/gcc.dg/Wcxx-compat-8.c
@@ -25,15 +25,15 @@ int v4 = C;
enum e3
{
F = sizeof (struct t3), /* { dg-bogus "invalid in C\[+\]\[+\]" } */
- /* { dg-error "invalid application of 'sizeof'" "" { target *-*-* } 27 } */
+ /* { dg-error "invalid application of 'sizeof'" "" { target *-*-* } .-1 } */
G = __alignof__ (struct t4), /* { dg-bogus "invalid in C\[+\]\[+\]" } */
- /* { dg-error "invalid application of '__alignof__'" "" { target *-*-* } 29 } */
+ /* { dg-error "invalid application of '__alignof__'" "" { target *-*-* } .-1 } */
H
};
__typeof__ (struct s5 { int i; }) v5; /* { dg-warning "invalid in C\[+\]\[+\]" } */
__typeof__ (struct t5) w5; /* { dg-bogus "invalid in C\[+\]\[+\]" } */
- /* { dg-error "storage size of 'w5' isn't known" "" { target *-*-* } 35 } */
+ /* { dg-error "storage size of 'w5' isn't known" "" { target *-*-* } .-1 } */
int
f1 (struct s1 *p)
diff --git a/gcc/testsuite/gcc.dg/Wimplicit-int-1.c b/gcc/testsuite/gcc.dg/Wimplicit-int-1.c
index 0c89caf8c47..4a96e8f505d 100644
--- a/gcc/testsuite/gcc.dg/Wimplicit-int-1.c
+++ b/gcc/testsuite/gcc.dg/Wimplicit-int-1.c
@@ -4,7 +4,7 @@
static l; /* { dg-warning "type defaults to" } */
foo (a) /* { dg-warning "return type defaults to" } */
-/* { dg-warning "type of .a. defaults to .int." "type" { target *-*-* } 6 } */
+/* { dg-warning "type of .a. defaults to .int." "type" { target *-*-* } .-1 } */
{
auto p; /* { dg-warning "type defaults to" } */
typedef bar; /* { dg-warning "type defaults to" } */
diff --git a/gcc/testsuite/gcc.dg/Wimplicit-int-2.c b/gcc/testsuite/gcc.dg/Wimplicit-int-2.c
index 158b61ce47e..4ff16f36738 100644
--- a/gcc/testsuite/gcc.dg/Wimplicit-int-2.c
+++ b/gcc/testsuite/gcc.dg/Wimplicit-int-2.c
@@ -4,7 +4,7 @@
static l; /* { dg-error "type defaults to" } */
foo (a) /* { dg-error "return type defaults to" } */
-/* { dg-error "type of .a. defaults to .int." "type" { target *-*-* } 6 } */
+/* { dg-error "type of .a. defaults to .int." "type" { target *-*-* } .-1 } */
{
auto p; /* { dg-error "type defaults to" } */
typedef bar; /* { dg-error "type defaults to" } */
diff --git a/gcc/testsuite/gcc.dg/Wimplicit-int-4.c b/gcc/testsuite/gcc.dg/Wimplicit-int-4.c
index b25283564bc..c9c6e8e5e95 100644
--- a/gcc/testsuite/gcc.dg/Wimplicit-int-4.c
+++ b/gcc/testsuite/gcc.dg/Wimplicit-int-4.c
@@ -4,7 +4,7 @@
static l; /* { dg-warning "type defaults to" } */
foo (a) /* { dg-warning "return type defaults to" } */
-/* { dg-warning "type of .a. defaults to .int." "type" { target *-*-* } 6 } */
+/* { dg-warning "type of .a. defaults to .int." "type" { target *-*-* } .-1 } */
{
auto p; /* { dg-warning "type defaults to" } */
typedef bar; /* { dg-warning "type defaults to" } */
diff --git a/gcc/testsuite/gcc.dg/Wpointer-sign-Wall.c b/gcc/testsuite/gcc.dg/Wpointer-sign-Wall.c
index 302d50e5cf1..66cc3a59327 100644
--- a/gcc/testsuite/gcc.dg/Wpointer-sign-Wall.c
+++ b/gcc/testsuite/gcc.dg/Wpointer-sign-Wall.c
@@ -2,7 +2,7 @@
/* { dg-options "-Wall" } */
-void foo(unsigned long* ulp); /* { dg-message "note: expected '\[^\n'\]*' but argument is of type '\[^\n'\]*'" "note: expected" { target *-*-* } 5 } */
+void foo(unsigned long* ulp); /* { dg-message "note: expected '\[^\n'\]*' but argument is of type '\[^\n'\]*'" "note: expected" { target *-*-* } . } */
void bar(long* lp) {
diff --git a/gcc/testsuite/gcc.dg/Wpointer-sign-pedantic.c b/gcc/testsuite/gcc.dg/Wpointer-sign-pedantic.c
index 8b92110988d..7b1eef23171 100644
--- a/gcc/testsuite/gcc.dg/Wpointer-sign-pedantic.c
+++ b/gcc/testsuite/gcc.dg/Wpointer-sign-pedantic.c
@@ -2,7 +2,7 @@
/* { dg-options "-pedantic" } */
-void foo(unsigned long* ulp);/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } 5 } */
+void foo(unsigned long* ulp);/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } . } */
void bar(long* lp) {
foo(lp); /* { dg-warning "differ in signedness" } */
diff --git a/gcc/testsuite/gcc.dg/Wshadow-1.c b/gcc/testsuite/gcc.dg/Wshadow-1.c
index 6075711f5da..0d15aac59c5 100644
--- a/gcc/testsuite/gcc.dg/Wshadow-1.c
+++ b/gcc/testsuite/gcc.dg/Wshadow-1.c
@@ -13,7 +13,7 @@ void foo (double decl1) /* { dg-warning "shadows a global decl" } */
void foo1 (int d) /* { dg-message "note: previous definition" } */
{
double d; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "redeclared as different" "" { target *-*-* } 15 } */
+ /* { dg-error "redeclared as different" "" { target *-*-* } .-1 } */
}
void foo2 (int d) /* { dg-message "shadowed declaration" } */
diff --git a/gcc/testsuite/gcc.dg/Wshadow-3.c b/gcc/testsuite/gcc.dg/Wshadow-3.c
index ce2879c0fb8..0fa41bca303 100644
--- a/gcc/testsuite/gcc.dg/Wshadow-3.c
+++ b/gcc/testsuite/gcc.dg/Wshadow-3.c
@@ -18,4 +18,4 @@ int f9(x) int x; { return 0; }
int f10(v) { return 0; } /* { dg-warning "declaration of 'v' shadows a global declaration" } */
int f11(int a, int b(int a));
int f12(int a, int b(int a, int x[a])); /* { dg-warning "declaration of 'a' shadows a parameter" } */
-/* { dg-message "shadowed declaration" "outer parm" { target *-*-* } 20 } */
+/* { dg-message "shadowed declaration" "outer parm" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/Wswitch-enum-error.c b/gcc/testsuite/gcc.dg/Wswitch-enum-error.c
index 99268400750..e9e18262aaa 100644
--- a/gcc/testsuite/gcc.dg/Wswitch-enum-error.c
+++ b/gcc/testsuite/gcc.dg/Wswitch-enum-error.c
@@ -20,10 +20,10 @@ foo (int i, int j, enum e ei, enum e ej, enum e ek, enum e el,
default: break;
}
switch (ei) /* { dg-warning "enumeration value 'e1' not handled in switch" "enum e1" } */
- { /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } 22 } */
+ { /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } .-1 } */
}
switch (ej) /* { dg-error "enumeration value 'e1' not handled in switch" "enum e1" } */
- { /* { dg-error "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } 25 } */
+ { /* { dg-error "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } .-1 } */
default: break;
}
switch (ek) /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" } */
diff --git a/gcc/testsuite/gcc.dg/Wswitch-enum.c b/gcc/testsuite/gcc.dg/Wswitch-enum.c
index 28c60d879ae..010712e59c0 100644
--- a/gcc/testsuite/gcc.dg/Wswitch-enum.c
+++ b/gcc/testsuite/gcc.dg/Wswitch-enum.c
@@ -20,10 +20,10 @@ foo (int i, int j, enum e ei, enum e ej, enum e ek, enum e el,
default: break;
}
switch (ei) /* { dg-warning "enumeration value 'e1' not handled in switch" "enum e1" } */
- { /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } 22 } */
+ { /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } .-1 } */
}
switch (ej) /* { dg-warning "enumeration value 'e1' not handled in switch" "enum e1" } */
- { /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } 25 } */
+ { /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } .-1 } */
default: break;
}
switch (ek) /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" } */
diff --git a/gcc/testsuite/gcc.dg/Wswitch-error.c b/gcc/testsuite/gcc.dg/Wswitch-error.c
index 2fcd1ddd5bd..0d2f0b37eae 100644
--- a/gcc/testsuite/gcc.dg/Wswitch-error.c
+++ b/gcc/testsuite/gcc.dg/Wswitch-error.c
@@ -20,10 +20,10 @@ foo (int i, int j, enum e ei, enum e ej, enum e ek, enum e el,
default: break;
}
switch (ei) /* { dg-error "enumeration value 'e1' not handled in switch" "enum e1" } */
- { /* { dg-error "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } 22 } */
+ { /* { dg-error "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } .-1 } */
}
switch (ej) /* { dg-warning "enumeration value 'e1' not handled in switch" "enum e1" } */
- { /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } 25 } */
+ { /* { dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } .-1 } */
default: break;
}
switch (ek) /* { dg-error "enumeration value 'e2' not handled in switch" "enum e2" } */
diff --git a/gcc/testsuite/gcc.dg/Wswitch.c b/gcc/testsuite/gcc.dg/Wswitch.c
index 9b43ed445b3..7bf5eb19375 100644
--- a/gcc/testsuite/gcc.dg/Wswitch.c
+++ b/gcc/testsuite/gcc.dg/Wswitch.c
@@ -20,7 +20,7 @@ foo (int i, int j, enum e ei, enum e ej, enum e ek, enum e el,
default: break;
}
switch (ei) /* { dg-warning "enumeration value 'e1' not handled in switch" "enum e1" } */
- { /*{ dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } 22 } */
+ { /*{ dg-warning "enumeration value 'e2' not handled in switch" "enum e2" { target *-*-* } .-1 } */
}
switch (ej)
{
diff --git a/gcc/testsuite/gcc.dg/Wtype-limits-Wextra.c b/gcc/testsuite/gcc.dg/Wtype-limits-Wextra.c
index f8f528c996b..bf08734039d 100644
--- a/gcc/testsuite/gcc.dg/Wtype-limits-Wextra.c
+++ b/gcc/testsuite/gcc.dg/Wtype-limits-Wextra.c
@@ -13,7 +13,7 @@ void a (unsigned char x)
return;
if (255 >= x) /* { dg-warning "comparison is always true due to limited range of data type" } */
return;
- if ((int)x <= 255) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } 16 } */
+ if ((int)x <= 255) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } . } */
return;
if (255 >= (unsigned char) 1)
return;
@@ -21,13 +21,13 @@ void a (unsigned char x)
}
void b (unsigned short x)
-{ /* { dg-warning "comparison of unsigned expression < 0 is always false" "" { target { ! int32plus } } 25 } */
+{ /* { dg-warning "comparison of unsigned expression < 0 is always false" "" { target { ! int32plus } } .+1 } */
if (x < 0) return;/* { dg-warning "comparison is always false due to limited range of data type" "" { target { int32plus } } } */
- /* { dg-warning "comparison of unsigned expression >= 0 is always true" "" { target { ! int32plus } } 27 } */
+ /* { dg-warning "comparison of unsigned expression >= 0 is always true" "" { target { ! int32plus } } .+1 } */
if (x >= 0) return;/* { dg-warning "comparison is always true due to limited range of data type" "" { target { int32plus } } } */
- /* { dg-warning "comparison of unsigned expression < 0 is always false" "" { target { ! int32plus } } 29 } */
+ /* { dg-warning "comparison of unsigned expression < 0 is always false" "" { target { ! int32plus } } .+1 } */
if (0 > x) return;/* { dg-warning "comparison is always false due to limited range of data type" "" { target { int32plus } } } */
- /* { dg-warning "comparison of unsigned expression >= 0 is always true" "" { target { ! int32plus } } 31 } */
+ /* { dg-warning "comparison of unsigned expression >= 0 is always true" "" { target { ! int32plus } } .+1 } */
if (0 <= x) return;/* { dg-warning "comparison is always true due to limited range of data type" "" { target { int32plus } } } */
}
@@ -61,7 +61,7 @@ void e (unsigned long long x)
int test (int x)
{
- if ((long long)x <= 0x123456789ABCLL) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } 64 } */
+ if ((long long)x <= 0x123456789ABCLL) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } . } */
return 1;
else
return 0;
diff --git a/gcc/testsuite/gcc.dg/Wtype-limits.c b/gcc/testsuite/gcc.dg/Wtype-limits.c
index 16173e5b25c..c137385ee5e 100644
--- a/gcc/testsuite/gcc.dg/Wtype-limits.c
+++ b/gcc/testsuite/gcc.dg/Wtype-limits.c
@@ -13,7 +13,7 @@ void a (unsigned char x)
return;
if (255 >= x) /* { dg-warning "comparison is always true due to limited range of data type" } */
return;
- if ((int)x <= 255) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } 16 } */
+ if ((int)x <= 255) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } . } */
return;
if (255 >= (unsigned char) 1)
return;
@@ -21,13 +21,13 @@ void a (unsigned char x)
}
void b (unsigned short x)
-{ /* { dg-warning "comparison of unsigned expression < 0 is always false" "" { target { ! int32plus } } 25 } */
+{ /* { dg-warning "comparison of unsigned expression < 0 is always false" "" { target { ! int32plus } } .+1 } */
if (x < 0) return;/* { dg-warning "comparison is always false due to limited range of data type" "" { target { int32plus } } } */
- /* { dg-warning "comparison of unsigned expression >= 0 is always true" "" { target { ! int32plus } } 27 } */
+ /* { dg-warning "comparison of unsigned expression >= 0 is always true" "" { target { ! int32plus } } .+1 } */
if (x >= 0) return;/* { dg-warning "comparison is always true due to limited range of data type" "" { target { int32plus } } } */
- /* { dg-warning "comparison of unsigned expression < 0 is always false" "" { target { ! int32plus } } 29 } */
+ /* { dg-warning "comparison of unsigned expression < 0 is always false" "" { target { ! int32plus } } .+1 } */
if (0 > x) return;/* { dg-warning "comparison is always false due to limited range of data type" "" { target { int32plus } } } */
- /* { dg-warning "comparison of unsigned expression >= 0 is always true" "" { target { ! int32plus } } 31 } */
+ /* { dg-warning "comparison of unsigned expression >= 0 is always true" "" { target { ! int32plus } } .+1 } */
if (0 <= x) return;/* { dg-warning "comparison is always true due to limited range of data type" "" { target { int32plus } } } */
}
@@ -61,7 +61,7 @@ void e (unsigned long long x)
int test (int x)
{
- if ((long long)x <= 0x123456789ABCLL) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } 64 } */
+ if ((long long)x <= 0x123456789ABCLL) /* { dg-bogus "comparison is always true due to limited range of data type" "" { xfail *-*-* } . } */
return 1;
else
return 0;
diff --git a/gcc/testsuite/gcc.dg/Wvla-larger-than-2.c b/gcc/testsuite/gcc.dg/Wvla-larger-than-2.c
index 68de771cbbd..5c0ba510565 100644
--- 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 *-*-* } 26 }
+ // { dg-message "note:.*argument may be as large as 44" "note" { target *-*-* } .-1 }
f0 (x);
}
}
diff --git a/gcc/testsuite/gcc.dg/anon-struct-5.c b/gcc/testsuite/gcc.dg/anon-struct-5.c
index af1690ed3ca..e283e0d1692 100644
--- a/gcc/testsuite/gcc.dg/anon-struct-5.c
+++ b/gcc/testsuite/gcc.dg/anon-struct-5.c
@@ -3,5 +3,5 @@
/* { dg-options "-std=c99 -pedantic-errors" } */
struct Foo { int; }; /* { dg-bogus "unnamed" } */
-/* { dg-error "declaration does not declare anything" "int;" { target *-*-* } 5 } */
-/* { dg-error "struct has no members" "no members" { target *-*-* } 5 } */
+/* { dg-error "declaration does not declare anything" "int;" { target *-*-* } .-1 } */
+/* { dg-error "struct has no members" "no members" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/gcc.dg/array-10.c b/gcc/testsuite/gcc.dg/array-10.c
index 44457d12c06..c1c73ff62b9 100644
--- a/gcc/testsuite/gcc.dg/array-10.c
+++ b/gcc/testsuite/gcc.dg/array-10.c
@@ -21,13 +21,13 @@ struct c4 { int (*x)[(__UINTPTR_TYPE__)&a]; }; /* { dg-error "19:at file scope"
typeof (int [(__UINTPTR_TYPE__)&a]) c5; /* { dg-error "37:at file scope" } */
int d0[1/0]; /* { dg-error "5:at file scope" } */
-/* { dg-warning "9:division by zero" "" { target *-*-* } 23 } */
+/* { dg-warning "9:division by zero" "" { target *-*-* } .-1 } */
int (*d1)[1/0]; /* { dg-error "7:at file scope" } */
-/* { dg-warning "12:division by zero" "" { target *-*-* } 25 } */
+/* { dg-warning "12:division by zero" "" { target *-*-* } .-1 } */
int (*d2())[1/0]; /* { dg-error "7:at file scope" } */
-/* { dg-warning "14:division by zero" "" { target *-*-* } 27 } */
+/* { dg-warning "14:division by zero" "" { target *-*-* } .-1 } */
struct d3 { int x[1/0]; }; /* { dg-error "17:at file scope" } */
-/* { dg-warning "20:division by zero" "" { target *-*-* } 29 } */
+/* { dg-warning "20:division by zero" "" { target *-*-* } .-1 } */
struct d4 { int (*x)[1/0]; }; /* { dg-error "19:at file scope" } */
-/* { dg-warning "23:division by zero" "" { target *-*-* } 31 } */
+/* { dg-warning "23:division by zero" "" { target *-*-* } .-1 } */
typeof (int [1/0]) d5; /* { dg-error "20:at file scope" } */
diff --git a/gcc/testsuite/gcc.dg/array-11.c b/gcc/testsuite/gcc.dg/array-11.c
index dbf38ae8ca9..3b216a38e06 100644
--- a/gcc/testsuite/gcc.dg/array-11.c
+++ b/gcc/testsuite/gcc.dg/array-11.c
@@ -9,7 +9,7 @@ struct f { int w; T x; };
struct g { struct f f; };
struct g g1 = { { 0, { } } };
struct g g2 = { { 0, { 1 } } }; /* { dg-error "nested context" "nested" } */
- /* { dg-message "near init" "near" { target *-*-* } 11 } */
+ /* { dg-message "near init" "near" { target *-*-* } .-1 } */
struct h { int x[0]; int y; };
struct h h1 = { { 0 }, 1 }; /* { dg-warning "excess elements" "excess" } */
- /* { dg-message "near init" "before end" { target *-*-* } 14 } */
+ /* { dg-message "near init" "before end" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/array-15.c b/gcc/testsuite/gcc.dg/array-15.c
index a002f689acf..8e7c0adad2e 100644
--- a/gcc/testsuite/gcc.dg/array-15.c
+++ b/gcc/testsuite/gcc.dg/array-15.c
@@ -5,48 +5,48 @@
struct S
{
int a[1][][2]; /* { dg-error "array type has incomplete element type" } */
- /* { dg-message "declaration of .a. as multidimensional array must have bounds" "" { target *-*-* } 7 } */
+ /* { dg-message "declaration of .a. as multidimensional array must have bounds" "" { target *-*-* } .-1 } */
};
struct R
{
int i;
int a[][]; /* { dg-error "array type has incomplete element type" } */
- /* { dg-message "declaration of .a. as multidimensional array must have bounds" "" { target *-*-* } 14 } */
+ /* { dg-message "declaration of .a. as multidimensional array must have bounds" "" { target *-*-* } .-1 } */
};
typedef int T[];
typedef int U[][]; /* { dg-error "array type has incomplete element type" } */
-/* { dg-message "declaration of .U. as multidimensional array must have bounds" "" { target *-*-* } 19 } */
+/* { dg-message "declaration of .U. as multidimensional array must have bounds" "" { target *-*-* } .-1 } */
int x[][]; /* { dg-error "array type has incomplete element type" } */
-/* { dg-message "declaration of .x. as multidimensional array must have bounds" "" { target *-*-* } 22 } */
+/* { dg-message "declaration of .x. as multidimensional array must have bounds" "" { target *-*-* } .-1 } */
struct N;
void
fn1 (int z[][]) /* { dg-error "array type has incomplete element type" } */
-/* { dg-message "declaration of .z. as multidimensional array must have bounds" "" { target *-*-* } 28 } */
+/* { dg-message "declaration of .z. as multidimensional array must have bounds" "" { target *-*-* } .-1 } */
{
int a[1][][2]; /* { dg-error "array type has incomplete element type" } */
- /* { dg-message "declaration of .a. as multidimensional array must have bounds" "" { target *-*-* } 31 } */
+ /* { dg-message "declaration of .a. as multidimensional array must have bounds" "" { target *-*-* } .-1 } */
/* OK */
int b[3][2][1];
int c[1][2][3][]; /* { dg-error "array type has incomplete element type" } */
- /* { dg-message "declaration of .c. as multidimensional array must have bounds" "" { target *-*-* } 35 } */
+ /* { dg-message "declaration of .c. as multidimensional array must have bounds" "" { target *-*-* } .-1 } */
T d[1]; /* { dg-error "array type has incomplete element type" } */
- /* { dg-message "declaration of .d. as multidimensional array must have bounds" "" { target *-*-* } 37 } */
+ /* { dg-message "declaration of .d. as multidimensional array must have bounds" "" { target *-*-* } .-1 } */
T e[]; /* { dg-error "array type has incomplete element type" } */
- /* { dg-message "declaration of .e. as multidimensional array must have bounds" "" { target *-*-* } 39 } */
+ /* { dg-message "declaration of .e. as multidimensional array must have bounds" "" { target *-*-* } .-1 } */
/* This array has incomplete element type, but is not multidimensional. */
struct N f[1]; /* { dg-error "array type has incomplete element type" } */
- /* { dg-bogus "declaration of .f. as multidimensional array must have bounds" "" { target *-*-* } 43 } */
+ /* { dg-bogus "declaration of .f. as multidimensional array must have bounds" "" { target *-*-* } .-1 } */
}
void fn2 (int [][]); /* { dg-error "array type has incomplete element type" } */
-/* { dg-message "declaration of multidimensional array must have bounds" "" { target *-*-* } 47 } */
+/* { dg-message "declaration of multidimensional array must have bounds" "" { target *-*-* } .-1 } */
/* OK */
void fn3 (int [][*]);
void fn4 (T []); /* { dg-error "array type has incomplete element type" } */
-/* { dg-message "declaration of multidimensional array must have bounds" "" { target *-*-* } 51 } */
+/* { dg-message "declaration of multidimensional array must have bounds" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/array-2.c b/gcc/testsuite/gcc.dg/array-2.c
index 6187500e37a..f207af58d41 100644
--- a/gcc/testsuite/gcc.dg/array-2.c
+++ b/gcc/testsuite/gcc.dg/array-2.c
@@ -8,7 +8,7 @@ struct f { int w; int x[]; };
struct g { struct f f; };
struct g g1 = { { 0, { } } };
struct g g2 = { { 0, { 1 } } }; /* { dg-error "nested context" "nested" } */
- /* { dg-message "near init" "near" { target *-*-* } 10 } */
+ /* { dg-message "near init" "near" { target *-*-* } .-1 } */
struct h { int x[0]; int y; };
struct h h1 = { { 0 }, 1 }; /* { dg-warning "excess elements" "excess" } */
- /* { dg-message "near init" "before end" { target *-*-* } 13 } */
+ /* { dg-message "near init" "before end" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/array-8.c b/gcc/testsuite/gcc.dg/array-8.c
index 2872985806e..644d84f14aa 100644
--- a/gcc/testsuite/gcc.dg/array-8.c
+++ b/gcc/testsuite/gcc.dg/array-8.c
@@ -43,6 +43,6 @@ g (void)
pv[0]; /* { dg-warning "dereferencing 'void \\*' pointer" } */
0[pv]; /* { dg-warning "dereferencing 'void \\*' pointer" } */
sip[0]; /* { dg-error "invalid use of undefined type 'struct si'" } */
- /* { dg-error "dereferencing pointer to incomplete type" "incomplete" { target *-*-* } 45 } */
+ /* { dg-error "dereferencing pointer to incomplete type" "incomplete" { target *-*-* } .-1 } */
0[sip]; /* { dg-error "invalid use of undefined type 'struct si'" } */
}
diff --git a/gcc/testsuite/gcc.dg/array-const-2.c b/gcc/testsuite/gcc.dg/array-const-2.c
index 6f76955f20a..d962a3729b7 100644
--- a/gcc/testsuite/gcc.dg/array-const-2.c
+++ b/gcc/testsuite/gcc.dg/array-const-2.c
@@ -6,4 +6,4 @@
extern int i;
int a[] = { [1 ? 1 : i] = 0 }; /* { dg-warning "array index in initializer is not an integer constant expression" } */
-/* { dg-message "near initialization" "near init" { target *-*-* } 8 } */
+/* { dg-message "near initialization" "near init" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/array-const-3.c b/gcc/testsuite/gcc.dg/array-const-3.c
index 036b0eae7bc..b7089284f8c 100644
--- a/gcc/testsuite/gcc.dg/array-const-3.c
+++ b/gcc/testsuite/gcc.dg/array-const-3.c
@@ -6,4 +6,4 @@
extern int i;
int a[] = { [1 ? 1 : i] = 0 }; /* { dg-error "array index in initializer is not an integer constant expression" } */
-/* { dg-message "near initialization" "near init" { target *-*-* } 8 } */
+/* { dg-message "near initialization" "near init" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/attr-alloc_size-11.c b/gcc/testsuite/gcc.dg/attr-alloc_size-11.c
index 47584f5601f..fe6154a0d77 100644
--- a/gcc/testsuite/gcc.dg/attr-alloc_size-11.c
+++ b/gcc/testsuite/gcc.dg/attr-alloc_size-11.c
@@ -47,8 +47,8 @@ typedef __SIZE_TYPE__ size_t;
/* The following tests fail because of missing range information. The xfail
exclusions are PR79356. */
-TEST (signed char, SCHAR_MIN + 2, ALLOC_MAX); /* { dg-warning "argument 1 range \\\[13, \[0-9\]+\\\] exceeds maximum object size 12" "missing range info for signed char" { xfail { ! { aarch64*-*-* arm*-*-* ia64-*-* mips*-*-* powerpc*-*-* sparc*-*-* s390*-*-* } } } } */
-TEST (short, SHRT_MIN + 2, ALLOC_MAX); /* { dg-warning "argument 1 range \\\[13, \[0-9\]+\\\] exceeds maximum object size 12" "missing range info for short" { xfail { ! { aarch64*-*-* arm*-*-* ia64-*-* mips*-*-* powerpc*-*-* sparc*-*-* s390x-*-* } } } } */
+TEST (signed char, SCHAR_MIN + 2, ALLOC_MAX); /* { dg-warning "argument 1 range \\\[13, \[0-9\]+\\\] exceeds maximum object size 12" "missing range info for signed char" { xfail { ! { aarch64*-*-* arm*-*-* alpha*-*-* ia64-*-* mips*-*-* powerpc*-*-* sparc*-*-* s390*-*-* } } } } */
+TEST (short, SHRT_MIN + 2, ALLOC_MAX); /* { dg-warning "argument 1 range \\\[13, \[0-9\]+\\\] exceeds maximum object size 12" "missing range info for short" { xfail { ! { aarch64*-*-* arm*-*-* alpha*-*-* ia64-*-* mips*-*-* powerpc*-*-* sparc*-*-* s390x-*-* } } } } */
TEST (int, INT_MIN + 2, ALLOC_MAX); /* { dg-warning "argument 1 range \\\[13, \[0-9\]+\\\] exceeds maximum object size 12" } */
TEST (int, -3, ALLOC_MAX); /* { dg-warning "argument 1 range \\\[13, \[0-9\]+\\\] exceeds maximum object size 12" } */
TEST (int, -2, ALLOC_MAX); /* { dg-warning "argument 1 range \\\[13, \[0-9\]+\\\] exceeds maximum object size 12" } */
diff --git a/gcc/testsuite/gcc.dg/bitfld-1.c b/gcc/testsuite/gcc.dg/bitfld-1.c
index 2493670e21b..246e07c5891 100644
--- a/gcc/testsuite/gcc.dg/bitfld-1.c
+++ b/gcc/testsuite/gcc.dg/bitfld-1.c
@@ -25,7 +25,7 @@ struct bf1
unsigned long g: 5; /* { dg-warning "GCC extension|ISO C" } */
ui h: 5;
enum foo i: 2; /* { dg-warning "narrower" } */
- /* { dg-warning "GCC extension|ISO C" "extension" { target *-*-* } 27 } */
+ /* { dg-warning "GCC extension|ISO C" "extension" { target *-*-* } .-1 } */
enum foo j: 3; /* { dg-warning "GCC extension|ISO C" } */
unsigned int k: 256; /* { dg-error "exceeds its type" } */
};
diff --git a/gcc/testsuite/gcc.dg/bitfld-8.c b/gcc/testsuite/gcc.dg/bitfld-8.c
index 937fb64f5f4..c73642c79d9 100644
--- a/gcc/testsuite/gcc.dg/bitfld-8.c
+++ b/gcc/testsuite/gcc.dg/bitfld-8.c
@@ -4,4 +4,4 @@
/* { dg-options "" } */
struct { int i : 1999; } x; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "width" "bit-field too wide" { target *-*-* } 6 } */
+/* { dg-error "width" "bit-field too wide" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/builtin-redefine.c b/gcc/testsuite/gcc.dg/builtin-redefine.c
index 1d0f29da8da..9b21afdd669 100644
--- a/gcc/testsuite/gcc.dg/builtin-redefine.c
+++ b/gcc/testsuite/gcc.dg/builtin-redefine.c
@@ -7,17 +7,17 @@
#if defined(__DATE__)
#error "__DATE__ is defined, but should not be (-U command line error)"
-/* { dg-bogus "__DATE__ is defined" "" { target *-*-* } 9 } */
+/* { dg-bogus "__DATE__ is defined" "" { target *-*-* } .-1 } */
#endif
#if __TIME__ != X
#error "__TIME__ is not defined as expected (-D command line error)"
-/* { dg-bogus "__TIME__ is not defined" "" { target *-*-* } 14 } */
+/* { dg-bogus "__TIME__ is not defined" "" { target *-*-* } .-1 } */
#endif
#if !defined(__TIMESTAMP__)
#error "__TIMESTAMP__ is not defined (built-in macro expectation error)"
-/* { dg-bogus "__TIMESTAMP__ is not defined" "" { target *-*-* } 19 } */
+/* { dg-bogus "__TIMESTAMP__ is not defined" "" { target *-*-* } .-1 } */
#endif
@@ -57,7 +57,7 @@
#if !defined(__FILE__) || !defined(__BASE_FILE__)
#error "Expected built-in is not defined (built-in macro expectation error)"
-/* { dg-bogus "Expected built-in is not defined" "" { target *-*-* } 59 } */
+/* { dg-bogus "Expected built-in is not defined" "" { target *-*-* } .-1 } */
#endif
#define __FILE__ "X" /* Define while already defined. */
@@ -68,7 +68,7 @@
#if !defined(__LINE__) || !defined(__INCLUDE_LEVEL__) || !defined(__COUNTER__)
#error "Expected built-in is not defined (built-in macro expectation error)"
-/* { dg-bogus "Expected built-in is not defined" "" { target *-*-* } 70 } */
+/* { dg-bogus "Expected built-in is not defined" "" { target *-*-* } .-1 } */
#endif
#define __LINE__ 0 /* { dg-warning "\"__LINE__\" redef" } */
diff --git a/gcc/testsuite/gcc.dg/c11-noreturn-1.c b/gcc/testsuite/gcc.dg/c11-noreturn-1.c
index e92c5ae0456..1b0c218b08b 100644
--- a/gcc/testsuite/gcc.dg/c11-noreturn-1.c
+++ b/gcc/testsuite/gcc.dg/c11-noreturn-1.c
@@ -18,14 +18,14 @@ _Noreturn int
f4 (void)
{
return 1; /* { dg-warning "has a 'return' statement" } */
- /* { dg-warning "does return" "second warning" { target *-*-* } 20 } */
+ /* { dg-warning "does return" "second warning" { target *-*-* } .-1 } */
}
_Noreturn void
f5 (void)
{
return; /* { dg-warning "has a 'return' statement" } */
- /* { dg-warning "does return" "second warning" { target *-*-* } 27 } */
+ /* { dg-warning "does return" "second warning" { target *-*-* } .-1 } */
}
_Noreturn void
diff --git a/gcc/testsuite/gcc.dg/c11-noreturn-2.c b/gcc/testsuite/gcc.dg/c11-noreturn-2.c
index 951d028f7ae..58fafdb2e14 100644
--- a/gcc/testsuite/gcc.dg/c11-noreturn-2.c
+++ b/gcc/testsuite/gcc.dg/c11-noreturn-2.c
@@ -23,14 +23,14 @@ noreturn int
f4 (void)
{
return 1; /* { dg-warning "has a 'return' statement" } */
- /* { dg-warning "does return" "second warning" { target *-*-* } 25 } */
+ /* { dg-warning "does return" "second warning" { target *-*-* } .-1 } */
}
noreturn void
f5 (void)
{
return; /* { dg-warning "has a 'return' statement" } */
- /* { dg-warning "does return" "second warning" { target *-*-* } 32 } */
+ /* { dg-warning "does return" "second warning" { target *-*-* } .-1 } */
}
noreturn void
diff --git a/gcc/testsuite/gcc.dg/c11-static-assert-3.c b/gcc/testsuite/gcc.dg/c11-static-assert-3.c
index 79448a533e5..9799b972e0c 100644
--- a/gcc/testsuite/gcc.dg/c11-static-assert-3.c
+++ b/gcc/testsuite/gcc.dg/c11-static-assert-3.c
@@ -3,7 +3,7 @@
/* { dg-options "-std=c11 -pedantic-errors" } */
_Static_assert (__INT_MAX__ * 2, "overflow"); /* { dg-warning "integer overflow in expression" } */
-/* { dg-error "overflow in constant expression" "error" { target *-*-* } 5 } */
+/* { dg-error "overflow in constant expression" "error" { target *-*-* } .-1 } */
_Static_assert ((void *)(__SIZE_TYPE__)16, "non-integer"); /* { dg-error "not an integer" } */
diff --git a/gcc/testsuite/gcc.dg/c90-arraydecl-1.c b/gcc/testsuite/gcc.dg/c90-arraydecl-1.c
index 2b7eadbf615..358abbfe252 100644
--- a/gcc/testsuite/gcc.dg/c90-arraydecl-1.c
+++ b/gcc/testsuite/gcc.dg/c90-arraydecl-1.c
@@ -16,15 +16,15 @@ void foo1 (int, int [*]); /* { dg-error "ISO C90" "\[*\] not in C90" } */
is a C99 feature. */
void bar0 (int a[const]); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "ISO C90" "\[quals\] not in C90" { target *-*-* } 18 } */
+/* { dg-error "ISO C90" "\[quals\] not in C90" { target *-*-* } .-1 } */
void bar1 (int a[const 2]); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "ISO C90" "\[quals expr\] not in C90" { target *-*-* } 20 } */
+/* { dg-error "ISO C90" "\[quals expr\] not in C90" { target *-*-* } .-1 } */
void bar2 (int a[static 2]); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "ISO C90" "\[static expr\] not in C90" { target *-*-* } 22 } */
+/* { dg-error "ISO C90" "\[static expr\] not in C90" { target *-*-* } .-1 } */
void bar3 (int a[static const 2]); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "ISO C90" "\[static quals expr\] not in C90" { target *-*-* } 24 } */
+/* { dg-error "ISO C90" "\[static quals expr\] not in C90" { target *-*-* } .-1 } */
void bar4 (int a[const static 2]); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "ISO C90" "\[quals static expr\] not in C90" { target *-*-* } 26 } */
+/* { dg-error "ISO C90" "\[quals static expr\] not in C90" { target *-*-* } .-1 } */
/* Because [*] isn't properly implemented and so warns, we don't test here
for [const *] yet. */
diff --git a/gcc/testsuite/gcc.dg/c90-complex-1.c b/gcc/testsuite/gcc.dg/c90-complex-1.c
index b65fc6873e9..43648955d41 100644
--- a/gcc/testsuite/gcc.dg/c90-complex-1.c
+++ b/gcc/testsuite/gcc.dg/c90-complex-1.c
@@ -4,4 +4,4 @@
/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
_Complex double foo; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "C" "_Complex not in C90" { target *-*-* } 6 } */
+/* { dg-error "C" "_Complex not in C90" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c90-complit-1.c b/gcc/testsuite/gcc.dg/c90-complit-1.c
index 4cd910fa866..824288f34b9 100644
--- a/gcc/testsuite/gcc.dg/c90-complit-1.c
+++ b/gcc/testsuite/gcc.dg/c90-complit-1.c
@@ -10,11 +10,11 @@ void
foo (void)
{
(int) { 1 }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "compound literal" "scalar" { target *-*-* } 12 } */
+ /* { dg-error "compound literal" "scalar" { target *-*-* } .-1 } */
(struct s) { 1, 2 }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "compound literal" "struct" { target *-*-* } 14 } */
+ /* { dg-error "compound literal" "struct" { target *-*-* } .-1 } */
(union u) { 1 }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "compound literal" "union" { target *-*-* } 16 } */
+ /* { dg-error "compound literal" "union" { target *-*-* } .-1 } */
(int [1]) { 1 }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "compound literal" "array" { target *-*-* } 18 } */
+ /* { dg-error "compound literal" "array" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/c90-const-expr-11.c b/gcc/testsuite/gcc.dg/c90-const-expr-11.c
index cfda93e12a4..5cd704a8d73 100644
--- a/gcc/testsuite/gcc.dg/c90-const-expr-11.c
+++ b/gcc/testsuite/gcc.dg/c90-const-expr-11.c
@@ -19,9 +19,9 @@ f (void)
struct s a = { atan (1.0) }; /* { dg-error "is not a constant expression|near initialization" } */
/* Overflow. */
struct t b = { INT_MAX + 1 }; /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 21 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
struct t c = { DBL_MAX }; /* { dg-warning "overflow in implicit constant conversion" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 23 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
/* Bad operator outside sizeof. */
struct s d = { 1 ? 1.0 : atan (a.d) }; /* { dg-error "is not a constant expression|near initialization" } */
}
diff --git a/gcc/testsuite/gcc.dg/c90-const-expr-7.c b/gcc/testsuite/gcc.dg/c90-const-expr-7.c
index 30aeba06a7c..7a9120506be 100644
--- a/gcc/testsuite/gcc.dg/c90-const-expr-7.c
+++ b/gcc/testsuite/gcc.dg/c90-const-expr-7.c
@@ -7,20 +7,20 @@
#include <float.h>
int a = DBL_MAX; /* { dg-warning "overflow in implicit constant conversion" } */
-/* { dg-error "overflow in constant expression" "constant" { target *-*-* } 9 } */
+/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
int b = (int) DBL_MAX; /* { dg-error "overflow" "" } */
unsigned int c = -1.0; /* { dg-warning "overflow in implicit constant conversion" } */
-/* { dg-error "overflow in constant expression" "constant" { target *-*-* } 12 } */
+/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
unsigned int d = (unsigned)-1.0; /* { dg-error "overflow" } */
int e = 0 << 1000; /* { dg-warning "shift count" } */
-/* { dg-error "constant" "constant" { target *-*-* } 16 } */
+/* { dg-error "constant" "constant" { target *-*-* } .-1 } */
int f = 0 << -1; /* { dg-warning "shift count" } */
-/* { dg-error "constant" "constant" { target *-*-* } 18 } */
+/* { dg-error "constant" "constant" { target *-*-* } .-1 } */
int g = 0 >> 1000; /* { dg-warning "shift count" } */
-/* { dg-error "constant" "constant" { target *-*-* } 20 } */
+/* { dg-error "constant" "constant" { target *-*-* } .-1 } */
int h = 0 >> -1; /* { dg-warning "shift count" } */
-/* { dg-error "constant" "constant" { target *-*-* } 22 } */
+/* { dg-error "constant" "constant" { target *-*-* } .-1 } */
int b1 = (0 ? (int) DBL_MAX : 0);
unsigned int d1 = (0 ? (unsigned int)-1.0 : 0);
@@ -32,4 +32,4 @@ int h1 = (0 ? 0 >> -1: 0);
int i = -1 << 0;
int j[1] = { DBL_MAX }; /* { dg-warning "overflow in implicit constant conversion" } */
-/* { dg-error "overflow in constant expression" "constant" { target *-*-* } 34 } */
+/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c90-const-expr-8.c b/gcc/testsuite/gcc.dg/c90-const-expr-8.c
index b6aba7b1d87..c9e41541f2b 100644
--- a/gcc/testsuite/gcc.dg/c90-const-expr-8.c
+++ b/gcc/testsuite/gcc.dg/c90-const-expr-8.c
@@ -10,19 +10,19 @@
enum e {
E0 = 0 * (INT_MAX + 1), /* { dg-warning "21:integer overflow in expression" } */
- /* { dg-error "3:overflow in constant expression" "constant" { target *-*-* } 12 } */
+ /* { dg-error "3:overflow in constant expression" "constant" { target *-*-* } .-1 } */
E1 = 0 * (INT_MIN / -1), /* { dg-warning "21:integer overflow in expression" } */
- /* { dg-error "3:overflow in constant expression" "constant" { target *-*-* } 14 } */
+ /* { dg-error "3:overflow in constant expression" "constant" { target *-*-* } .-1 } */
E2 = 0 * (INT_MAX * INT_MAX), /* { dg-warning "21:integer overflow in expression" } */
- /* { dg-error "3:overflow in constant expression" "constant" { target *-*-* } 16 } */
+ /* { dg-error "3:overflow in constant expression" "constant" { target *-*-* } .-1 } */
E3 = 0 * (INT_MIN - 1), /* { dg-warning "21:integer overflow in expression" } */
- /* { dg-error "3:overflow in constant expression" "constant" { target *-*-* } 18 } */
+ /* { dg-error "3:overflow in constant expression" "constant" { target *-*-* } .-1 } */
E4 = 0 * (unsigned)(INT_MIN - 1), /* { dg-warning "31:integer overflow in expression" } */
- /* { dg-error "3:overflow in constant expression" "constant" { target *-*-* } 20 } */
+ /* { dg-error "3:overflow in constant expression" "constant" { target *-*-* } .-1 } */
E5 = 0 * -INT_MIN, /* { dg-warning "12:integer overflow in expression" } */
- /* { dg-error "3:overflow in constant expression" "constant" { target *-*-* } 22 } */
+ /* { dg-error "3:overflow in constant expression" "constant" { target *-*-* } .-1 } */
E6 = 0 * !-INT_MIN, /* { dg-warning "13:integer overflow in expression" } */
- /* { dg-error "8:not an integer constant" "constant" { target *-*-* } 24 } */
+ /* { dg-error "8:not an integer constant" "constant" { target *-*-* } .-1 } */
E7 = INT_MIN % -1 /* { dg-warning "16:integer overflow in expression" } */
- /* { dg-error "1:overflow in constant expression" "constant" { target *-*-* } 28 } */
+ /* { dg-error "1:overflow in constant expression" "constant" { target *-*-* } .+1 } */
};
diff --git a/gcc/testsuite/gcc.dg/c90-enum-comma-1.c b/gcc/testsuite/gcc.dg/c90-enum-comma-1.c
index 2029c92f593..d8143c0094f 100644
--- a/gcc/testsuite/gcc.dg/c90-enum-comma-1.c
+++ b/gcc/testsuite/gcc.dg/c90-enum-comma-1.c
@@ -4,4 +4,4 @@
/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
enum foo { bar, }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "comma at end" "enum comma error" { target *-*-* } 6 } */
+/* { dg-error "comma at end" "enum comma error" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c90-flex-array-1.c b/gcc/testsuite/gcc.dg/c90-flex-array-1.c
index 1eead199e12..871fdfcdf44 100644
--- a/gcc/testsuite/gcc.dg/c90-flex-array-1.c
+++ b/gcc/testsuite/gcc.dg/c90-flex-array-1.c
@@ -4,4 +4,4 @@
/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
struct flex { int a; int b[]; }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "ISO C90" "flexible array members not in C90" { target *-*-* } 6 } */
+/* { dg-error "ISO C90" "flexible array members not in C90" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c90-hexfloat-1.c b/gcc/testsuite/gcc.dg/c90-hexfloat-1.c
index 2dd90a1e681..b67b1b7dff6 100644
--- a/gcc/testsuite/gcc.dg/c90-hexfloat-1.c
+++ b/gcc/testsuite/gcc.dg/c90-hexfloat-1.c
@@ -4,8 +4,8 @@
/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
double d = 0x1.2p2; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "hexadecimal floating" "hex float error" { target *-*-* } 6 } */
+/* { dg-error "hexadecimal floating" "hex float error" { target *-*-* } .-1 } */
double d1 = 0x1p2; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "hexadecimal floating" "hex float error" { target *-*-* } 8 } */
+/* { dg-error "hexadecimal floating" "hex float error" { target *-*-* } .-1 } */
double d2 = 0x1...p2; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "too many decimal points" "bad hex float" { target *-*-* } 10 } */
+/* { dg-error "too many decimal points" "bad hex float" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c90-idem-qual-1.c b/gcc/testsuite/gcc.dg/c90-idem-qual-1.c
index ee05a82f558..bc0068e8a2a 100644
--- a/gcc/testsuite/gcc.dg/c90-idem-qual-1.c
+++ b/gcc/testsuite/gcc.dg/c90-idem-qual-1.c
@@ -5,4 +5,4 @@
typedef const int cint;
const cint foo; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "duplicate" "duplicate type qualifier error" { target *-*-* } 7 } */
+/* { dg-error "duplicate" "duplicate type qualifier error" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c90-idem-qual-2.c b/gcc/testsuite/gcc.dg/c90-idem-qual-2.c
index c9bb6f7e252..ab7324962e9 100644
--- a/gcc/testsuite/gcc.dg/c90-idem-qual-2.c
+++ b/gcc/testsuite/gcc.dg/c90-idem-qual-2.c
@@ -4,4 +4,4 @@
/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
const const int foo; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "duplicate" "duplicate type qualifier error" { target *-*-* } 6 } */
+/* { dg-error "duplicate" "duplicate type qualifier error" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c90-idem-qual-3.c b/gcc/testsuite/gcc.dg/c90-idem-qual-3.c
index 9976a0888fb..db7e9a2d258 100644
--- a/gcc/testsuite/gcc.dg/c90-idem-qual-3.c
+++ b/gcc/testsuite/gcc.dg/c90-idem-qual-3.c
@@ -6,6 +6,6 @@
typedef const int cia[2];
const cia a; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "duplicate" "duplicate type qualifier error" { target *-*-* } 8 } */
+/* { dg-error "duplicate" "duplicate type qualifier error" { target *-*-* } .-1 } */
const cia b[2]; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "duplicate" "duplicate type qualifier error" { target *-*-* } 10 } */
+/* { dg-error "duplicate" "duplicate type qualifier error" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c90-mixdecl-1.c b/gcc/testsuite/gcc.dg/c90-mixdecl-1.c
index b07ab267485..4e8b19264dd 100644
--- a/gcc/testsuite/gcc.dg/c90-mixdecl-1.c
+++ b/gcc/testsuite/gcc.dg/c90-mixdecl-1.c
@@ -9,5 +9,5 @@ foo (void)
int i;
i = 0;
int j; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "mix|parse" "mixed declarations and code not in C90" { target *-*-* } 11 } */
+ /* { dg-error "mix|parse" "mixed declarations and code not in C90" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/c90-restrict-1.c b/gcc/testsuite/gcc.dg/c90-restrict-1.c
index 4820831513b..2afd786777c 100644
--- a/gcc/testsuite/gcc.dg/c90-restrict-1.c
+++ b/gcc/testsuite/gcc.dg/c90-restrict-1.c
@@ -4,4 +4,4 @@
/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
char *restrict foo; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "parse error|syntax error|expected|no type" "restrict not in C90" { target *-*-* } 6 } */
+/* { dg-error "parse error|syntax error|expected|no type" "restrict not in C90" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c90-return-1.c b/gcc/testsuite/gcc.dg/c90-return-1.c
index 59e9a920b83..96a3876a6f2 100644
--- a/gcc/testsuite/gcc.dg/c90-return-1.c
+++ b/gcc/testsuite/gcc.dg/c90-return-1.c
@@ -13,5 +13,5 @@ void
bar (void)
{
return 1; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "with a value" "return constraint violation" { target *-*-* } 15 } */
+ /* { dg-error "with a value" "return constraint violation" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/c99-array-nonobj-1.c b/gcc/testsuite/gcc.dg/c99-array-nonobj-1.c
index 45fc74c4c44..d4566b70105 100644
--- a/gcc/testsuite/gcc.dg/c99-array-nonobj-1.c
+++ b/gcc/testsuite/gcc.dg/c99-array-nonobj-1.c
@@ -9,19 +9,19 @@ typedef void func (void);
struct s;
extern int a[][]; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "array" "\[\]\[\] var" { target *-*-* } 11 } */
+/* { dg-error "array" "\[\]\[\] var" { target *-*-* } .-1 } */
void f (int [][]); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "array" "\[\]\[\] arg" { target *-*-* } 14 } */
+/* { dg-error "array" "\[\]\[\] arg" { target *-*-* } .-1 } */
extern struct s b[]; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "array" "struct \[\] var" { target *-*-* } 17 } */
+/* { dg-error "array" "struct \[\] var" { target *-*-* } .-1 } */
void g (struct s []); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "array" "struct \[\] arg" { target *-*-* } 20 } */
+/* { dg-error "array" "struct \[\] arg" { target *-*-* } .-1 } */
extern func c[]; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "array" "func \[\] var" { target *-*-* } 23 } */
+/* { dg-error "array" "func \[\] var" { target *-*-* } .-1 } */
void h (func []); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "array" "func \[\] arg" { target *-*-* } 26 } */
+/* { dg-error "array" "func \[\] arg" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c99-arraydecl-1.c b/gcc/testsuite/gcc.dg/c99-arraydecl-1.c
index 2036d82fbd9..05bda39885e 100644
--- a/gcc/testsuite/gcc.dg/c99-arraydecl-1.c
+++ b/gcc/testsuite/gcc.dg/c99-arraydecl-1.c
@@ -15,7 +15,7 @@ void
f02 (int a[const])
{
int **b = &a; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "discards" "discards quals" { target *-*-* } 17 } */
+ /* { dg-error "discards" "discards quals" { target *-*-* } .-1 } */
int *const *c = &a;
}
void
@@ -23,7 +23,7 @@ f03 (a)
int a[const];
{
int **b = &a; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "discards" "discards quals" { target *-*-* } 25 } */
+ /* { dg-error "discards" "discards quals" { target *-*-* } .-1 } */
int *const *c = &a;
}
@@ -34,7 +34,7 @@ void
f12 (int a[const 2])
{
int **b = &a; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "discards" "discards quals" { target *-*-* } 36 } */
+ /* { dg-error "discards" "discards quals" { target *-*-* } .-1 } */
int *const *c = &a;
}
void
@@ -42,7 +42,7 @@ f13 (a)
int a[const 2];
{
int **b = &a; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "discards" "discards quals" { target *-*-* } 44 } */
+ /* { dg-error "discards" "discards quals" { target *-*-* } .-1 } */
int *const *c = &a;
}
@@ -70,7 +70,7 @@ void
f32 (int a[static const 2])
{
int **b = &a; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "discards" "discards quals" { target *-*-* } 72 } */
+ /* { dg-error "discards" "discards quals" { target *-*-* } .-1 } */
int *const *c = &a;
}
void
@@ -78,7 +78,7 @@ f33 (a)
int a[static const 2];
{
int **b = &a; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "discards" "discards quals" { target *-*-* } 80 } */
+ /* { dg-error "discards" "discards quals" { target *-*-* } .-1 } */
int *const *c = &a;
}
@@ -89,7 +89,7 @@ void
f42 (int a[const static 2])
{
int **b = &a; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "discards" "discards quals" { target *-*-* } 91 } */
+ /* { dg-error "discards" "discards quals" { target *-*-* } .-1 } */
int *const *c = &a;
}
void
@@ -97,15 +97,15 @@ f43 (a)
int a[const static 2];
{
int **b = &a; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "discards" "discards quals" { target *-*-* } 99 } */
+ /* { dg-error "discards" "discards quals" { target *-*-* } .-1 } */
int *const *c = &a;
}
/* Test rejection of static and type qualifiers in non-parameter contexts. */
int x[const 2]; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "non-parameter" "quals in non-parm array" { target *-*-* } 105 } */
+/* { dg-error "non-parameter" "quals in non-parm array" { target *-*-* } .-1 } */
int y[static 2]; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "non-parameter" "static in non-parm array" { target *-*-* } 107 } */
+/* { dg-error "non-parameter" "static in non-parm array" { target *-*-* } .-1 } */
void g (int a[static 2][3]);
void h (int a[2][static 3]); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "non-parameter" "static in non-final parm array" { target *-*-* } 110 } */
+/* { dg-error "non-parameter" "static in non-final parm array" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c99-complex-1.c b/gcc/testsuite/gcc.dg/c99-complex-1.c
index 2e1ba7df539..f41eba5beb5 100644
--- a/gcc/testsuite/gcc.dg/c99-complex-1.c
+++ b/gcc/testsuite/gcc.dg/c99-complex-1.c
@@ -14,13 +14,13 @@ _Complex long double f;
/* Plain `_Complex' for complex double is a GNU extension. */
_Complex g; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "plain" "plain _Complex" { target *-*-* } 16 } */
+/* { dg-error "plain" "plain _Complex" { target *-*-* } .-1 } */
/* Complex integer types are GNU extensions. */
_Complex int h; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "complex integer" "_Complex int" { target *-*-* } 20 } */
+/* { dg-error "complex integer" "_Complex int" { target *-*-* } .-1 } */
_Complex long i; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "complex integer" "_Complex long" { target *-*-* } 22 } */
+/* { dg-error "complex integer" "_Complex long" { target *-*-* } .-1 } */
/* Use of ~ for complex conjugation is a GNU extension, but a constraint
violation (6.5.3.3p1) in C99.
@@ -29,5 +29,5 @@ _Complex double
foo (_Complex double z)
{
return ~z; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "complex conj" "~ for conjugation" { target *-*-* } 31 } */
+ /* { dg-error "complex conj" "~ for conjugation" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/c99-complex-2.c b/gcc/testsuite/gcc.dg/c99-complex-2.c
index 078e92ae909..fa68a968407 100644
--- a/gcc/testsuite/gcc.dg/c99-complex-2.c
+++ b/gcc/testsuite/gcc.dg/c99-complex-2.c
@@ -11,12 +11,12 @@ _Complex double
foo (_Complex double z)
{
z++; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "complex" "postinc" { target *-*-* } 13 } */
+ /* { dg-error "complex" "postinc" { target *-*-* } .-1 } */
++z; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "complex" "preinc" { target *-*-* } 15 } */
+ /* { dg-error "complex" "preinc" { target *-*-* } .-1 } */
z--; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "complex" "postdec" { target *-*-* } 17 } */
+ /* { dg-error "complex" "postdec" { target *-*-* } .-1 } */
--z; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "complex" "predec" { target *-*-* } 19 } */
+ /* { dg-error "complex" "predec" { target *-*-* } .-1 } */
return z;
}
diff --git a/gcc/testsuite/gcc.dg/c99-complit-2.c b/gcc/testsuite/gcc.dg/c99-complit-2.c
index 1285e7e0d2b..8120ce8d988 100644
--- a/gcc/testsuite/gcc.dg/c99-complit-2.c
+++ b/gcc/testsuite/gcc.dg/c99-complit-2.c
@@ -15,50 +15,50 @@ foo (int a)
/* The type name must not be incomplete (apart from arrays of unknown
size), or a function type, or a VLA type. */
(void) { 1 }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "init" "void type" { target *-*-* } 17 } */
+ /* { dg-error "init" "void type" { target *-*-* } .-1 } */
&(struct si) { 1 }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "init" "incomplete struct type" { target *-*-* } 19 } */
- /* { dg-error "invalid use of undefined type" "" { target *-*-* } 19 } */
+ /* { dg-error "init" "incomplete struct type" { target *-*-* } .-1 } */
+ /* { dg-error "invalid use of undefined type" "" { target *-*-* } .-2 } */
&(union ui) { 1 }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "init" "incomplete union type" { target *-*-* } 22 } */
- /* { dg-error "invalid use of undefined type" "" { target *-*-* } 22 } */
+ /* { dg-error "init" "incomplete union type" { target *-*-* } .-1 } */
+ /* { dg-error "invalid use of undefined type" "" { target *-*-* } .-2 } */
(void (void)) { 0 }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "init" "function type" { target *-*-* } 25 } */
+ /* { dg-error "init" "function type" { target *-*-* } .-1 } */
(int [a]) { 1 }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "init|variable" "VLA type" { target *-*-* } 27 } */
+ /* { dg-error "init|variable" "VLA type" { target *-*-* } .-1 } */
/* Initializers must not attempt to initialize outside the object
declared. */
(int [1]) { [1] = 2 }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "init" "value outside array" { target *-*-* } 31 } */
+ /* { dg-error "init" "value outside array" { target *-*-* } .-1 } */
(int [1]) { [-1] = 2 }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "init" "value outside array" { target *-*-* } 33 } */
+ /* { dg-error "init" "value outside array" { target *-*-* } .-1 } */
(int [1]) { 0, 1 }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "init" "value outside array" { target *-*-* } 35 } */
+ /* { dg-error "init" "value outside array" { target *-*-* } .-1 } */
}
int z;
/* Outside a function, initializers must be constant. */
struct s *s0 = &(struct s) { 0, z }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "init" "non-const" { target *-*-* } 42 } */
+/* { dg-error "init" "non-const" { target *-*-* } .-1 } */
int sz = sizeof((struct s) { 0, z }); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "init" "non-const" { target *-*-* } 44 } */
+/* { dg-error "init" "non-const" { target *-*-* } .-1 } */
/* Compound literals aren't themselves constant expressions. */
int x = (int) { 0 }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "init" "non-const" { target *-*-* } 48 } */
+/* { dg-error "init" "non-const" { target *-*-* } .-1 } */
/* Nor are they suitable structure or union initializers
outside a function. */
struct s s1 = (struct s) { 0, 1 }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "init" "struct bad init" { target *-*-* } 53 } */
+/* { dg-error "init" "struct bad init" { target *-*-* } .-1 } */
union u u1 = (union u) { 0 }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "init" "union bad init" { target *-*-* } 55 } */
+/* { dg-error "init" "union bad init" { target *-*-* } .-1 } */
/* They aren't suitable for array initializers, either inside or outside
a function. */
int y[2] = (int [2]) { 0, 1 }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "init" "array bad init" { target *-*-* } 60 } */
+/* { dg-error "init" "array bad init" { target *-*-* } .-1 } */
void
bar (void)
@@ -66,5 +66,5 @@ bar (void)
struct s s2 = (struct s) { 0, 1 };
union u u2 = (union u) { 0 };
int z[2] = (int [2]) { 0, 1 }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "init" "array bad init" { target *-*-* } 68 } */
+ /* { dg-error "init" "array bad init" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/c99-const-expr-7.c b/gcc/testsuite/gcc.dg/c99-const-expr-7.c
index 75b05677ce1..9be138df809 100644
--- a/gcc/testsuite/gcc.dg/c99-const-expr-7.c
+++ b/gcc/testsuite/gcc.dg/c99-const-expr-7.c
@@ -8,20 +8,20 @@
#include <limits.h>
int a = DBL_MAX; /* { dg-warning "overflow in implicit constant conversion" } */
-/* { dg-error "overflow in constant expression" "constant" { target *-*-* } 10 } */
+/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
int b = (int) DBL_MAX; /* { dg-error "overflow" "" } */
unsigned int c = -1.0; /* { dg-warning "overflow in implicit constant conversion" } */
-/* { dg-error "overflow in constant expression" "constant" { target *-*-* } 13 } */
+/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
unsigned int d = (unsigned)-1.0; /* { dg-error "overflow" } */
int e = 0 << 1000; /* { dg-warning "shift count" } */
-/* { dg-error "constant" "constant" { target *-*-* } 17 } */
+/* { dg-error "constant" "constant" { target *-*-* } .-1 } */
int f = 0 << -1; /* { dg-warning "shift count" } */
-/* { dg-error "constant" "constant" { target *-*-* } 19 } */
+/* { dg-error "constant" "constant" { target *-*-* } .-1 } */
int g = 0 >> 1000; /* { dg-warning "shift count" } */
-/* { dg-error "constant" "constant" { target *-*-* } 21 } */
+/* { dg-error "constant" "constant" { target *-*-* } .-1 } */
int h = 0 >> -1; /* { dg-warning "shift count" } */
-/* { dg-error "constant" "constant" { target *-*-* } 23 } */
+/* { dg-error "constant" "constant" { target *-*-* } .-1 } */
int b1 = (0 ? (int) DBL_MAX : 0);
unsigned int d1 = (0 ? (unsigned int)-1.0 : 0);
@@ -31,13 +31,13 @@ int g1 = (0 ? 0 >> 1000 : 0);
int h1 = (0 ? 0 >> -1: 0);
int i = -1 << 0;
-/* { dg-error "constant" "constant" { target *-*-* } 33 } */
+/* { dg-error "constant" "constant" { target *-*-* } .-1 } */
int j[1] = { DBL_MAX }; /* { dg-warning "overflow in implicit constant conversion" } */
-/* { dg-error "overflow in constant expression" "constant" { target *-*-* } 36 } */
+/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
int array[2] = { [0 * (INT_MAX + 1)] = 0 }; /* { dg-warning "integer overflow in expression" } */
-/* { dg-error "overflow in constant expression" "constant" { target *-*-* } 39 } */
+/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
_Bool k = INT_MAX + 1; /* { dg-warning "integer overflow in expression" } */
-/* { dg-error "overflow in constant expression" "constant" { target *-*-* } 42 } */
+/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c99-const-expr-8.c b/gcc/testsuite/gcc.dg/c99-const-expr-8.c
index 1ddd9ed91ce..bce78f6ce65 100644
--- a/gcc/testsuite/gcc.dg/c99-const-expr-8.c
+++ b/gcc/testsuite/gcc.dg/c99-const-expr-8.c
@@ -10,19 +10,19 @@
enum e {
E0 = 0 * (INT_MAX + 1), /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 12 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
E1 = 0 * (INT_MIN / -1), /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 14 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
E2 = 0 * (INT_MAX * INT_MAX), /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 16 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
E3 = 0 * (INT_MIN - 1), /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 18 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
E4 = 0 * (unsigned)(INT_MIN - 1), /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 20 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
E5 = 0 * -INT_MIN, /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 22 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
E6 = 0 * !-INT_MIN, /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "not an integer constant" "constant" { target *-*-* } 24 } */
+ /* { dg-error "not an integer constant" "constant" { target *-*-* } .-1 } */
E7 = INT_MIN % -1 /* { dg-warning "16:integer overflow in expression" } */
- /* { dg-error "1:overflow in constant expression" "constant" { target *-*-* } 28 } */
+ /* { dg-error "1:overflow in constant expression" "constant" { target *-*-* } .+1 } */
};
diff --git a/gcc/testsuite/gcc.dg/c99-flex-array-3.c b/gcc/testsuite/gcc.dg/c99-flex-array-3.c
index e8647f6ec7b..784dabdeac2 100644
--- a/gcc/testsuite/gcc.dg/c99-flex-array-3.c
+++ b/gcc/testsuite/gcc.dg/c99-flex-array-3.c
@@ -14,34 +14,34 @@ union rf4 { union rf2 a; int b; };
elements of arrays (6.7.2.1#2). */
struct t0 { struct flex a; }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "struct in struct" { target *-*-* } 16 } */
+/* { dg-error "invalid use of structure" "struct in struct" { target *-*-* } .-1 } */
struct t1 { union rf1 a; }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "union in struct" { target *-*-* } 18 } */
+/* { dg-error "invalid use of structure" "union in struct" { target *-*-* } .-1 } */
struct t2 { union rf2 a; }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "union in struct" { target *-*-* } 20 } */
+/* { dg-error "invalid use of structure" "union in struct" { target *-*-* } .-1 } */
struct t3 { union rf3 a; }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "recursive union in struct" { target *-*-* } 22 } */
+/* { dg-error "invalid use of structure" "recursive union in struct" { target *-*-* } .-1 } */
struct t4 { union rf4 a; }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "recursive union in struct" { target *-*-* } 24 } */
+/* { dg-error "invalid use of structure" "recursive union in struct" { target *-*-* } .-1 } */
void f0 (struct flex[]); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "struct in array" { target *-*-* } 27 } */
+/* { dg-error "invalid use of structure" "struct in array" { target *-*-* } .-1 } */
void f1 (union rf1[]); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "union in array" { target *-*-* } 29 } */
+/* { dg-error "invalid use of structure" "union in array" { target *-*-* } .-1 } */
void f2 (union rf2[]); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "union in array" { target *-*-* } 31 } */
+/* { dg-error "invalid use of structure" "union in array" { target *-*-* } .-1 } */
void f3 (union rf3[]); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "recursive union in array" { target *-*-* } 33 } */
+/* { dg-error "invalid use of structure" "recursive union in array" { target *-*-* } .-1 } */
void f4 (union rf4[]); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "recursive union in array" { target *-*-* } 35 } */
+/* { dg-error "invalid use of structure" "recursive union in array" { target *-*-* } .-1 } */
struct flex a0[1]; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "struct in array" { target *-*-* } 38 } */
+/* { dg-error "invalid use of structure" "struct in array" { target *-*-* } .-1 } */
union rf1 a1[1]; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "union in array" { target *-*-* } 40 } */
+/* { dg-error "invalid use of structure" "union in array" { target *-*-* } .-1 } */
union rf2 a2[1]; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "union in array" { target *-*-* } 42 } */
+/* { dg-error "invalid use of structure" "union in array" { target *-*-* } .-1 } */
union rf3 a3[1]; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "recursive union in array" { target *-*-* } 44 } */
+/* { dg-error "invalid use of structure" "recursive union in array" { target *-*-* } .-1 } */
union rf4 a4[1]; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "invalid use of structure" "recursive union in array" { target *-*-* } 46 } */
+/* { dg-error "invalid use of structure" "recursive union in array" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c99-flex-array-7.c b/gcc/testsuite/gcc.dg/c99-flex-array-7.c
index 88018b03d7f..49bb3e42bd4 100644
--- a/gcc/testsuite/gcc.dg/c99-flex-array-7.c
+++ b/gcc/testsuite/gcc.dg/c99-flex-array-7.c
@@ -6,12 +6,12 @@
struct s { int a; char b[]; };
struct s a = { 0, "" }; /* { dg-error "initialization of a flexible array member" } */
-/* { dg-message "near init" "near init" { target *-*-* } 8 } */
+/* { dg-message "near init" "near init" { target *-*-* } .-1 } */
struct s b = { 0, { 0 } }; /* { dg-error "initialization of a flexible array member" } */
-/* { dg-message "near init" "near init" { target *-*-* } 10 } */
+/* { dg-message "near init" "near init" { target *-*-* } .-1 } */
struct s c = { 0, { } }; /* { dg-error "ISO C forbids empty initializer braces" } */
struct s d = { .b = "" }; /* { dg-error "initialization of a flexible array member" } */
-/* { dg-message "near init" "near init" { target *-*-* } 13 } */
+/* { dg-message "near init" "near init" { target *-*-* } .-1 } */
struct s e = { .b = { 0 } }; /* { dg-error "initialization of a flexible array member" } */
-/* { dg-message "near init" "near init" { target *-*-* } 15 } */
+/* { dg-message "near init" "near init" { target *-*-* } .-1 } */
struct s f = { .b = { } }; /* { dg-error "ISO C forbids empty initializer braces" } */
diff --git a/gcc/testsuite/gcc.dg/c99-flex-array-typedef-7.c b/gcc/testsuite/gcc.dg/c99-flex-array-typedef-7.c
index 8b954db4e0c..f1505d4dcba 100644
--- a/gcc/testsuite/gcc.dg/c99-flex-array-typedef-7.c
+++ b/gcc/testsuite/gcc.dg/c99-flex-array-typedef-7.c
@@ -7,12 +7,12 @@ typedef char T[];
struct s { int a; T b; };
struct s a = { 0, "" }; /* { dg-error "initialization of a flexible array member" } */
-/* { dg-message "near init" "near init" { target *-*-* } 9 } */
+/* { dg-message "near init" "near init" { target *-*-* } .-1 } */
struct s b = { 0, { 0 } }; /* { dg-error "initialization of a flexible array member" } */
-/* { dg-message "near init" "near init" { target *-*-* } 11 } */
+/* { dg-message "near init" "near init" { target *-*-* } .-1 } */
struct s c = { 0, { } }; /* { dg-error "ISO C forbids empty initializer braces" } */
struct s d = { .b = "" }; /* { dg-error "initialization of a flexible array member" } */
-/* { dg-message "near init" "near init" { target *-*-* } 14 } */
+/* { dg-message "near init" "near init" { target *-*-* } .-1 } */
struct s e = { .b = { 0 } }; /* { dg-error "initialization of a flexible array member" } */
-/* { dg-message "near init" "near init" { target *-*-* } 16 } */
+/* { dg-message "near init" "near init" { target *-*-* } .-1 } */
struct s f = { .b = { } }; /* { dg-error "ISO C forbids empty initializer braces" } */
diff --git a/gcc/testsuite/gcc.dg/c99-impl-decl-1.c b/gcc/testsuite/gcc.dg/c99-impl-decl-1.c
index 6602bc71dd3..bc4f5fe58fc 100644
--- a/gcc/testsuite/gcc.dg/c99-impl-decl-1.c
+++ b/gcc/testsuite/gcc.dg/c99-impl-decl-1.c
@@ -7,7 +7,7 @@ void
foo (void)
{
bar (); /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "implicit" "C99 implicit declaration error" { target *-*-* } 9 } */
+ /* { dg-error "implicit" "C99 implicit declaration error" { target *-*-* } .-1 } */
}
/* C90 subclause 7.1.7 says we can implicitly declare strcmp; C99 removes
@@ -17,5 +17,5 @@ int
bar (const char *a, const char *b)
{
return strcmp (a, b); /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "implicit" "C99 implicit declaration error" { target *-*-* } 19 } */
+ /* { dg-error "implicit" "C99 implicit declaration error" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/c99-impl-int-1.c b/gcc/testsuite/gcc.dg/c99-impl-int-1.c
index dcc25203ae8..0423735c110 100644
--- a/gcc/testsuite/gcc.dg/c99-impl-int-1.c
+++ b/gcc/testsuite/gcc.dg/c99-impl-int-1.c
@@ -4,6 +4,6 @@
/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
extern foo; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "type defaults" "C99 implicit int error" { target *-*-* } 6 } */
+/* { dg-error "type defaults" "C99 implicit int error" { target *-*-* } .-1 } */
bar (void) { } /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "return type defaults" "C99 implicit int error" { target *-*-* } 8 } */
+/* { dg-error "return type defaults" "C99 implicit int error" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c99-impl-int-2.c b/gcc/testsuite/gcc.dg/c99-impl-int-2.c
index e9e974767d4..ed3eb4bf369 100644
--- a/gcc/testsuite/gcc.dg/c99-impl-int-2.c
+++ b/gcc/testsuite/gcc.dg/c99-impl-int-2.c
@@ -6,4 +6,4 @@
/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
void foo (a) { } /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "defaults" "C99 implicit int parameter error" { target *-*-* } 8 } */
+/* { dg-error "defaults" "C99 implicit int parameter error" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c99-init-3.c b/gcc/testsuite/gcc.dg/c99-init-3.c
index 9aca19acc0b..8bc6d2c10e8 100644
--- a/gcc/testsuite/gcc.dg/c99-init-3.c
+++ b/gcc/testsuite/gcc.dg/c99-init-3.c
@@ -5,4 +5,4 @@
/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
int a[] = { [(void *)0] = 1 }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "integer type|near init" "pointer designator" { target *-*-* } 7 } */
+/* { dg-error "integer type|near init" "pointer designator" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c99-restrict-1.c b/gcc/testsuite/gcc.dg/c99-restrict-1.c
index 30ddd96bdcc..a93b3e1de6d 100644
--- a/gcc/testsuite/gcc.dg/c99-restrict-1.c
+++ b/gcc/testsuite/gcc.dg/c99-restrict-1.c
@@ -8,12 +8,12 @@ char *restrict foo;
/* The following are constraint violations and should be rejected. */
int restrict bar; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "restrict" "restrict constraint violation" { target *-*-* } 10 } */
+/* { dg-error "restrict" "restrict constraint violation" { target *-*-* } .-1 } */
typedef void (*fp) (void);
fp restrict baz; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "restrict" "restrict constraint violation" { target *-*-* } 15 } */
+/* { dg-error "restrict" "restrict constraint violation" { target *-*-* } .-1 } */
void quux (int restrict a[3]); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "restrict" "restrict constraint violation" { target *-*-* } 18 } */
+/* { dg-error "restrict" "restrict constraint violation" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/c99-return-1.c b/gcc/testsuite/gcc.dg/c99-return-1.c
index 017cf89a505..97ce3ad8844 100644
--- a/gcc/testsuite/gcc.dg/c99-return-1.c
+++ b/gcc/testsuite/gcc.dg/c99-return-1.c
@@ -7,12 +7,12 @@ int
foo (void)
{
return; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "with no value" "return constraint violation" { target *-*-* } 9 } */
+ /* { dg-error "with no value" "return constraint violation" { target *-*-* } .-1 } */
}
void
bar (void)
{
return 1; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "with a value" "return constraint violation" { target *-*-* } 16 } */
+ /* { dg-error "with a value" "return constraint violation" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/c99-tag-1.c b/gcc/testsuite/gcc.dg/c99-tag-1.c
index dd525317d03..d7011d2cbec 100644
--- a/gcc/testsuite/gcc.dg/c99-tag-1.c
+++ b/gcc/testsuite/gcc.dg/c99-tag-1.c
@@ -14,12 +14,12 @@ foo (void)
union u0;
union u1 *x1;
enum e0; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "forward" "enum forward 1" { target *-*-* } 16 } */
+ /* { dg-error "forward" "enum forward 1" { target *-*-* } .-1 } */
enum e1 *x2; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "forward" "enum forward 2" { target *-*-* } 18 } */
+ /* { dg-error "forward" "enum forward 2" { target *-*-* } .-1 } */
/* GCC used to fail to diagnose a use of an enum inside its definition. */
enum e2 { E2A = sizeof (enum e2 *) }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "forward" "enum forward 3" { target *-*-* } 21 } */
+ /* { dg-error "forward" "enum forward 3" { target *-*-* } .-1 } */
}
/* A specific type shall have its content defined at most once. But we
may redeclare the tag in different scopes. */
@@ -32,7 +32,7 @@ foo (void)
union s0 { long l; };
}
struct s0 { int i; }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "rede" "struct redef" { target *-*-* } 34 } */
+ /* { dg-error "rede" "struct redef" { target *-*-* } .-1 } */
union u0 { int i; }; /* { dg-message "note: originally defined here" } */
{
union u0 { long l; };
@@ -41,7 +41,7 @@ foo (void)
struct u0 { long l; };
}
union u0 { int i; }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "rede" "union redef" { target *-*-* } 43 } */
+ /* { dg-error "rede" "union redef" { target *-*-* } .-1 } */
enum e0 { E0A }; /* { dg-message "note: originally defined here" } */
{
enum e0 { E0B };
@@ -50,7 +50,7 @@ foo (void)
struct e0 { long l; };
}
enum e0 { E0B }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "rede" "enum redef" { target *-*-* } 52 } */
+ /* { dg-error "rede" "enum redef" { target *-*-* } .-1 } */
}
/* Structure, union and enumerated types have a single namespace of tags. */
{
@@ -68,21 +68,21 @@ foo (void)
enum e1 { E1A };
/* None of the following are allowed; some were not detected by GCC. */
union s0; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 70 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
union s1 { int i; }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 72 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
union s2; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 74 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
union s3 { int i; }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 76 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
enum u0 { U0A }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 78 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
enum u2 { U2A }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 80 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
struct e0; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 82 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
struct e1 { int i; }; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 84 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
}
/* Explicit shadowing in inner scopes is OK, but references to the tag
that don't explicitly shadow it must (whether in declarations or
@@ -112,24 +112,24 @@ foo (void)
}
{
union s0 *x0; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 114 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
int x1[sizeof (union s1 *)]; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 116 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
struct t;
union s2 *x2;
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 119 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
int x3[sizeof (union s3 *)]; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 121 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
struct u;
enum u0 *y0; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong|forward" "wrong tag type" { target *-*-* } 124 } */
+ /* { dg-error "wrong|forward" "wrong tag type" { target *-*-* } .-1 } */
int y1[sizeof (enum u2 *)]; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong|forward" "wrong tag type" { target *-*-* } 126 } */
+ /* { dg-error "wrong|forward" "wrong tag type" { target *-*-* } .-1 } */
struct v;
struct e0 *z0; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 129 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
int z1[sizeof (struct e1 *)]; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 131 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
struct w;
}
/* When explicitly shadowed to be a tag of a different type, references
@@ -140,12 +140,12 @@ foo (void)
union s0 *x0;
union s1;
struct s1 *x1; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 142 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
union s2;
union s2 *x2;
union s3;
struct s3 *x3; /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "wrong" "wrong tag type" { target *-*-* } 147 } */
+ /* { dg-error "wrong" "wrong tag type" { target *-*-* } .-1 } */
}
}
}
diff --git a/gcc/testsuite/gcc.dg/c99-tag-3.c b/gcc/testsuite/gcc.dg/c99-tag-3.c
index a492037b07a..11a1096fd72 100644
--- a/gcc/testsuite/gcc.dg/c99-tag-3.c
+++ b/gcc/testsuite/gcc.dg/c99-tag-3.c
@@ -40,7 +40,7 @@ void g(void) { const union u2; } /* { dg-error "28:empty declaration with type q
union u3 { float v; };
void h(void) { const struct u3; } /* { dg-error "29:'u3' defined as wrong kind of tag" } */
-/* { dg-error "29:empty declaration with type qualifier does not redeclare tag" "wrong tag empty" { target *-*-* } 42 } */
+/* { dg-error "29:empty declaration with type qualifier does not redeclare tag" "wrong tag empty" { target *-*-* } .-1 } */
/* However, such useless specifiers are OK if the contents of the tag
are being defined, or shadowed in an inner scope with the contents
diff --git a/gcc/testsuite/gcc.dg/call-diag-2.c b/gcc/testsuite/gcc.dg/call-diag-2.c
index b998ea9d760..f7e66ebb36d 100644
--- a/gcc/testsuite/gcc.dg/call-diag-2.c
+++ b/gcc/testsuite/gcc.dg/call-diag-2.c
@@ -10,6 +10,6 @@ void f_v (void);
void g1 (void) { f_cv (); } /* { dg-error "qualified void" } */
void g2 (void) { f_s (); } /* { dg-error "invalid use of undefined type" } */
void g3 (void) { ((const void (*) (void)) f_v) (); } /* { dg-error "qualified void" } */
-/* { dg-warning "function called through a non-compatible type" "cast" { target *-*-* } 12 } */
+/* { dg-warning "function called through a non-compatible type" "cast" { target *-*-* } .-1 } */
void g4 (void) { ((struct s (*) (void)) f_v) (), (void) 0; } /* { dg-error "invalid use of undefined type" } */
-/* { dg-warning "function called through a non-compatible type" "cast" { target *-*-* } 14 } */
+/* { dg-warning "function called through a non-compatible type" "cast" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/cpp/19940712-1.c b/gcc/testsuite/gcc.dg/cpp/19940712-1.c
index a79b2f5484d..7fd9b15f0fc 100644
--- a/gcc/testsuite/gcc.dg/cpp/19940712-1.c
+++ b/gcc/testsuite/gcc.dg/cpp/19940712-1.c
@@ -2,7 +2,7 @@
/* PR 4713 */
/* dg.exp doesn't read the header files for magic comments. */
-/* { dg-error "unterminated comment" "" { target *-*-* } 4 } */
+/* { dg-error "unterminated comment" "" { target *-*-* } .-1 } */
/* { dg-error "unterminated comment" "header error" { target *-*-* } 8 } */
#include "19940712-1.h"
diff --git a/gcc/testsuite/gcc.dg/cpp/19951025-1.c b/gcc/testsuite/gcc.dg/cpp/19951025-1.c
index b817b68c8ae..4266500b8ea 100644
--- a/gcc/testsuite/gcc.dg/cpp/19951025-1.c
+++ b/gcc/testsuite/gcc.dg/cpp/19951025-1.c
@@ -1,4 +1,4 @@
/* { dg-do preprocess } */
-/* { dg-error "include expects" "include" { target *-*-* } 4 } */
-/* { dg-error "newline at end" "newline" { target *-*-* } 4 } */
+/* { dg-error "include expects" "include" { target *-*-* } .+2 } */
+/* { dg-error "newline at end" "newline" { target *-*-* } .+1 } */
#include /\
diff --git a/gcc/testsuite/gcc.dg/cpp/19990413-1.c b/gcc/testsuite/gcc.dg/cpp/19990413-1.c
index 17d8441e8e6..96a3d70046a 100644
--- a/gcc/testsuite/gcc.dg/cpp/19990413-1.c
+++ b/gcc/testsuite/gcc.dg/cpp/19990413-1.c
@@ -9,5 +9,5 @@ func(void)
{
FOO(i
= 4)
- else; /* { dg-error "'else' without a previous 'if'" "error on this line" { target *-*-* } { 12 } } */
+ else; /* { dg-error "'else' without a previous 'if'" "error on this line" { target *-*-* } . } */
}
diff --git a/gcc/testsuite/gcc.dg/cpp/direct2.c b/gcc/testsuite/gcc.dg/cpp/direct2.c
index 1ce40bfb58f..ac86d105162 100644
--- a/gcc/testsuite/gcc.dg/cpp/direct2.c
+++ b/gcc/testsuite/gcc.dg/cpp/direct2.c
@@ -13,11 +13,11 @@
#define HASHINCLUDE #include
HASH include "somerandomfile" /*{ dg-error "stray" "non-include" }*/
-/*{ dg-bogus "No such" "don't execute non-include" { target *-*-* } 15 }*/
-int resync_parser_1; /*{ dg-error "parse|syntax|expected" "" { target *-*-* } 15 }*/
+/*{ dg-bogus "No such" "don't execute non-include" { target *-*-* } .-1 }*/
+int resync_parser_1; /*{ dg-error "parse|syntax|expected" "" { target *-*-* } .-2 }*/
HASHINCLUDE <somerandomfile> /*{ dg-error "stray|expected" "non-include 2" }*/
-/*{ dg-bogus "No such" "don't execute non-include 2" { target *-*-* } 19 }*/
+/*{ dg-bogus "No such" "don't execute non-include 2" { target *-*-* } .-1 }*/
int resync_parser_2;
void g1 ()
@@ -45,4 +45,4 @@ void f ()
#define starslash *##/
slashstar starslash /* { dg-error "parse error|syntax error|expected" "not a comment" } */
-/* { dg-error "does not give" "paste warning(s)" { target *-*-* } 47 } */
+/* { dg-error "does not give" "paste warning(s)" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/cpp/direct2s.c b/gcc/testsuite/gcc.dg/cpp/direct2s.c
index f73e75d57b3..fa3f5ab7a75 100644
--- a/gcc/testsuite/gcc.dg/cpp/direct2s.c
+++ b/gcc/testsuite/gcc.dg/cpp/direct2s.c
@@ -13,8 +13,8 @@
#define HASHINCLUDE #include
HASH include "somerandomfile" /*{ dg-error "stray" "non-include" }*/
-/*{ dg-bogus "No such" "don't execute non-include" { target *-*-* } 15 }*/
-int resync_parser_1; /*{ dg-error "parse|syntax|expected" "" { target *-*-* } 15 }*/
+/*{ dg-bogus "No such" "don't execute non-include" { target *-*-* } .-1 }*/
+int resync_parser_1; /*{ dg-error "parse|syntax|expected" "" { target *-*-* } .-2 }*/
HASHINCLUDE <somerandomfile> /*{ dg-error "stray|expected" "non-include 2" }*/
/*{ dg-bogus "No such" "don't execute non-include 2" { target *-*-* } 18 }*/
diff --git a/gcc/testsuite/gcc.dg/cpp/pr28709.c b/gcc/testsuite/gcc.dg/cpp/pr28709.c
index 25d7cc297c3..f820ed0c567 100644
--- a/gcc/testsuite/gcc.dg/cpp/pr28709.c
+++ b/gcc/testsuite/gcc.dg/cpp/pr28709.c
@@ -6,5 +6,5 @@
#define foo - ## >>
foo;
-/* { dg-error "expected identifier.*'-'" "expected" { target *-*-* } 8 } */
-/* { dg-error pasting "pasting" { target *-*-* } 8 } */
+/* { dg-error "expected identifier.*'-'" "expected" { target *-*-* } .-1 } */
+/* { dg-error pasting "pasting" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/gcc.dg/cpp/pr61854-c90.c b/gcc/testsuite/gcc.dg/cpp/pr61854-c90.c
index 37eecbe23fb..d7a9ba5849d 100644
--- a/gcc/testsuite/gcc.dg/cpp/pr61854-c90.c
+++ b/gcc/testsuite/gcc.dg/cpp/pr61854-c90.c
@@ -6,8 +6,8 @@ void
foo (void)
{
// 1st
- /* { dg-error "C\\+\\+ style comments are not allowed in ISO C90" "comments" { target *-*-*} 8 } */
- /* { dg-error "reported only once" "" { target *-*-*} 8 } */
+ /* { dg-error "C\\+\\+ style comments are not allowed in ISO C90" "comments" { target *-*-*} .-1 } */
+ /* { dg-error "reported only once" "" { target *-*-*} .-2 } */
// 2nd
// 3rd
}
diff --git a/gcc/testsuite/gcc.dg/cpp/pr61854-c94.c b/gcc/testsuite/gcc.dg/cpp/pr61854-c94.c
index 64f1e1845c7..bd5ea6e2389 100644
--- a/gcc/testsuite/gcc.dg/cpp/pr61854-c94.c
+++ b/gcc/testsuite/gcc.dg/cpp/pr61854-c94.c
@@ -6,8 +6,8 @@ void
foo (void)
{
// 1st
- /* { dg-error "C\\+\\+ style comments are not allowed in ISO C90" "comments" { target *-*-*} 8 } */
- /* { dg-error "reported only once" "" { target *-*-*} 8 } */
+ /* { dg-error "C\\+\\+ style comments are not allowed in ISO C90" "comments" { target *-*-*} .-1 } */
+ /* { dg-error "reported only once" "" { target *-*-*} .-2 } */
// 2nd
// 3rd
}
diff --git a/gcc/testsuite/gcc.dg/cpp/pragma-1.c b/gcc/testsuite/gcc.dg/cpp/pragma-1.c
index 7fab02541ae..aa23b83d010 100644
--- a/gcc/testsuite/gcc.dg/cpp/pragma-1.c
+++ b/gcc/testsuite/gcc.dg/cpp/pragma-1.c
@@ -7,7 +7,7 @@ main ()
#pragma unknown
{
error;
- /* { dg-error "undeclared" "undeclared-variable message" { target *-*-* } { 9 } } */
- /* { dg-message "function it appears in" "reminder message" { target *-*-* } { 9 } } */
+ /* { dg-error "undeclared" "undeclared-variable message" { target *-*-* } .-1 } */
+ /* { dg-message "function it appears in" "reminder message" { target *-*-* } .-2 } */
}
}
diff --git a/gcc/testsuite/gcc.dg/cpp/pragma-2.c b/gcc/testsuite/gcc.dg/cpp/pragma-2.c
index 921f4e5eb40..8b39223adbd 100644
--- a/gcc/testsuite/gcc.dg/cpp/pragma-2.c
+++ b/gcc/testsuite/gcc.dg/cpp/pragma-2.c
@@ -11,6 +11,6 @@ int main () {
#pragma unknown
{}
error;
- /* { dg-error "undeclared" "undeclared-variable message" { target *-*-* } { 13 } } */
- /* { dg-message "function it appears in" "reminder message" { target *-*-* } { 13 } } */
+ /* { dg-error "undeclared" "undeclared-variable message" { target *-*-* } .-1 } */
+ /* { dg-message "function it appears in" "reminder message" { target *-*-* } .-2 } */
}
diff --git a/gcc/testsuite/gcc.dg/cpp/trad/escaped-eof.c b/gcc/testsuite/gcc.dg/cpp/trad/escaped-eof.c
index 2c9c185b1d2..a9ed53b165b 100644
--- a/gcc/testsuite/gcc.dg/cpp/trad/escaped-eof.c
+++ b/gcc/testsuite/gcc.dg/cpp/trad/escaped-eof.c
@@ -2,5 +2,5 @@
/* { dg-do preprocess } */
-/* { dg-warning "backslash-new" "escaped EOF warning" { target *-*-* } 6 } */
+/* { dg-warning "backslash-new" "escaped EOF warning" { target *-*-* } .+1 } */
\
diff --git a/gcc/testsuite/gcc.dg/cpp/trad/literals-2.c b/gcc/testsuite/gcc.dg/cpp/trad/literals-2.c
index b471772f648..faa7bd87674 100644
--- a/gcc/testsuite/gcc.dg/cpp/trad/literals-2.c
+++ b/gcc/testsuite/gcc.dg/cpp/trad/literals-2.c
@@ -2,7 +2,7 @@
recognized. */
/* { dg-do preprocess } */
-/* { dg-warning "missing terminating" "bad charconst" { target *-*-* } 7 } */
-/* { dg-error "not valid" "bad charconst" { target *-*-* } 7 } */
+/* { dg-warning "missing terminating" "bad charconst" { target *-*-* } .+2 } */
+/* { dg-error "not valid" "bad charconst" { target *-*-* } .+1 } */
#if 'x
#endif
diff --git a/gcc/testsuite/gcc.dg/cpp/warn-comments-2.c b/gcc/testsuite/gcc.dg/cpp/warn-comments-2.c
index 492b99cb956..3091c9de46d 100644
--- a/gcc/testsuite/gcc.dg/cpp/warn-comments-2.c
+++ b/gcc/testsuite/gcc.dg/cpp/warn-comments-2.c
@@ -4,4 +4,4 @@
/* /* */ // { dg-error "\"\.\*\" within comment .-Werror=comment." }
// \
- // { dg-error "multi-line comment .-Werror=comment." "multi-line" { target *-*-* } 6 }
+ // { dg-error "multi-line comment .-Werror=comment." "multi-line" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/gcc.dg/cpp/warn-comments-3.c b/gcc/testsuite/gcc.dg/cpp/warn-comments-3.c
index 639fa10158c..bba72f0fb10 100644
--- a/gcc/testsuite/gcc.dg/cpp/warn-comments-3.c
+++ b/gcc/testsuite/gcc.dg/cpp/warn-comments-3.c
@@ -4,4 +4,4 @@
/* /* */ // { dg-error "\"\.\*\" within comment .-Werror=comment." }
// \
- // { dg-error "multi-line comment .-Werror=comment." "multi-line" { target *-*-* } 6 }
+ // { dg-error "multi-line comment .-Werror=comment." "multi-line" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/gcc.dg/cpp/warn-comments.c b/gcc/testsuite/gcc.dg/cpp/warn-comments.c
index bbe28215894..8d7a575ba44 100644
--- a/gcc/testsuite/gcc.dg/cpp/warn-comments.c
+++ b/gcc/testsuite/gcc.dg/cpp/warn-comments.c
@@ -4,4 +4,4 @@
/* /* */ // { dg-warning "4: \"\.\*\" within comment .-Wcomment." }
// \
- // { dg-warning "1: multi-line comment .-Wcomment." "multi-line" { target *-*-* } 6 }
+ // { dg-warning "1: multi-line comment .-Wcomment." "multi-line" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/gcc.dg/cpp/warn-long-long-2.c b/gcc/testsuite/gcc.dg/cpp/warn-long-long-2.c
index 7b074a37c90..a39cba49014 100644
--- a/gcc/testsuite/gcc.dg/cpp/warn-long-long-2.c
+++ b/gcc/testsuite/gcc.dg/cpp/warn-long-long-2.c
@@ -2,5 +2,5 @@
// { dg-options "-std=gnu99 -fdiagnostics-show-option -Wtraditional -Werror=long-long" }
/* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */
#if 0LL // { dg-error "traditional C rejects the \"LL\" suffix .-Werror=long-long." }
- // { dg-error "use of C99 long long integer constant .-Werror=long-long." "use long long" { target *-*-* } 4 }
+ // { dg-error "use of C99 long long integer constant .-Werror=long-long." "use long long" { target *-*-* } .-1 }
#endif
diff --git a/gcc/testsuite/gcc.dg/cpp/warn-long-long.c b/gcc/testsuite/gcc.dg/cpp/warn-long-long.c
index e86f9a6288d..ac39cc8eaef 100644
--- a/gcc/testsuite/gcc.dg/cpp/warn-long-long.c
+++ b/gcc/testsuite/gcc.dg/cpp/warn-long-long.c
@@ -2,5 +2,5 @@
// { dg-options "-std=gnu99 -fdiagnostics-show-option -Wtraditional -Wlong-long" }
#if 0LL // { dg-warning "traditional C rejects the \"LL\" suffix .-Wlong-long." }
- // { dg-warning "use of C99 long long integer constant .-Wlong-long." "use long long" { target *-*-* } 4 }
+ // { dg-warning "use of C99 long long integer constant .-Wlong-long." "use long long" { target *-*-* } .-1 }
#endif
diff --git a/gcc/testsuite/gcc.dg/cpp/warn-redefined-2.c b/gcc/testsuite/gcc.dg/cpp/warn-redefined-2.c
index e6b209c1e70..3e2e57a79bb 100644
--- a/gcc/testsuite/gcc.dg/cpp/warn-redefined-2.c
+++ b/gcc/testsuite/gcc.dg/cpp/warn-redefined-2.c
@@ -3,16 +3,16 @@
/* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */
#ifndef __TIME__
#error "__TIME__ builtin is not defined"
-// { dg-bogus "__TIME__ builtin is not defined" "no-time" { target *-*-* } 5 }
+// { dg-bogus "__TIME__ builtin is not defined" "no-time" { target *-*-* } .-1 }
#endif
#define __TIME__ "X" // { dg-error "\"__TIME__\" redefined .-Werror=builtin-macro-redefined." }
#define __TIME__ "Y" // { dg-bogus "-Wbuiltin-macro-redefined" }
- // { dg-warning "\"__TIME__\" redefined" "not-builtin-1" { target *-*-* } 11 }
+ // { dg-warning "\"__TIME__\" redefined" "not-builtin-1" { target *-*-* } .-1 }
// { dg-message "previous definition" "previous-1" { target *-*-* } 9 }
#define X "X"
#define X "Y" // { dg-bogus "-Wbuiltin-macro-redefined" }
- // { dg-warning "\"X\" redefined" "not-builtin-2" { target *-*-* } 16 }
+ // { dg-warning "\"X\" redefined" "not-builtin-2" { target *-*-* } .-1 }
// { dg-message "previous definition" "previous-2" { target *-*-* } 15 }
diff --git a/gcc/testsuite/gcc.dg/cpp/warn-redefined.c b/gcc/testsuite/gcc.dg/cpp/warn-redefined.c
index 1d3e7fc3ed3..c562d072e40 100644
--- a/gcc/testsuite/gcc.dg/cpp/warn-redefined.c
+++ b/gcc/testsuite/gcc.dg/cpp/warn-redefined.c
@@ -3,16 +3,16 @@
#ifndef __TIME__
#error "__TIME__ builtin is not defined"
-// { dg-bogus "__TIME__ builtin is not defined" "no-time" { target *-*-* } 5 }
+// { dg-bogus "__TIME__ builtin is not defined" "no-time" { target *-*-* } .-1 }
#endif
#define __TIME__ "X" // { dg-warning "\"__TIME__\" redefined .-Wbuiltin-macro-redefined." }
#define __TIME__ "Y" // { dg-bogus "-Wbuiltin-macro-redefined" }
- // { dg-warning "\"__TIME__\" redefined" "not-builtin-1" { target *-*-* } 11 }
+ // { dg-warning "\"__TIME__\" redefined" "not-builtin-1" { target *-*-* } .-1 }
// { dg-message "previous definition" "previous-1" { target *-*-* } 9 }
#define X "X"
#define X "Y" // { dg-bogus "-Wbuiltin-macro-redefined" }
- // { dg-warning "\"X\" redefined" "not-builtin-2" { target *-*-* } 16 }
+ // { dg-warning "\"X\" redefined" "not-builtin-2" { target *-*-* } .-1 }
// { dg-message "previous definition" "previous-2" { target *-*-* } 15 }
diff --git a/gcc/testsuite/gcc.dg/darwin-cfstring-2.c b/gcc/testsuite/gcc.dg/darwin-cfstring-2.c
index 1c724b25cfe..82b0551b87f 100644
--- a/gcc/testsuite/gcc.dg/darwin-cfstring-2.c
+++ b/gcc/testsuite/gcc.dg/darwin-cfstring-2.c
@@ -9,4 +9,4 @@
typedef const struct __CFString *CFStringRef;
const CFStringRef S = ((CFStringRef)__builtin___CFStringMakeConstantString("Testing"));
-/* { dg-error "built-in" "built-in function .* requires .* flag" { target *-*-* } 11 } */
+/* { dg-error "built-in" "built-in function .* requires .* flag" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/darwin-cfstring-format-1.c b/gcc/testsuite/gcc.dg/darwin-cfstring-format-1.c
index 992247aad7e..c1b44a337dd 100644
--- a/gcc/testsuite/gcc.dg/darwin-cfstring-format-1.c
+++ b/gcc/testsuite/gcc.dg/darwin-cfstring-format-1.c
@@ -31,6 +31,6 @@ void foo (void)
CFStringRef notchk = CFSTR ("here is an unchecked %d %s string");
s1 (notchk, 5, 6, 7);
printf("this one is checked %d %s", 3, 4, 5); /* { dg-warning "format .%s. expects argument of type .char .., but argument 3 has type .int." } */
- /* { dg-warning "too many arguments for format" "" { target *-*-* } 33 } */
+ /* { dg-warning "too many arguments for format" "" { target *-*-* } .-1 } */
printf(s5 (1, "and so is this %d %d %s", 3, 4, "hey", 6), 5, 6, 12);/* { dg-warning "format .%s. expects argument of type .char .., but argument 4 has type .int." } */
}
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/pr80263.c b/gcc/testsuite/gcc.dg/debug/dwarf2/pr80263.c
new file mode 100644
index 00000000000..57633b4f0eb
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/pr80263.c
@@ -0,0 +1,7 @@
+/* PR debug/80263 */
+/* { dg-do compile } */
+/* { dg-options "-g -dA" } */
+
+char array[1];
+
+/* { dg-final { scan-assembler-not {\msizetype} } } */
diff --git a/gcc/testsuite/gcc.dg/debug/pr80321.c b/gcc/testsuite/gcc.dg/debug/pr80321.c
new file mode 100644
index 00000000000..e75572e7898
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/debug/pr80321.c
@@ -0,0 +1,26 @@
+/* PR debug/80321 */
+/* { dg-do compile } */
+/* { dg-options "-fkeep-inline-functions" } */
+
+void bar (void);
+
+static inline void
+test (int x)
+{
+ inline void
+ foo (int x)
+ {
+ test (0);
+ asm volatile ("" : : : "memory");
+ }
+ if (x != 0)
+ foo (x);
+ else
+ bar ();
+}
+
+void
+baz (int x)
+{
+ test (x);
+}
diff --git a/gcc/testsuite/gcc.dg/decl-9.c b/gcc/testsuite/gcc.dg/decl-9.c
index 83793a9a525..eeca8e05e14 100644
--- a/gcc/testsuite/gcc.dg/decl-9.c
+++ b/gcc/testsuite/gcc.dg/decl-9.c
@@ -21,7 +21,7 @@ int f2()
{
b: a: ; /* { dg-bogus "a label can only be part of a statement" } */
c: d e; /* { dg-error "a label can only be part of a statement" } */
-/* { dg-error "unknown type name 'd'" "unknown type name" { target *-*-* } 23 } */
+/* { dg-error "unknown type name 'd'" "unknown type name" { target *-*-* } .-1 } */
;
}
diff --git a/gcc/testsuite/gcc.dg/declspec-1.c b/gcc/testsuite/gcc.dg/declspec-1.c
index b0246011dd0..a75df907729 100644
--- a/gcc/testsuite/gcc.dg/declspec-1.c
+++ b/gcc/testsuite/gcc.dg/declspec-1.c
@@ -9,14 +9,14 @@ typedef int t;
/* These should all be diagnosed, but only once, not for every
identifier declared. */
struct s0 int x0, /* { dg-error "two or more data types" } */
-/* { dg-error "storage size of 'x0' isn't known" "" { target *-*-* } 11 } */
+/* { dg-error "storage size of 'x0' isn't known" "" { target *-*-* } .-1 } */
x1; /* { dg-error "storage size of 'x1' isn't known" } */
char union u0 x2, /* { dg-error "two or more data types" } */
x3;
enum e0 struct s1 x4, /* { dg-error "two or more data types" } */
- /* { dg-error "storage size of 'x4' isn't known" "" { target *-*-* } 18 } */
+ /* { dg-error "storage size of 'x4' isn't known" "" { target *-*-* } .-1 } */
x5; /* { dg-error "storage size of 'x5' isn't known" } */
short short x6, /* { dg-error "duplicate" } */
diff --git a/gcc/testsuite/gcc.dg/declspec-10.c b/gcc/testsuite/gcc.dg/declspec-10.c
index e6572bd82b3..fa465664a05 100644
--- a/gcc/testsuite/gcc.dg/declspec-10.c
+++ b/gcc/testsuite/gcc.dg/declspec-10.c
@@ -19,7 +19,7 @@ auto int x; /* { dg-error "file-scope declaration of 'x' specifies 'auto'" } */
register int y; /* { dg-warning "file-scope declaration of 'y' specifies 'register'" } */
void h (void) { extern void x (void) {} } /* { dg-error "nested function 'x' declared 'extern'" } */
-/* { dg-warning "ISO C forbids nested functions" "nested" { target *-*-* } 21 } */
+/* { dg-warning "ISO C forbids nested functions" "nested" { target *-*-* } .-1 } */
void
g (void)
@@ -37,10 +37,10 @@ static void r; /* { dg-error "variable or field 'r' declared void" } */
static const void r1; /* { dg-error "variable or field 'r1' declared void" } */
register void f8 (void); /* { dg-error "invalid storage class for function 'f8'" } */
-/* { dg-warning "file-scope declaration of 'f8' specifies 'register'" "register function" { target *-*-* } 39 } */
+/* { dg-warning "file-scope declaration of 'f8' specifies 'register'" "register function" { target *-*-* } .-1 } */
void i (void) { auto void y (void) {} } /* { dg-warning "ISO C forbids nested functions" } */
-/* { dg-warning "function definition declared 'auto'" "nested" { target *-*-* } 42 } */
+/* { dg-warning "function definition declared 'auto'" "nested" { target *-*-* } .-1 } */
inline int main (void) { return 0; } /* { dg-warning "cannot inline function 'main'" } */
diff --git a/gcc/testsuite/gcc.dg/declspec-11.c b/gcc/testsuite/gcc.dg/declspec-11.c
index 9dfe63f99e3..d9fafde77ba 100644
--- a/gcc/testsuite/gcc.dg/declspec-11.c
+++ b/gcc/testsuite/gcc.dg/declspec-11.c
@@ -19,7 +19,7 @@ auto int x; /* { dg-error "file-scope declaration of 'x' specifies 'auto'" } */
register int y; /* { dg-error "file-scope declaration of 'y' specifies 'register'" } */
void h (void) { extern void x (void) {} } /* { dg-error "nested function 'x' declared 'extern'" } */
-/* { dg-error "ISO C forbids nested functions" "nested" { target *-*-* } 21 } */
+/* { dg-error "ISO C forbids nested functions" "nested" { target *-*-* } .-1 } */
void
g (void)
@@ -37,10 +37,10 @@ static void r; /* { dg-error "variable or field 'r' declared void" } */
static const void r1; /* { dg-error "variable or field 'r1' declared void" } */
register void f8 (void); /* { dg-error "invalid storage class for function 'f8'" } */
-/* { dg-error "file-scope declaration of 'f8' specifies 'register'" "register function" { target *-*-* } 39 } */
+/* { dg-error "file-scope declaration of 'f8' specifies 'register'" "register function" { target *-*-* } .-1 } */
void i (void) { auto void y (void) {} } /* { dg-error "ISO C forbids nested functions" } */
-/* { dg-error "function definition declared 'auto'" "nested" { target *-*-* } 42 } */
+/* { dg-error "function definition declared 'auto'" "nested" { target *-*-* } .-1 } */
inline int main (void) { return 0; } /* { dg-error "cannot inline function 'main'" } */
diff --git a/gcc/testsuite/gcc.dg/declspec-13.c b/gcc/testsuite/gcc.dg/declspec-13.c
index 3b4e315ef35..a69b94893b2 100644
--- a/gcc/testsuite/gcc.dg/declspec-13.c
+++ b/gcc/testsuite/gcc.dg/declspec-13.c
@@ -18,15 +18,15 @@ D _Complex x2; /* { dg-error "two or more data types in declaration specifiers"
specifiers diagnosed, not just the general problem that they are
empty declarations. */
long short; /* { dg-error "both 'long' and 'short' in declaration specifiers" } */
-/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } 20 } */
+/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } .-1 } */
_Complex double; /* { dg-warning "ISO C90 does not support complex types" } */
-/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } 22 } */
+/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } .-1 } */
_Complex; /* { dg-warning "ISO C90 does not support complex types" } */
-/* { dg-warning "ISO C does not support plain 'complex' meaning 'double complex'" "ISO C" { target *-*-* } 24 } */
-/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } 24 } */
+/* { dg-warning "ISO C does not support plain 'complex' meaning 'double complex'" "ISO C" { target *-*-* } .-1 } */
+/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } .-2 } */
_Complex int; /* { dg-warning "ISO C90 does not support complex types" } */
-/* { dg-warning "ISO C does not support complex integer types" "ISO C" { target *-*-* } 27 } */
-/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } 27 } */
+/* { dg-warning "ISO C does not support complex integer types" "ISO C" { target *-*-* } .-1 } */
+/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } .-2 } */
/* Specific messages for each invalid combination. (That some message
is given when appropriate for a larger collection of combinations
@@ -36,53 +36,53 @@ long double long x3; /* { dg-error "both 'long long' and 'double' in declaration
short long x4; /* { dg-error "both 'long' and 'short' in declaration specifiers" } */
void long x5; /* { dg-error "both 'long' and 'void' in declaration specifiers" } */
_Bool long x6; /* { dg-error "both 'long' and '_Bool' in declaration specifiers" } */
-/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } 38 } */
+/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } .-1 } */
char long x7; /* { dg-error "both 'long' and 'char' in declaration specifiers" } */
float long x8; /* { dg-error "both 'long' and 'float' in declaration specifiers" } */
long short x9; /* { dg-error "both 'long' and 'short' in declaration specifiers" } */
void short x10; /* { dg-error "both 'short' and 'void' in declaration specifiers" } */
_Bool short x11; /* { dg-error "both 'short' and '_Bool' in declaration specifiers" } */
-/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } 44 } */
+/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } .-1 } */
char short x12; /* { dg-error "both 'short' and 'char' in declaration specifiers" } */
float short x13; /* { dg-error "both 'short' and 'float' in declaration specifiers" } */
double short x14; /* { dg-error "both 'short' and 'double' in declaration specifiers" } */
unsigned signed x15; /* { dg-error "both 'signed' and 'unsigned' in declaration specifiers" } */
void signed x16; /* { dg-error "both 'signed' and 'void' in declaration specifiers" } */
_Bool signed x17; /* { dg-error "both 'signed' and '_Bool' in declaration specifiers" } */
-/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } 51 } */
+/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } .-1 } */
float signed x18; /* { dg-error "both 'signed' and 'float' in declaration specifiers" } */
double signed x19; /* { dg-error "both 'signed' and 'double' in declaration specifiers" } */
signed unsigned x20; /* { dg-error "both 'signed' and 'unsigned' in declaration specifiers" } */
void unsigned x21; /* { dg-error "both 'unsigned' and 'void' in declaration specifiers" } */
_Bool unsigned x22; /* { dg-error "both 'unsigned' and '_Bool' in declaration specifiers" } */
-/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } 57 } */
+/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } .-1 } */
float unsigned x23; /* { dg-error "both 'unsigned' and 'float' in declaration specifiers" } */
double unsigned x24; /* { dg-error "both 'unsigned' and 'double' in declaration specifiers" } */
void _Complex x25; /* { dg-error "both 'complex' and 'void' in declaration specifiers" } */
-/* { dg-warning "ISO C90 does not support complex types" "C90" { target *-*-* } 61 } */
+/* { dg-warning "ISO C90 does not support complex types" "C90" { target *-*-* } .-1 } */
_Bool _Complex x26; /* { dg-error "both 'complex' and '_Bool' in declaration specifiers" } */
-/* { dg-warning "ISO C90 does not support complex types" "C90" { target *-*-* } 63 } */
-/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } 63 } */
+/* { dg-warning "ISO C90 does not support complex types" "C90" { target *-*-* } .-1 } */
+/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } .-2 } */
long void x27; /* { dg-error "both 'long' and 'void' in declaration specifiers" } */
short void x28; /* { dg-error "both 'short' and 'void' in declaration specifiers" } */
signed void x29; /* { dg-error "both 'signed' and 'void' in declaration specifiers" } */
unsigned void x30; /* { dg-error "both 'unsigned' and 'void' in declaration specifiers" } */
_Complex void x31; /* { dg-error "both 'complex' and 'void' in declaration specifiers" } */
-/* { dg-warning "ISO C90 does not support complex types" "C90" { target *-*-* } 71 } */
-/* { dg-warning "ISO C does not support plain 'complex' meaning 'double complex'" "complex" { target *-*-* } 71 } */
+/* { dg-warning "ISO C90 does not support complex types" "C90" { target *-*-* } .-1 } */
+/* { dg-warning "ISO C does not support plain 'complex' meaning 'double complex'" "complex" { target *-*-* } .-2 } */
long _Bool x32; /* { dg-error "both 'long' and '_Bool' in declaration specifiers" } */
-/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } 74 } */
+/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } .-1 } */
short _Bool x33; /* { dg-error "both 'short' and '_Bool' in declaration specifiers" } */
-/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } 76 } */
+/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } .-1 } */
signed _Bool x34; /* { dg-error "both 'signed' and '_Bool' in declaration specifiers" } */
-/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } 78 } */
+/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } .-1 } */
unsigned _Bool x35; /* { dg-error "both 'unsigned' and '_Bool' in declaration specifiers" } */
-/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } 80 } */
+/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } .-1 } */
_Complex _Bool x36; /* { dg-error "both 'complex' and '_Bool' in declaration specifiers" } */
-/* { dg-warning "ISO C90 does not support complex types" "C90" { target *-*-* } 82 } */
-/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } 82 } */
-/* { dg-warning "ISO C does not support plain 'complex' meaning 'double complex'" "complex" { target *-*-* } 82 } */
+/* { dg-warning "ISO C90 does not support complex types" "C90" { target *-*-* } .-1 } */
+/* { dg-warning "ISO C90 does not support boolean types" "C90" { target *-*-* } .-2 } */
+/* { dg-warning "ISO C does not support plain 'complex' meaning 'double complex'" "complex" { target *-*-* } .-3 } */
long char x37; /* { dg-error "both 'long' and 'char' in declaration specifiers" } */
short char x38; /* { dg-error "both 'short' and 'char' in declaration specifiers" } */
long float x39; /* { dg-error "both 'long' and 'float' in declaration specifiers" } */
@@ -90,7 +90,7 @@ short float x40; /* { dg-error "both 'short' and 'float' in declaration specifie
signed float x41; /* { dg-error "both 'signed' and 'float' in declaration specifiers" } */
unsigned float x42; /* { dg-error "both 'unsigned' and 'float' in declaration specifiers" } */
long long double x43; /* { dg-error "both 'long long' and 'double' in declaration specifiers" } */
-/* { dg-warning "ISO C90 does not support 'long long'" "C90" { target *-*-* } 92 } */
+/* { dg-warning "ISO C90 does not support 'long long'" "C90" { target *-*-* } .-1 } */
short double x44; /* { dg-error "both 'short' and 'double' in declaration specifiers" } */
signed double x45; /* { dg-error "both 'signed' and 'double' in declaration specifiers" } */
unsigned double x46; /* { dg-error "both 'unsigned' and 'double' in declaration specifiers" } */
diff --git a/gcc/testsuite/gcc.dg/declspec-18.c b/gcc/testsuite/gcc.dg/declspec-18.c
index dd4c262d4cd..0a111787047 100644
--- a/gcc/testsuite/gcc.dg/declspec-18.c
+++ b/gcc/testsuite/gcc.dg/declspec-18.c
@@ -5,7 +5,7 @@ static t1 *a; /* { dg-error "unknown type name 't1'" } */
int z; /* { dg-message "previous declaration of 'z'" } */
typedef t2 *z; /* { dg-error "unknown type name 't2'" } */
-/* { dg-error "'z' redeclared " "redeclared" { target *-*-* } 7 } */
+/* { dg-error "'z' redeclared " "redeclared" { target *-*-* } .-1 } */
extern t3 p1(void); /* { dg-error "unknown type name 't3'" } */
int p2(const t4 x); /* { dg-error "unknown type name 't4'" } */
@@ -61,13 +61,13 @@ int recover3;
const char *f1()
{
return (const t17) "abc"; /* { dg-error "unknown type name 't17'" "t17" } */
-/* { dg-bogus "expected" "expected" { target *-*-* } 63 } */
+/* { dg-bogus "expected" "expected" { target *-*-* } .-1 } */
}
const char *f2()
{
return (const t18 *) "abc"; /* { dg-error "unknown type name 't18'" "t18" } */
-/* { dg-bogus "expected" "expected" { target *-*-* } 69 } */
+/* { dg-bogus "expected" "expected" { target *-*-* } .-1 } */
}
@@ -77,14 +77,14 @@ const char *f2()
void *f3(int x)
{
return (void *) ((void *(*)(t19)) f3); /* { dg-error "unknown type name 't19'" "t19" } */
-/* { dg-bogus "expected" "expected" { xfail *-*-* } 79 } */
+/* { dg-bogus "expected" "expected" { xfail *-*-* } .-1 } */
}
const void *f4()
{
return &((const t20){1}); /* { dg-error "unknown type name 't20'" } */
-/* { dg-bogus "return discards 'const'" "discards" { target *-*-* } 85 } */
-/* { dg-bogus "expected" "expected" { target *-*-* } 85 } */
+/* { dg-bogus "return discards 'const'" "discards" { target *-*-* } .-1 } */
+/* { dg-bogus "expected" "expected" { target *-*-* } .-2 } */
}
int f5(__builtin_va_list ap)
@@ -96,5 +96,5 @@ int f5(__builtin_va_list ap)
int f6(void)
{
return __builtin_offsetof (t23, field); /* { dg-error "unknown type name 't23'" "t23" } */
-/* { dg-bogus "request for member" "request" { target *-*-* } 98 } */
+/* { dg-bogus "request for member" "request" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/declspec-4.c b/gcc/testsuite/gcc.dg/declspec-4.c
index eb692ca2b8c..59dbae0bd57 100644
--- a/gcc/testsuite/gcc.dg/declspec-4.c
+++ b/gcc/testsuite/gcc.dg/declspec-4.c
@@ -22,22 +22,22 @@ int; /* { dg-warning "useless type name in empty declaration" } */
long; /* { dg-warning "useless type name in empty declaration" } */
T; /* { dg-warning "useless type name in empty declaration" } */
static const; /* { dg-warning "useless storage class specifier in empty declaration" } */
-/* { dg-warning "empty declaration" "static const" { target *-*-* } 24 } */
+/* { dg-warning "empty declaration" "static const" { target *-*-* } .-1 } */
union { long b; }; /* { dg-warning "unnamed struct/union that defines no instances" } */
/* Multiple type names (errors). */
struct s1 int; /* { dg-error "two or more data types in declaration specifiers" } */
char union u1; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-warning "useless type name in empty declaration" "char union" { target *-*-* } 30 } */
+/* { dg-warning "useless type name in empty declaration" "char union" { target *-*-* } .-1 } */
double enum { E2 }; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-warning "useless type name in empty declaration" "double enum" { target *-*-* } 32 } */
+/* { dg-warning "useless type name in empty declaration" "double enum" { target *-*-* } .-1 } */
T struct s2; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-warning "useless type name in empty declaration" "T struct" { target *-*-* } 34 } */
+/* { dg-warning "useless type name in empty declaration" "T struct" { target *-*-* } .-1 } */
long union u2; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } 36 } */
+/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } .-1 } */
struct s3 short; /* { dg-error "two or more data types in declaration specifiers" } */
union u3 signed; /* { dg-error "two or more data types in declaration specifiers" } */
unsigned struct s4; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } 40 } */
+/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } .-1 } */
_Complex enum { E3 }; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } 42 } */
+/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/declspec-5.c b/gcc/testsuite/gcc.dg/declspec-5.c
index 52b2433e26f..f7f80bf8b10 100644
--- a/gcc/testsuite/gcc.dg/declspec-5.c
+++ b/gcc/testsuite/gcc.dg/declspec-5.c
@@ -22,24 +22,24 @@ int; /* { dg-warning "useless type name in empty declaration" } */
long; /* { dg-warning "useless type name in empty declaration" } */
T; /* { dg-warning "useless type name in empty declaration" } */
static const; /* { dg-warning "useless storage class specifier in empty declaration" } */
-/* { dg-warning "empty declaration" "static const" { target *-*-* } 24 } */
+/* { dg-warning "empty declaration" "static const" { target *-*-* } .-1 } */
union { long b; }; /* { dg-warning "unnamed struct/union that defines no instances" } */
/* Multiple type names (errors). */
struct s1 int; /* { dg-error "two or more data types in declaration specifiers" } */
char union u1; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-warning "useless type name in empty declaration" "char union" { target *-*-* } 30 } */
+/* { dg-warning "useless type name in empty declaration" "char union" { target *-*-* } .-1 } */
double enum { E2 }; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-warning "useless type name in empty declaration" "double enum" { target *-*-* } 32 } */
+/* { dg-warning "useless type name in empty declaration" "double enum" { target *-*-* } .-1 } */
T struct s2; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-warning "useless type name in empty declaration" "T struct" { target *-*-* } 34 } */
+/* { dg-warning "useless type name in empty declaration" "T struct" { target *-*-* } .-1 } */
long union u2; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } 36 } */
+/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } .-1 } */
struct s3 short; /* { dg-error "two or more data types in declaration specifiers" } */
union u3 signed; /* { dg-error "two or more data types in declaration specifiers" } */
unsigned struct s4; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } 40 } */
+/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } .-1 } */
_Complex enum { E3 }; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } 42 } */
-/* { dg-warning "ISO C90 does not support complex types" "C90" { target *-*-* } 42 } */
-/* { dg-warning "ISO C does not support plain 'complex' meaning 'double complex'" "ISO C" { target *-*-* } 42 } */
+/* { dg-warning "useless type name in empty declaration" "empty" { target *-*-* } .-1 } */
+/* { dg-warning "ISO C90 does not support complex types" "C90" { target *-*-* } .-2 } */
+/* { dg-warning "ISO C does not support plain 'complex' meaning 'double complex'" "ISO C" { target *-*-* } .-3 } */
diff --git a/gcc/testsuite/gcc.dg/declspec-6.c b/gcc/testsuite/gcc.dg/declspec-6.c
index 40b77be7f96..c235717214f 100644
--- a/gcc/testsuite/gcc.dg/declspec-6.c
+++ b/gcc/testsuite/gcc.dg/declspec-6.c
@@ -22,24 +22,24 @@ int; /* { dg-error "useless type name in empty declaration" } */
long; /* { dg-error "useless type name in empty declaration" } */
T; /* { dg-error "useless type name in empty declaration" } */
static const; /* { dg-warning "useless storage class specifier in empty declaration" } */
-/* { dg-error "empty declaration" "static const" { target *-*-* } 24 } */
+/* { dg-error "empty declaration" "static const" { target *-*-* } .-1 } */
union { long b; }; /* { dg-error "unnamed struct/union that defines no instances" } */
/* Multiple type names (errors). */
struct s1 int; /* { dg-error "two or more data types in declaration specifiers" } */
char union u1; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-error "useless type name in empty declaration" "char union" { target *-*-* } 30 } */
+/* { dg-error "useless type name in empty declaration" "char union" { target *-*-* } .-1 } */
double enum { E2 }; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-error "useless type name in empty declaration" "double enum" { target *-*-* } 32 } */
+/* { dg-error "useless type name in empty declaration" "double enum" { target *-*-* } .-1 } */
T struct s2; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-error "useless type name in empty declaration" "T struct" { target *-*-* } 34 } */
+/* { dg-error "useless type name in empty declaration" "T struct" { target *-*-* } .-1 } */
long union u2; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-error "useless type name in empty declaration" "empty" { target *-*-* } 36 } */
+/* { dg-error "useless type name in empty declaration" "empty" { target *-*-* } .-1 } */
struct s3 short; /* { dg-error "two or more data types in declaration specifiers" } */
union u3 signed; /* { dg-error "two or more data types in declaration specifiers" } */
unsigned struct s4; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-error "useless type name in empty declaration" "empty" { target *-*-* } 40 } */
+/* { dg-error "useless type name in empty declaration" "empty" { target *-*-* } .-1 } */
_Complex enum { E3 }; /* { dg-error "two or more data types in declaration specifiers" } */
-/* { dg-error "useless type name in empty declaration" "empty" { target *-*-* } 42 } */
-/* { dg-error "ISO C90 does not support complex types" "C90" { target *-*-* } 42 } */
-/* { dg-error "ISO C does not support plain 'complex' meaning 'double complex'" "ISO C" { target *-*-* } 42 } */
+/* { dg-error "useless type name in empty declaration" "empty" { target *-*-* } .-1 } */
+/* { dg-error "ISO C90 does not support complex types" "C90" { target *-*-* } .-2 } */
+/* { dg-error "ISO C does not support plain 'complex' meaning 'double complex'" "ISO C" { target *-*-* } .-3 } */
diff --git a/gcc/testsuite/gcc.dg/declspec-8.c b/gcc/testsuite/gcc.dg/declspec-8.c
index e1061e85b91..a26cfa4d75b 100644
--- a/gcc/testsuite/gcc.dg/declspec-8.c
+++ b/gcc/testsuite/gcc.dg/declspec-8.c
@@ -13,10 +13,10 @@
6.9#2). */
static static struct s; /* { dg-error "duplicate 'static'" } */
-/* { dg-warning "useless storage class specifier in empty declaration" "static static" { target *-*-* } 15 } */
+/* { dg-warning "useless storage class specifier in empty declaration" "static static" { target *-*-* } .-1 } */
static extern struct t; /* { dg-error "multiple storage classes in declaration specifiers" } */
-/* { dg-warning "useless storage class specifier in empty declaration" "static extern" { target *-*-* } 18 } */
+/* { dg-warning "useless storage class specifier in empty declaration" "static extern" { target *-*-* } .-1 } */
inline union u; /* { dg-error "'inline' in empty declaration" } */
diff --git a/gcc/testsuite/gcc.dg/deprecated-4.c b/gcc/testsuite/gcc.dg/deprecated-4.c
index 152d65cbfbf..b55c134cb94 100644
--- a/gcc/testsuite/gcc.dg/deprecated-4.c
+++ b/gcc/testsuite/gcc.dg/deprecated-4.c
@@ -52,9 +52,9 @@ int func1()
int (*pf)() = f1; /* { dg-warning "'f1' is deprecated: Please avoid f1" "" } */
z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated: Avoid x" "" } */
- /* { dg-warning "'y' is deprecated: Bad y" "y" { target *-*-* } 54 } */
- /* { dg-warning "'g2' is deprecated: Please avoid g2" "g2" { target *-*-* } 54 } */
- /* { dg-warning "'g3' is deprecated: Please avoid g3" "g3" { target *-*-* } 54 } */
+ /* { dg-warning "'y' is deprecated: Bad y" "y" { target *-*-* } .-1 } */
+ /* { dg-warning "'g2' is deprecated: Please avoid g2" "g2" { target *-*-* } .-2 } */
+ /* { dg-warning "'g3' is deprecated: Please avoid g3" "g3" { target *-*-* } .-3 } */
return f1(); /* { dg-warning "'f1' is deprecated: Please avoid f1" "" } */
}
@@ -70,7 +70,7 @@ int func2(S1 *p)
p->u1.field5 = g1 + p->field7;
p->u2.field9; /* { dg-warning "'u2' is deprecated: Please avoid u2" "" } */
return p->u1.field6 + p->field8; /* { dg-warning "'field6' is deprecated: Please avoid field6" "" } */
- /* { dg-warning "'field8' is deprecated: Please avoid field8" "field8" { target *-*-* } 72 } */
+ /* { dg-warning "'field8' is deprecated: Please avoid field8" "field8" { target *-*-* } .-1 } */
}
struct SS1 {
diff --git a/gcc/testsuite/gcc.dg/deprecated.c b/gcc/testsuite/gcc.dg/deprecated.c
index 6ca95d42a74..8b4a70f3b70 100644
--- a/gcc/testsuite/gcc.dg/deprecated.c
+++ b/gcc/testsuite/gcc.dg/deprecated.c
@@ -53,9 +53,9 @@ int func1()
int (*pf)() = f1; /* { dg-warning "'f1' is deprecated" "" } */
z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated" "" } */
- /* { dg-warning "'y' is deprecated" "y" { target *-*-* } 55 } */
- /* { dg-warning "'g2' is deprecated" "g2" { target *-*-* } 55 } */
- /* { dg-warning "'g3' is deprecated" "g3" { target *-*-* } 55 } */
+ /* { dg-warning "'y' is deprecated" "y" { target *-*-* } .-1 } */
+ /* { dg-warning "'g2' is deprecated" "g2" { target *-*-* } .-2 } */
+ /* { dg-warning "'g3' is deprecated" "g3" { target *-*-* } .-3 } */
return f1(); /* { dg-warning "'f1' is deprecated" "f1" } */
}
@@ -71,7 +71,7 @@ int func2(S1 *p)
p->u1.field5 = g1 + p->field7;
p->u2.field9; /* { dg-warning "'u2' is deprecated" "" } */
return p->u1.field6 + p->field8; /* { dg-warning "'field6' is deprecated" "" } */
- /* { dg-warning "'field8' is deprecated" "field8" { target *-*-* } 73 } */
+ /* { dg-warning "'field8' is deprecated" "field8" { target *-*-* } .-1 } */
}
struct SS1 {
diff --git a/gcc/testsuite/gcc.dg/dfp/composite-type.c b/gcc/testsuite/gcc.dg/dfp/composite-type.c
index 6bf35f5c941..6d461c76e29 100644
--- a/gcc/testsuite/gcc.dg/dfp/composite-type.c
+++ b/gcc/testsuite/gcc.dg/dfp/composite-type.c
@@ -34,15 +34,15 @@ do \
} while(0)
DECIMAL_COMPOSITE_DECL(32); /* { dg-error "incompatible types when assigning to type '\[^\n\]*' from type '\[^\n\]*'" } */
-/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } 36 } */
+/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } .-1 } */
DECIMAL_COMPOSITE_DECL(64); /* { dg-error "incompatible types when assigning to type '\[^\n\]*' from type '\[^\n\]*'" } */
-/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } 40 } */
+/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } .-1 } */
DECIMAL_COMPOSITE_DECL(128); /* { dg-error "incompatible types when assigning to type '\[^\n\]*' from type '\[^\n\]*'" } */
-/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } 44 } */
+/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } .-1 } */
int main()
diff --git a/gcc/testsuite/gcc.dg/empty-source-2.c b/gcc/testsuite/gcc.dg/empty-source-2.c
index 8ce201c13cd..7261fda7c85 100644
--- a/gcc/testsuite/gcc.dg/empty-source-2.c
+++ b/gcc/testsuite/gcc.dg/empty-source-2.c
@@ -3,4 +3,4 @@
/* { dg-do compile } */
/* { dg-options "-pedantic" } */
-/* { dg-warning "ISO C forbids an empty translation unit" "empty" { target *-*-* } 6 } */
+/* { dg-warning "ISO C forbids an empty translation unit" "empty" { target *-*-* } . } */
diff --git a/gcc/testsuite/gcc.dg/empty-source-3.c b/gcc/testsuite/gcc.dg/empty-source-3.c
index 0fd7be77754..8a248605ce3 100644
--- a/gcc/testsuite/gcc.dg/empty-source-3.c
+++ b/gcc/testsuite/gcc.dg/empty-source-3.c
@@ -4,4 +4,4 @@
/* { dg-do compile } */
/* { dg-options "-pedantic-errors" } */
-/* { dg-error "ISO C forbids an empty translation unit" "empty" { target *-*-* } 7 } */
+/* { dg-error "ISO C forbids an empty translation unit" "empty" { target *-*-* } . } */
diff --git a/gcc/testsuite/gcc.dg/format/attr-6.c b/gcc/testsuite/gcc.dg/format/attr-6.c
index ead7bfc3ccd..211ee0087be 100644
--- a/gcc/testsuite/gcc.dg/format/attr-6.c
+++ b/gcc/testsuite/gcc.dg/format/attr-6.c
@@ -18,5 +18,5 @@ void
foo (const char *s, int *p)
{
scanf("%ld", p); /* { dg-warning "12:format" "implicit scanf" } */
- /* { dg-warning "implicit" "implicit decl warning" { target *-*-* } 20 } */
+ /* { dg-warning "implicit" "implicit decl warning" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/format/branch-1.c b/gcc/testsuite/gcc.dg/format/branch-1.c
index f180f4313a6..1782064645e 100644
--- a/gcc/testsuite/gcc.dg/format/branch-1.c
+++ b/gcc/testsuite/gcc.dg/format/branch-1.c
@@ -24,5 +24,5 @@ foo (long l, int nfoo)
printf ((nfoo > 1) ? "%d foos" : ((nfoo > 0) ? "%ld foo" : "%d foos"), nfoo); /* { dg-warning "53:long int" "wrong type" } */
/* Extra arguments to NULL should be complained about. */
printf (0, "foo"); /* { dg-warning "14:too many" "NULL extra args" } */
- /* { dg-warning "null" "null format arg" { target *-*-* } 26 } */
+ /* { dg-warning "null" "null format arg" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/format/c90-printf-1.c b/gcc/testsuite/gcc.dg/format/c90-printf-1.c
index 5329dad83a4..c8652fc2252 100644
--- a/gcc/testsuite/gcc.dg/format/c90-printf-1.c
+++ b/gcc/testsuite/gcc.dg/format/c90-printf-1.c
@@ -42,9 +42,9 @@ foo (int i, int i1, int i2, unsigned int u, double d, char *s, void *p,
construct should be warned about.
*/
printf ("%.-5d\n", i); /* { dg-warning "14:format|precision" "negative precision warning" } */
- /* { dg-warning "too many arguments for format" "too many arguments" { target *-*-* } 44 } */
+ /* { dg-warning "too many arguments for format" "too many arguments" { target *-*-* } .-1 } */
printf ("%.-*d\n", i); /* { dg-warning "14:format" "broken %.-*d format" } */
- /* { dg-warning "too many arguments for format" "too many arguments" { target *-*-* } 46 } */
+ /* { dg-warning "too many arguments for format" "too many arguments" { target *-*-* } .-1 } */
printf ("%.3c\n", i); /* { dg-warning "15:precision" "precision with %c" } */
printf ("%.3p\n", p); /* { dg-warning "15:precision" "precision with %p" } */
printf ("%.3n\n", n); /* { dg-warning "15:precision" "precision with %n" } */
@@ -54,15 +54,15 @@ foo (int i, int i1, int i2, unsigned int u, double d, char *s, void *p,
*/
printf ("%%");
printf ("%.3%"); /* { dg-warning "14:type" "missing type" } */
- /* { dg-warning "15:trailing" "bogus %%" { target *-*-* } 56 } */
+ /* { dg-warning "15:trailing" "bogus %%" { target *-*-* } .-1 } */
printf ("%-%"); /* { dg-warning "13:type" "missing type" } */
- /* { dg-warning "14:trailing" "bogus %%" { target *-*-* } 58 } */
+ /* { dg-warning "14:trailing" "bogus %%" { target *-*-* } .-1 } */
printf ("%-%\n"); /* { dg-warning "13:format" "bogus %%" } */
- /* { dg-warning "15:format" "bogus %%" { target *-*-* } 60 } */
+ /* { dg-warning "15:format" "bogus %%" { target *-*-* } .-1 } */
printf ("%5%\n"); /* { dg-warning "13:format" "bogus %%" } */
- /* { dg-warning "15:format" "bogus %%" { target *-*-* } 62 } */
+ /* { dg-warning "15:format" "bogus %%" { target *-*-* } .-1 } */
printf ("%h%\n"); /* { dg-warning "13:format" "bogus %%" } */
- /* { dg-warning "15:format" "bogus %%" { target *-*-* } 64 } */
+ /* { dg-warning "15:format" "bogus %%" { target *-*-* } .-1 } */
/* Valid and invalid %h, %l, %L constructions. */
printf ("%hd", i);
printf ("%hi", i);
diff --git a/gcc/testsuite/gcc.dg/format/c90-strftime-2.c b/gcc/testsuite/gcc.dg/format/c90-strftime-2.c
index 8b8398ed930..17aff0ddc11 100644
--- a/gcc/testsuite/gcc.dg/format/c90-strftime-2.c
+++ b/gcc/testsuite/gcc.dg/format/c90-strftime-2.c
@@ -11,11 +11,11 @@ foo (char *s, size_t m, const struct tm *tp)
{
strftime (s, m, "%C", tp); /* { dg-warning "C" "%C not in C90" } */
strftime (s, m, "%D", tp); /* { dg-warning "C" "%D not in C90" } */
- /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 13 } */
+ /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
strftime (s, m, "%e", tp); /* { dg-warning "C" "%e not in C90" } */
strftime (s, m, "%F", tp); /* { dg-warning "C" "%F not in C90" } */
strftime (s, m, "%g", tp); /* { dg-warning "C" "%g not in C90" } */
- /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 17 } */
+ /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
strftime (s, m, "%G", tp); /* { dg-warning "C" "%G not in C90" } */
strftime (s, m, "%h", tp); /* { dg-warning "C" "%h not in C90" } */
strftime (s, m, "%n", tp); /* { dg-warning "C" "%n not in C90" } */
diff --git a/gcc/testsuite/gcc.dg/format/c99-strftime-1.c b/gcc/testsuite/gcc.dg/format/c99-strftime-1.c
index 1730738df42..7530bbdc944 100644
--- a/gcc/testsuite/gcc.dg/format/c99-strftime-1.c
+++ b/gcc/testsuite/gcc.dg/format/c99-strftime-1.c
@@ -39,11 +39,11 @@ foo (char *s, size_t m, const struct tm *tp)
strftime (s, m, "%EB", tp); /* { dg-warning "flag|modifier" "bad %EB" } */
strftime (s, m, "%Ed", tp); /* { dg-warning "flag|modifier" "bad %Ed" } */
strftime (s, m, "%ED", tp); /* { dg-warning "flag|modifier" "bad %ED" } */
- /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 41 } */
+ /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
strftime (s, m, "%Ee", tp); /* { dg-warning "flag|modifier" "bad %Ee" } */
strftime (s, m, "%EF", tp); /* { dg-warning "flag|modifier" "bad %EF" } */
strftime (s, m, "%Eg", tp); /* { dg-warning "flag|modifier" "bad %Eg" } */
- /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 45 } */
+ /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
strftime (s, m, "%EG", tp); /* { dg-warning "flag|modifier" "bad %EG" } */
strftime (s, m, "%Eh", tp); /* { dg-warning "flag|modifier" "bad %Eh" } */
strftime (s, m, "%EH", tp); /* { dg-warning "flag|modifier" "bad %EH" } */
@@ -71,13 +71,13 @@ foo (char *s, size_t m, const struct tm *tp)
strftime (s, m, "%Ob", tp); /* { dg-warning "flag|modifier" "bad %Ob" } */
strftime (s, m, "%OB", tp); /* { dg-warning "flag|modifier" "bad %OB" } */
strftime (s, m, "%Oc", tp); /* { dg-warning "flag|modifier" "bad %Oc" } */
- /* { dg-warning "in some locales" "2-digit year" { target *-*-* } 73 } */
+ /* { dg-warning "in some locales" "2-digit year" { target *-*-* } .-1 } */
strftime (s, m, "%OC", tp); /* { dg-warning "flag|modifier|C" "bad %OC" } */
strftime (s, m, "%OD", tp); /* { dg-warning "flag|modifier" "bad %OD" } */
- /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 76 } */
+ /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
strftime (s, m, "%OF", tp); /* { dg-warning "flag|modifier" "bad %OF" } */
strftime (s, m, "%Og", tp); /* { dg-warning "flag|modifier|C" "bad %Og" } */
- /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 79 } */
+ /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
strftime (s, m, "%OG", tp); /* { dg-warning "flag|modifier|C" "bad %OG" } */
strftime (s, m, "%Oh", tp); /* { dg-warning "flag|modifier" "bad %Oh" } */
strftime (s, m, "%Oj", tp); /* { dg-warning "flag|modifier|C" "bad %Oj" } */
@@ -88,7 +88,7 @@ foo (char *s, size_t m, const struct tm *tp)
strftime (s, m, "%Ot", tp); /* { dg-warning "flag|modifier" "bad %Ot" } */
strftime (s, m, "%OT", tp); /* { dg-warning "flag|modifier" "bad %OT" } */
strftime (s, m, "%Ox", tp); /* { dg-warning "flag|modifier" "bad %Ox" } */
- /* { dg-warning "in some locales" "2-digit year" { target *-*-* } 90 } */
+ /* { dg-warning "in some locales" "2-digit year" { target *-*-* } .-1 } */
strftime (s, m, "%OX", tp); /* { dg-warning "flag|modifier" "bad %OX" } */
strftime (s, m, "%OY", tp); /* { dg-warning "flag|modifier|C" "bad %OY" } */
strftime (s, m, "%Oz", tp); /* { dg-warning "flag|modifier|C" "bad %Oz" } */
diff --git a/gcc/testsuite/gcc.dg/format/cmn-err-1.c b/gcc/testsuite/gcc.dg/format/cmn-err-1.c
index fd5ca59d058..aea7779a2c3 100644
--- a/gcc/testsuite/gcc.dg/format/cmn-err-1.c
+++ b/gcc/testsuite/gcc.dg/format/cmn-err-1.c
@@ -30,7 +30,7 @@ int main()
cmn_err_func (0, "%i", i); /* { dg-warning "unknown|too many" } */
cmn_err_func (0, "%d", l); /* { dg-warning "expects argument" } */
cmn_err_func (0, "%b"); /* { dg-warning "'int'" } */
-/* { dg-warning "'char \\*'" "" { target *-*-solaris2.* } 32 } */
+/* { dg-warning "'char \\*'" "" { target *-*-solaris2.* } .-1 } */
cmn_err_func (0, "%b", i); /* { dg-warning "matching" } */
cmn_err_func (0, "%b", i, i); /* { dg-warning "expects argument" } */
cmn_err_func (0, "%b", string, i); /* { dg-warning "expects argument" } */
diff --git a/gcc/testsuite/gcc.dg/format/few-1.c b/gcc/testsuite/gcc.dg/format/few-1.c
index cf411409b64..6c5d63697ac 100644
--- a/gcc/testsuite/gcc.dg/format/few-1.c
+++ b/gcc/testsuite/gcc.dg/format/few-1.c
@@ -4,27 +4,27 @@
int f(int *ip, char *cp)
{
__builtin_printf ("%*.*s");
-/* { dg-warning "field width specifier '\\*' expects a matching 'int' argument" "width" { target *-*-* } 6 } */
-/* { dg-warning "field precision specifier '\\.\\*' expects a matching 'int' argument" "precision" { target *-*-* } 6 } */
-/* { dg-warning "format '%s' expects a matching 'char \\*' argument" "format" { target *-*-* } 6 } */
+/* { dg-warning "field width specifier '\\*' expects a matching 'int' argument" "width" { target *-*-* } .-1 } */
+/* { dg-warning "field precision specifier '\\.\\*' expects a matching 'int' argument" "precision" { target *-*-* } .-2 } */
+/* { dg-warning "format '%s' expects a matching 'char \\*' argument" "format" { target *-*-* } .-3 } */
__builtin_printf ("%*.*s", ip, *cp);
-/* { dg-warning "field width specifier '\\*' expects argument of type 'int'" "width" { target *-*-* } 10 } */
-/* { dg-warning "format '%s' expects a matching 'char \\*' argument" "format" { target *-*-* } 10 } */
+/* { dg-warning "field width specifier '\\*' expects argument of type 'int'" "width" { target *-*-* } .-1 } */
+/* { dg-warning "format '%s' expects a matching 'char \\*' argument" "format" { target *-*-* } .-2 } */
__builtin_printf ("%s %i", ip, ip);
-/* { dg-warning "format '%s' expects argument of type 'char \\*'" "char" { target *-*-* } 13 } */
-/* { dg-warning "format '%i' expects argument of type 'int'" "int" { target *-*-* } 13 } */
+/* { dg-warning "format '%s' expects argument of type 'char \\*'" "char" { target *-*-* } .-1 } */
+/* { dg-warning "format '%i' expects argument of type 'int'" "int" { target *-*-* } .-2 } */
__builtin_printf ("%s %i", cp);
-/* { dg-warning "format '%i' expects a matching 'int' argument" "" { target *-*-* } 16 } */
+/* { dg-warning "format '%i' expects a matching 'int' argument" "" { target *-*-* } .-1 } */
__builtin_printf ("%lc");
-/* { dg-warning "format '%lc' expects a matching 'wint_t' argument" "" { target *-*-* } 18 } */
+/* { dg-warning "format '%lc' expects a matching 'wint_t' argument" "" { target *-*-* } .-1 } */
__builtin_printf ("%lc", cp);
-/* { dg-warning "format '%lc' expects argument of type 'wint_t'" "" { target *-*-* } 20 } */
+/* { dg-warning "format '%lc' expects argument of type 'wint_t'" "" { target *-*-* } .-1 } */
__builtin_scanf ("%s");
-/* { dg-warning "format '%s' expects a matching 'char \\*' argument" "" { target *-*-* } 22 } */
+/* { dg-warning "format '%s' expects a matching 'char \\*' argument" "" { target *-*-* } .-1 } */
__builtin_scanf ("%i", cp);
-/* { dg-warning "format '%i' expects argument of type 'int \\*'" "" { target *-*-* } 24 } */
+/* { dg-warning "format '%i' expects argument of type 'int \\*'" "" { target *-*-* } .-1 } */
__builtin_scanf ("%lc");
-/* { dg-warning "format '%lc' expects a matching 'wchar_t \\*' argument" "" { target *-*-* } 26 } */
+/* { dg-warning "format '%lc' expects a matching 'wchar_t \\*' argument" "" { target *-*-* } .-1 } */
__builtin_scanf ("%lc", cp);
-/* { dg-warning "format '%lc' expects argument of type 'wchar_t \\*'" "" { target *-*-* } 28 } */
+/* { dg-warning "format '%lc' expects argument of type 'wchar_t \\*'" "" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/format/ms_branch-1.c b/gcc/testsuite/gcc.dg/format/ms_branch-1.c
index fe3f80e57d5..4e53cf020d3 100644
--- a/gcc/testsuite/gcc.dg/format/ms_branch-1.c
+++ b/gcc/testsuite/gcc.dg/format/ms_branch-1.c
@@ -24,5 +24,5 @@ foo (long l, int nfoo)
printf ((nfoo > 1) ? "%d foos" : ((nfoo > 0) ? "%ld foo" : "%d foos"), nfoo); /* { dg-warning "long int" "wrong type" } */
/* Extra arguments to NULL should be complained about. */
printf (NULL, "foo"); /* { dg-warning "too many" "NULL extra args" } */
- /* { dg-warning "null" "null format arg" { target *-*-* } 26 } */
+ /* { dg-warning "null" "null format arg" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/format/ms_unnamed-1.c b/gcc/testsuite/gcc.dg/format/ms_unnamed-1.c
index ac129428290..a3a0e6aa05c 100644
--- a/gcc/testsuite/gcc.dg/format/ms_unnamed-1.c
+++ b/gcc/testsuite/gcc.dg/format/ms_unnamed-1.c
@@ -21,5 +21,5 @@ f (TItype x)
{
printf("%d", x); /* { dg-warning "expects argument" } */
printf("%d", 141592653589793238462643383279502884197169399375105820974944); /* { dg-warning "expects argument" } */
- /* { dg-warning "unsigned only|too large" "constant" { target *-*-* } 23 } */
+ /* { dg-warning "unsigned only|too large" "constant" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/format/ms_va-1.c b/gcc/testsuite/gcc.dg/format/ms_va-1.c
index 97d2979e8f2..03c7c1904ed 100644
--- a/gcc/testsuite/gcc.dg/format/ms_va-1.c
+++ b/gcc/testsuite/gcc.dg/format/ms_va-1.c
@@ -10,5 +10,5 @@ void
foo (void *p)
{
printf ("%d", p); /* { dg-bogus "va_list" "wrong type in format warning" } */
- /* { dg-warning "format" "format error" { target *-*-* } 12 } */
+ /* { dg-warning "format" "format error" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/format/unnamed-1.c b/gcc/testsuite/gcc.dg/format/unnamed-1.c
index e54b06f3670..cb19c14a099 100644
--- a/gcc/testsuite/gcc.dg/format/unnamed-1.c
+++ b/gcc/testsuite/gcc.dg/format/unnamed-1.c
@@ -21,5 +21,5 @@ f (TItype x)
{
printf("%d", x); /* { dg-warning "expects argument" } */
printf("%d", 141592653589793238462643383279502884197169399375105820974944); /* { dg-warning "expects argument" } */
- /* { dg-warning "unsigned only|too large" "constant" { target *-*-* } 23 } */
+ /* { dg-warning "unsigned only|too large" "constant" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/format/va-1.c b/gcc/testsuite/gcc.dg/format/va-1.c
index 5f5eeab4e84..facb3ad4515 100644
--- a/gcc/testsuite/gcc.dg/format/va-1.c
+++ b/gcc/testsuite/gcc.dg/format/va-1.c
@@ -9,5 +9,5 @@ void
foo (void *p)
{
printf ("%d", p); /* { dg-bogus "va_list" "wrong type in format warning" } */
- /* { dg-warning "format" "format error" { target *-*-* } 11 } */
+ /* { dg-warning "format" "format error" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/format/xopen-1.c b/gcc/testsuite/gcc.dg/format/xopen-1.c
index 9b098fb1ca3..b278fccb4d4 100644
--- a/gcc/testsuite/gcc.dg/format/xopen-1.c
+++ b/gcc/testsuite/gcc.dg/format/xopen-1.c
@@ -110,15 +110,15 @@ foo (int i, unsigned int u, wint_t lc, wchar_t *ls, int *ip, double d,
warning about unused arguments rather than the more serious one about
argument gaps. */
scanf ("%3$d%1$d", ip, ip, ip); /* { dg-bogus "before used" "unused $ scanf pointer operand" } */
- /* { dg-warning "unused" "unused $ scanf pointer operand" { target *-*-* } 112 } */
+ /* { dg-warning "unused" "unused $ scanf pointer operand" { target *-*-* } .-1 } */
/* If there are non-pointer arguments unused at the end, this is also OK. */
scanf ("%3$d%1$d", ip, ip, ip, i); /* { dg-bogus "before used" "unused $ scanf pointer operand" } */
- /* { dg-warning "unused" "unused $ scanf pointer operand" { target *-*-* } 115 } */
+ /* { dg-warning "unused" "unused $ scanf pointer operand" { target *-*-* } .-1 } */
scanf ("%3$d%1$d", ip, i, ip); /* { dg-warning "before used" "unused $ scanf non-pointer operand" } */
/* Can't check the arguments in the vscanf case, so should suppose the
lesser problem. */
vscanf ("%3$d%1$d", va); /* { dg-bogus "before used" "unused $ scanf pointer operand" } */
- /* { dg-warning "unused" "unused $ scanf pointer operand" { target *-*-* } 120 } */
+ /* { dg-warning "unused" "unused $ scanf pointer operand" { target *-*-* } .-1 } */
scanf ("%2$*d%1$d", ip, ip); /* { dg-warning "operand" "operand number with suppression" } */
printf ("%1$d%1$d", i);
scanf ("%1$d%1$d", ip); /* { dg-warning "more than once" "multiple use of scanf argument" } */
diff --git a/gcc/testsuite/gcc.dg/funcdef-var-1.c b/gcc/testsuite/gcc.dg/funcdef-var-1.c
index 63a56838afe..cef7026c3df 100644
--- a/gcc/testsuite/gcc.dg/funcdef-var-1.c
+++ b/gcc/testsuite/gcc.dg/funcdef-var-1.c
@@ -5,6 +5,6 @@
/* { dg-options "-Wmissing-prototypes" } */
extern __typeof(foo) foo __asm__(""); /* { dg-error "undeclared" } */
-/* { dg-message "note: previous declaration" "previous declaration" { target *-*-* } 7 } */
+/* { dg-message "note: previous declaration" "previous declaration" { target *-*-* } .-1 } */
void *foo (void) {} /* { dg-error "redeclared as different kind of symbol" } */
-/* { dg-warning "no previous prototype" "no previous prototype" { target *-*-* } 9 } */
+/* { dg-warning "no previous prototype" "no previous prototype" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/funcdef-var-2.c b/gcc/testsuite/gcc.dg/funcdef-var-2.c
index b3eb2ce6a01..e978050b479 100644
--- a/gcc/testsuite/gcc.dg/funcdef-var-2.c
+++ b/gcc/testsuite/gcc.dg/funcdef-var-2.c
@@ -6,6 +6,6 @@
/* { dg-options "-Wmissing-prototypes" } */
int foo;
-/* { dg-message "note: previous declaration" "previous declaration" { target *-*-* } 8 } */
+/* { dg-message "note: previous declaration" "previous declaration" { target *-*-* } .-1 } */
void foo () {} /* { dg-error "redeclared as different kind of symbol" } */
-/* { dg-warning "no previous prototype" "no previous prototype" { target *-*-* } 10 } */
+/* { dg-warning "no previous prototype" "no previous prototype" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/gnu89-const-expr-1.c b/gcc/testsuite/gcc.dg/gnu89-const-expr-1.c
index 4fd6671a4db..0af57873143 100644
--- a/gcc/testsuite/gcc.dg/gnu89-const-expr-1.c
+++ b/gcc/testsuite/gcc.dg/gnu89-const-expr-1.c
@@ -14,7 +14,7 @@ f (void)
/* Integer constant expressions may not contain statement
expressions (not a permitted operand). */
E1 = (1 ? 0 : ({ 0; })), /* { dg-error "constant expression" } */
- /* { dg-error "ISO C forbids braced-groups" "ISO" { target *-*-* } 16 } */
+ /* { dg-error "ISO C forbids braced-groups" "ISO" { target *-*-* } .-1 } */
/* Real and imaginary parts act like other arithmetic
operators. */
E2 = __real__ (1 ? 0 : i++), /* { dg-error "constant expression" } */
@@ -30,27 +30,27 @@ f (void)
/* Conditional expressions with omitted arguments act like the
standard type. */
E10 = (1 ? : i++), /* { dg-error "constant expression" } */
- /* { dg-error "ISO C forbids omitting" "ISO" { target *-*-* } 32 } */
+ /* { dg-error "ISO C forbids omitting" "ISO" { target *-*-* } .-1 } */
E11 = (1 ? : 0) /* { dg-error "ISO C forbids omitting" } */
};
enum e2 {
/* Complex integer constants may be cast directly to integer
types, but not after further arithmetic on them. */
F1 = (int) (_Complex int) 2i, /* { dg-error "constant expression" } */
- /* { dg-error "complex" "complex" { target *-*-* } 39 } */
- /* { dg-error "imaginary" "imaginary" { target *-*-* } 39 } */
+ /* { dg-error "complex" "complex" { target *-*-* } .-1 } */
+ /* { dg-error "imaginary" "imaginary" { target *-*-* } .-2 } */
F2 = (int) +2i, /* { dg-error "constant expression" } */
- /* { dg-error "imaginary" "ISO" { target *-*-* } 42 } */
+ /* { dg-error "imaginary" "ISO" { target *-*-* } .-1 } */
F3 = (int) (1 + 2i), /* { dg-error "constant expression" } */
- /* { dg-error "imaginary" "ISO" { target *-*-* } 44 } */
+ /* { dg-error "imaginary" "ISO" { target *-*-* } .-1 } */
F4 = (int) 2i /* { dg-error "imaginary" } */
};
static double dr = __real__ (1.0 + 2.0i);
- /* { dg-error "imaginary" "ISO" { target *-*-* } 48 } */
+ /* { dg-error "imaginary" "ISO" { target *-*-* } .-1 } */
static double di = __imag__ (1.0 + 2.0i);
- /* { dg-error "imaginary" "ISO" { target *-*-* } 50 } */
+ /* { dg-error "imaginary" "ISO" { target *-*-* } .-1 } */
/* Statement expressions allowed in unevaluated subexpressions in
initializers in gnu99 but not gnu89. */
static int j = (1 ? 0 : ({ 0; })); /* { dg-error "constant expression" } */
- /* { dg-error "braced" "ISO" { target *-*-* } 54 } */
+ /* { dg-error "braced" "ISO" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/gnu89-const-expr-2.c b/gcc/testsuite/gcc.dg/gnu89-const-expr-2.c
index fd4d18ed908..9d8678f5771 100644
--- a/gcc/testsuite/gcc.dg/gnu89-const-expr-2.c
+++ b/gcc/testsuite/gcc.dg/gnu89-const-expr-2.c
@@ -19,8 +19,8 @@ f (void)
constant expression. */
a = __builtin_choose_expr ((void *)0, b, c); /* { dg-error "constant" } */
a = __builtin_choose_expr (0 * (INT_MAX + 1), b, c); /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 21 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
a = __builtin_choose_expr (1 / 0, 0, 0); /* { dg-warning "division by zero" } */
- /* { dg-error "not a constant" "error" { target *-*-* } 23 } */
+ /* { dg-error "not a constant" "error" { target *-*-* } .-1 } */
a = __builtin_choose_expr ((1 ? 1 : a), b, c); /* { dg-error "constant" } */
}
diff --git a/gcc/testsuite/gcc.dg/gnu90-const-expr-1.c b/gcc/testsuite/gcc.dg/gnu90-const-expr-1.c
index 3f7f1af5de0..0a76ff68113 100644
--- a/gcc/testsuite/gcc.dg/gnu90-const-expr-1.c
+++ b/gcc/testsuite/gcc.dg/gnu90-const-expr-1.c
@@ -14,7 +14,7 @@ f (void)
/* Integer constant expressions may not contain statement
expressions (not a permitted operand). */
E1 = (1 ? 0 : ({ 0; })), /* { dg-error "constant expression" } */
- /* { dg-error "ISO C forbids braced-groups" "ISO" { target *-*-* } 16 } */
+ /* { dg-error "ISO C forbids braced-groups" "ISO" { target *-*-* } .-1 } */
/* Real and imaginary parts act like other arithmetic
operators. */
E2 = __real__ (1 ? 0 : i++), /* { dg-error "constant expression" } */
@@ -30,27 +30,27 @@ f (void)
/* Conditional expressions with omitted arguments act like the
standard type. */
E10 = (1 ? : i++), /* { dg-error "constant expression" } */
- /* { dg-error "ISO C forbids omitting" "ISO" { target *-*-* } 32 } */
+ /* { dg-error "ISO C forbids omitting" "ISO" { target *-*-* } .-1 } */
E11 = (1 ? : 0) /* { dg-error "ISO C forbids omitting" } */
};
enum e2 {
/* Complex integer constants may be cast directly to integer
types, but not after further arithmetic on them. */
F1 = (int) (_Complex int) 2i, /* { dg-error "constant expression" } */
- /* { dg-error "complex" "complex" { target *-*-* } 39 } */
- /* { dg-error "imaginary" "imaginary" { target *-*-* } 39 } */
+ /* { dg-error "complex" "complex" { target *-*-* } .-1 } */
+ /* { dg-error "imaginary" "imaginary" { target *-*-* } .-2 } */
F2 = (int) +2i, /* { dg-error "constant expression" } */
- /* { dg-error "imaginary" "ISO" { target *-*-* } 42 } */
+ /* { dg-error "imaginary" "ISO" { target *-*-* } .-1 } */
F3 = (int) (1 + 2i), /* { dg-error "constant expression" } */
- /* { dg-error "imaginary" "ISO" { target *-*-* } 44 } */
+ /* { dg-error "imaginary" "ISO" { target *-*-* } .-1 } */
F4 = (int) 2i /* { dg-error "imaginary" } */
};
static double dr = __real__ (1.0 + 2.0i);
- /* { dg-error "imaginary" "ISO" { target *-*-* } 48 } */
+ /* { dg-error "imaginary" "ISO" { target *-*-* } .-1 } */
static double di = __imag__ (1.0 + 2.0i);
- /* { dg-error "imaginary" "ISO" { target *-*-* } 50 } */
+ /* { dg-error "imaginary" "ISO" { target *-*-* } .-1 } */
/* Statement expressions allowed in unevaluated subexpressions in
initializers in gnu99 but not gnu89. */
static int j = (1 ? 0 : ({ 0; })); /* { dg-error "constant expression" } */
- /* { dg-error "braced" "ISO" { target *-*-* } 54 } */
+ /* { dg-error "braced" "ISO" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/gnu99-const-expr-1.c b/gcc/testsuite/gcc.dg/gnu99-const-expr-1.c
index 3f5f25e6d2e..4148cd9f079 100644
--- a/gcc/testsuite/gcc.dg/gnu99-const-expr-1.c
+++ b/gcc/testsuite/gcc.dg/gnu99-const-expr-1.c
@@ -14,7 +14,7 @@ f (void)
/* Integer constant expressions may not contain statement
expressions (not a permitted operand). */
E1 = (1 ? 0 : ({ 0; })), /* { dg-error "constant expression" } */
- /* { dg-error "ISO C forbids braced-groups" "ISO" { target *-*-* } 16 } */
+ /* { dg-error "ISO C forbids braced-groups" "ISO" { target *-*-* } .-1 } */
/* Real and imaginary parts act like other arithmetic
operators. */
E2 = __real__ (1 ? 0 : i++), /* { dg-error "constant expression" } */
@@ -30,27 +30,27 @@ f (void)
/* Conditional expressions with omitted arguments act like the
standard type. */
E10 = (1 ? : i++), /* { dg-error "constant expression" } */
- /* { dg-error "ISO C forbids omitting" "ISO" { target *-*-* } 32 } */
+ /* { dg-error "ISO C forbids omitting" "ISO" { target *-*-* } .-1 } */
E11 = (1 ? : 0) /* { dg-error "ISO C forbids omitting" } */
};
enum e2 {
/* Complex integer constants may be cast directly to integer
types, but not after further arithmetic on them. */
F1 = (int) (_Complex int) 2i, /* { dg-error "constant expression" } */
- /* { dg-error "complex" "complex" { target *-*-* } 39 } */
- /* { dg-error "imaginary" "imaginary" { target *-*-* } 39 } */
+ /* { dg-error "complex" "complex" { target *-*-* } .-1 } */
+ /* { dg-error "imaginary" "imaginary" { target *-*-* } .-2 } */
F2 = (int) +2i, /* { dg-error "constant expression" } */
- /* { dg-error "imaginary" "ISO" { target *-*-* } 42 } */
+ /* { dg-error "imaginary" "ISO" { target *-*-* } .-1 } */
F3 = (int) (1 + 2i), /* { dg-error "constant expression" } */
- /* { dg-error "imaginary" "ISO" { target *-*-* } 44 } */
+ /* { dg-error "imaginary" "ISO" { target *-*-* } .-1 } */
F4 = (int) 2i /* { dg-error "imaginary" } */
};
static double dr = __real__ (1.0 + 2.0i);
- /* { dg-error "imaginary" "ISO" { target *-*-* } 48 } */
+ /* { dg-error "imaginary" "ISO" { target *-*-* } .-1 } */
static double di = __imag__ (1.0 + 2.0i);
- /* { dg-error "imaginary" "ISO" { target *-*-* } 50 } */
+ /* { dg-error "imaginary" "ISO" { target *-*-* } .-1 } */
/* Statement expressions allowed in unevaluated subexpressions in
initializers in gnu99 but not gnu89. */
static int j = (1 ? 0 : ({ 0; }));
- /* { dg-error "braced" "ISO" { target *-*-* } 54 } */
+ /* { dg-error "braced" "ISO" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/gnu99-const-expr-2.c b/gcc/testsuite/gcc.dg/gnu99-const-expr-2.c
index f9acef81a94..4ce5445c61d 100644
--- a/gcc/testsuite/gcc.dg/gnu99-const-expr-2.c
+++ b/gcc/testsuite/gcc.dg/gnu99-const-expr-2.c
@@ -19,8 +19,8 @@ f (void)
constant expression. */
a = __builtin_choose_expr ((void *)0, b, c); /* { dg-error "constant" } */
a = __builtin_choose_expr (0 * (INT_MAX + 1), b, c); /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 21 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
a = __builtin_choose_expr (1 / 0, 0, 0); /* { dg-warning "division by zero" } */
- /* { dg-error "not a constant" "error" { target *-*-* } 23 } */
+ /* { dg-error "not a constant" "error" { target *-*-* } .-1 } */
a = __builtin_choose_expr ((1 ? 1 : a), b, c); /* { dg-error "constant" } */
}
diff --git a/gcc/testsuite/gcc.dg/gnu99-init-2.c b/gcc/testsuite/gcc.dg/gnu99-init-2.c
index a4728a60884..5ccdc118b46 100644
--- a/gcc/testsuite/gcc.dg/gnu99-init-2.c
+++ b/gcc/testsuite/gcc.dg/gnu99-init-2.c
@@ -5,7 +5,7 @@
/* { dg-options "-std=gnu99" } */
int a[] = { [(void *)0 ... 0] = 1 }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "integer type|near init" "pointer designator" { target *-*-* } 7 } */
+/* { dg-error "integer type|near init" "pointer designator" { target *-*-* } .-1 } */
int b[] = { [0 ... (void *)0] = 1 }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "integer type|near init" "pointer designator" { target *-*-* } 10 } */
+/* { dg-error "integer type|near init" "pointer designator" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/gomp/_Atomic-5.c b/gcc/testsuite/gcc.dg/gomp/_Atomic-5.c
index 9b7f58f0329..0472402570f 100644
--- a/gcc/testsuite/gcc.dg/gomp/_Atomic-5.c
+++ b/gcc/testsuite/gcc.dg/gomp/_Atomic-5.c
@@ -25,25 +25,25 @@ f1 (void)
#pragma omp target map(from: b[1:1]) /* { dg-error "'_Atomic' 'b' in 'map' clause" } */
;
#pragma omp target map(to: c.a) /* { dg-error "'_Atomic' 'c.a' in 'map' clause" } */
- /* { dg-warning "accessing a member 'a' of an atomic structure 'c'" "" { target *-*-* } 27 } */
+ /* { dg-warning "accessing a member 'a' of an atomic structure 'c'" "" { target *-*-* } .-1 } */
;
#pragma omp target map(to: c.b[1]) /* { dg-error "'_Atomic' 'c.b' in 'map' clause" } */
- /* { dg-warning "accessing a member 'b' of an atomic structure 'c'" "" { target *-*-* } 30 } */
+ /* { dg-warning "accessing a member 'b' of an atomic structure 'c'" "" { target *-*-* } .-1 } */
;
#pragma omp target data map(c) /* { dg-error "'_Atomic' 'c' in 'map' clause" } */
- /* { dg-error "must contain at least one" "" { target *-*-* } 33 } */
+ /* { dg-error "must contain at least one" "" { target *-*-* } .-1 } */
{
#pragma omp target update to (c.a) /* { dg-error "'_Atomic' 'c.a' in 'to' clause" } */
- /* { dg-error "must contain at least one" "" { target *-*-* } 36 } */
- /* { dg-warning "accessing a member 'a' of an atomic structure 'c'" "" { target *-*-* } 36 } */
+ /* { dg-error "must contain at least one" "" { target *-*-* } .-1 } */
+ /* { dg-warning "accessing a member 'a' of an atomic structure 'c'" "" { target *-*-* } .-2 } */
#pragma omp target update from (c.b[1]) /* { dg-error "'_Atomic' 'c.b' in 'from' clause" } */
- /* { dg-error "must contain at least one" "" { target *-*-* } 39 } */
- /* { dg-warning "accessing a member 'b' of an atomic structure 'c'" "" { target *-*-* } 39 } */
+ /* { dg-error "must contain at least one" "" { target *-*-* } .-1 } */
+ /* { dg-warning "accessing a member 'b' of an atomic structure 'c'" "" { target *-*-* } .-2 } */
#pragma omp target update to (c) /* { dg-error "'_Atomic' 'c' in 'to' clause" } */
- /* { dg-error "must contain at least one" "" { target *-*-* } 42 } */
+ /* { dg-error "must contain at least one" "" { target *-*-* } .-1 } */
}
#pragma omp target map(to: c.c[0:]) /* { dg-error "'_Atomic' 'c.c' in 'map' clause" } */
- /* { dg-warning "accessing a member 'c' of an atomic structure 'c'" "" { target *-*-* } 45 } */
+ /* { dg-warning "accessing a member 'c' of an atomic structure 'c'" "" { target *-*-* } .-1 } */
;
#pragma omp target map(to: p[1:2]) /* { dg-error "'_Atomic' 'p' in 'map' clause" } */
;
diff --git a/gcc/testsuite/gcc.dg/gomp/appendix-a/a.24.1.c b/gcc/testsuite/gcc.dg/gomp/appendix-a/a.24.1.c
index 3e820b7f98f..1333b70582f 100644
--- a/gcc/testsuite/gcc.dg/gomp/appendix-a/a.24.1.c
+++ b/gcc/testsuite/gcc.dg/gomp/appendix-a/a.24.1.c
@@ -19,7 +19,7 @@ a24 (int a)
x = c; /* O.K. - x is threadprivate */
/* - c has const-qualified type */
z[i] = y;
- /* { dg-error "'i' not specified" "" { target *-*-* } 21 } */
+ /* { dg-error "'i' not specified" "" { target *-*-* } .-1 } */
/* { dg-error "enclosing 'parallel'" "" { target *-*-* } 13 } */
/* { dg-error "'y' not specified" "" { target *-*-* } 21 } */
#pragma omp for firstprivate(y)
@@ -29,7 +29,7 @@ a24 (int a)
/* - y is listed in firstprivate clause */
}
z[l] = t;
- /* { dg-error "'l' not specified" "" { target *-*-* } 31 } */
- /* { dg-error "'t' not specified" "" { target *-*-* } 31 } */
+ /* { dg-error "'l' not specified" "" { target *-*-* } .-1 } */
+ /* { dg-error "'t' not specified" "" { target *-*-* } .-2 } */
}
}
diff --git a/gcc/testsuite/gcc.dg/gomp/atomic-5.c b/gcc/testsuite/gcc.dg/gomp/atomic-5.c
index 0ad9d3b48c2..68ead29b86d 100644
--- a/gcc/testsuite/gcc.dg/gomp/atomic-5.c
+++ b/gcc/testsuite/gcc.dg/gomp/atomic-5.c
@@ -35,5 +35,5 @@ void f1(void)
;
/* Check that we didn't get stuck on the pragma eol marker. */
undef; /* { dg-error "" } */
- /* { dg-message "undeclared identifier is reported only once" "reminder" { target *-*-* } 37 } */
+ /* { dg-message "undeclared identifier is reported only once" "reminder" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/gomp/linear-1.c b/gcc/testsuite/gcc.dg/gomp/linear-1.c
index cf294c2fc18..f906e3991bb 100644
--- a/gcc/testsuite/gcc.dg/gomp/linear-1.c
+++ b/gcc/testsuite/gcc.dg/gomp/linear-1.c
@@ -31,7 +31,7 @@ void
f4 (void)
{
#pragma omp for linear (i:1) linear (j:2) collapse(2) /* { dg-error "iteration variable .i. should not be linear" } */
- for (i = 0; i < 32; i++) /* { dg-error "iteration variable .j. should not be linear" "" { target *-*-* } 33 } */
+ for (i = 0; i < 32; i++) /* { dg-error "iteration variable .j. should not be linear" "" { target *-*-* } .-1 } */
for (j = 0; j < 32; j+=2)
;
}
@@ -49,7 +49,7 @@ void
f6 (void)
{
#pragma omp parallel for linear (i:1) collapse(2) linear (j:2) /* { dg-error "iteration variable .i. should not be linear" } */
- for (i = 0; i < 32; i++) /* { dg-error "iteration variable .j. should not be linear" "" { target *-*-* } 51 } */
+ for (i = 0; i < 32; i++) /* { dg-error "iteration variable .j. should not be linear" "" { target *-*-* } .-1 } */
for (j = 0; j < 32; j+=2)
;
}
diff --git a/gcc/testsuite/gcc.dg/gomp/pr67500.c b/gcc/testsuite/gcc.dg/gomp/pr67500.c
index 13a6903d72d..d7715dba246 100644
--- a/gcc/testsuite/gcc.dg/gomp/pr67500.c
+++ b/gcc/testsuite/gcc.dg/gomp/pr67500.c
@@ -3,7 +3,7 @@
/* { dg-options "-fopenmp" } */
#pragma omp declare simd simdlen(d) /* { dg-error "clause expression must be positive constant integer expression" } */
-void f1 (int); /* { dg-error "undeclared here" "" { target *-*-* } 5 } */
+void f1 (int); /* { dg-error "undeclared here" "" { target *-*-* } .-1 } */
#pragma omp declare simd simdlen(0.5) /* { dg-error "clause expression must be positive constant integer expression" } */
void f2 (int);
#pragma omp declare simd simdlen(-2) /* { dg-error "clause expression must be positive constant integer expression" } */
@@ -16,7 +16,7 @@ foo (int *p)
{
int i;
#pragma omp simd safelen(d) /* { dg-error "must be positive constant integer expression" } */
- for (i = 0; i < 16; ++i) /* { dg-error "undeclared" "" { target *-*-* } 18 } */
+ for (i = 0; i < 16; ++i) /* { dg-error "undeclared" "" { target *-*-* } .-1 } */
;
#pragma omp simd safelen(0.5) /* { dg-error "must be positive constant integer expression" } */
for (i = 0; i < 16; ++i)
diff --git a/gcc/testsuite/gcc.dg/init-bad-1.c b/gcc/testsuite/gcc.dg/init-bad-1.c
index 6599de097db..a7e8c5a80a2 100644
--- a/gcc/testsuite/gcc.dg/init-bad-1.c
+++ b/gcc/testsuite/gcc.dg/init-bad-1.c
@@ -10,8 +10,8 @@ void h(a)
int a = 1; /* { dg-error "parameter 'a' is initialized" } */
{
struct s x = { 0 }; /* { dg-error "variable 'x' has initializer but incomplete type" } */
- /* { dg-warning "excess elements|near init" "excess" { target *-*-* } 12 } */
- /* { dg-error "storage size" "size" { target *-*-* } 12 } */
+ /* { dg-warning "excess elements|near init" "excess" { target *-*-* } .-1 } */
+ /* { dg-error "storage size" "size" { target *-*-* } .-2 } */
}
char s[1] = "x";
@@ -19,27 +19,27 @@ char s1[1] = { "x" };
char t[1] = "xy"; /* { dg-warning "initializer-string for array of chars is too long" } */
char t1[1] = { "xy" }; /* { dg-warning "initializer-string for array of chars is too long" } */
char u[1] = { "x", "x" }; /* { dg-error "excess elements in char array initializer" } */
-/* { dg-message "near init" "near" { target *-*-* } 21 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int i = { }; /* { dg-error "empty scalar initializer" } */
-/* { dg-message "near init" "near" { target *-*-* } 24 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int j = { 1 };
int k = { 1, 2 }; /* { dg-warning "excess elements in scalar initializer" } */
-/* { dg-message "near init" "near" { target *-*-* } 29 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int a1[1] = { [1] = 0 }; /* { dg-error "array index in initializer exceeds array bounds" } */
-/* { dg-message "near init" "near" { target *-*-* } 32 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int a2[1] = { [-1] = 0 }; /* { dg-error "array index in initializer exceeds array bounds" } */
-/* { dg-message "near init" "near" { target *-*-* } 34 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int a3[1] = { [0 ... 1] = 0 }; /* { dg-error "array index range in initializer exceeds array bounds" } */
-/* { dg-message "near init" "near" { target *-*-* } 36 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int a4[2] = { [1 ... 0] = 0 }; /* { dg-error "empty index range in initializer" } */
-/* { dg-message "near init" "near" { target *-*-* } 38 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int a5[2] = { [0 ... 2] = 0 }; /* { dg-error "array index range in initializer exceeds array bounds" } */
-/* { dg-message "near init" "near" { target *-*-* } 40 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int a6[2] = { [-1 ... 1] = 0 }; /* { dg-error "array index in initializer exceeds array bounds" } */
-/* { dg-message "near init" "near" { target *-*-* } 42 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int a7[] = { [-1 ... 1] = 0 }; /* { dg-error "array index in initializer exceeds array bounds" } */
-/* { dg-message "near init" "near" { target *-*-* } 44 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/init-bad-2.c b/gcc/testsuite/gcc.dg/init-bad-2.c
index e151709308c..dad57b92baa 100644
--- a/gcc/testsuite/gcc.dg/init-bad-2.c
+++ b/gcc/testsuite/gcc.dg/init-bad-2.c
@@ -11,8 +11,8 @@ void h(a)
int a = 1; /* { dg-error "parameter 'a' is initialized" } */
{
struct s x = { 0 }; /* { dg-error "variable 'x' has initializer but incomplete type" } */
- /* { dg-message "excess elements|near init" "near" { target *-*-* } 13 } */
- /* { dg-error "storage size" "size" { target *-*-* } 13 } */
+ /* { dg-message "excess elements|near init" "near" { target *-*-* } .-1 } */
+ /* { dg-error "storage size" "size" { target *-*-* } .-2 } */
}
char s[1] = "x";
@@ -20,14 +20,14 @@ char s1[1] = { "x" };
char t[1] = "xy"; /* { dg-warning "initializer-string for array of chars is too long" } */
char t1[1] = { "xy" }; /* { dg-warning "initializer-string for array of chars is too long" } */
char u[1] = { "x", "x" }; /* { dg-error "excess elements in char array initializer" } */
-/* { dg-message "near init" "near" { target *-*-* } 22 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int j = { 1 };
int k = { 1, 2 }; /* { dg-warning "excess elements in scalar initializer" } */
-/* { dg-message "near init" "near" { target *-*-* } 27 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int a1[1] = { [1] = 0 }; /* { dg-error "array index in initializer exceeds array bounds" } */
-/* { dg-message "near init" "near" { target *-*-* } 30 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int a2[1] = { [-1] = 0 }; /* { dg-error "array index in initializer exceeds array bounds" } */
-/* { dg-message "near init" "near" { target *-*-* } 32 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/init-bad-3.c b/gcc/testsuite/gcc.dg/init-bad-3.c
index 82a632a02bc..d320e0e399f 100644
--- a/gcc/testsuite/gcc.dg/init-bad-3.c
+++ b/gcc/testsuite/gcc.dg/init-bad-3.c
@@ -11,8 +11,8 @@ void h(a)
int a = 1; /* { dg-error "parameter 'a' is initialized" } */
{
struct s x = { 0 }; /* { dg-error "variable 'x' has initializer but incomplete type" } */
- /* { dg-message "excess elements|near init" "near" { target *-*-* } 13 } */
- /* { dg-error "storage size" "size" { target *-*-* } 13 } */
+ /* { dg-message "excess elements|near init" "near" { target *-*-* } .-1 } */
+ /* { dg-error "storage size" "size" { target *-*-* } .-2 } */
}
char s[1] = "x";
@@ -20,14 +20,14 @@ char s1[1] = { "x" };
char t[1] = "xy"; /* { dg-error "initializer-string for array of chars is too long" } */
char t1[1] = { "xy" }; /* { dg-error "initializer-string for array of chars is too long" } */
char u[1] = { "x", "x" }; /* { dg-error "excess elements in char array initializer" } */
-/* { dg-message "near init" "near" { target *-*-* } 22 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int j = { 1 };
int k = { 1, 2 }; /* { dg-error "excess elements in scalar initializer" } */
-/* { dg-message "near init" "near" { target *-*-* } 27 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int a1[1] = { [1] = 0 }; /* { dg-error "array index in initializer exceeds array bounds" } */
-/* { dg-message "near init" "near" { target *-*-* } 30 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
int a2[1] = { [-1] = 0 }; /* { dg-error "array index in initializer exceeds array bounds" } */
-/* { dg-message "near init" "near" { target *-*-* } 32 } */
+/* { dg-message "near init" "near" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/init-string-1.c b/gcc/testsuite/gcc.dg/init-string-1.c
index a33f741aea1..19bdf647066 100644
--- a/gcc/testsuite/gcc.dg/init-string-1.c
+++ b/gcc/testsuite/gcc.dg/init-string-1.c
@@ -12,15 +12,15 @@ char *c = (("c"));
char d[] = "d";
char e[] = ("e"); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } 14 } */
+/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } .-1 } */
char f[] = (("f")); /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } 16 } */
+/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } .-1 } */
signed char g[] = { "d" };
unsigned char h[] = { ("e") }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } 20 } */
+/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } .-1 } */
signed char i[] = { (("f")) }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } 22 } */
+/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } .-1 } */
struct s { char a[10]; int b; wchar_t c[10]; };
@@ -33,14 +33,14 @@ struct s j = {
/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } 31 } */
struct s k = {
(("k")), /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "parenthesized|near init" "paren array" { target *-*-* } 35 } */
+ /* { dg-error "parenthesized|near init" "paren array" { target *-*-* } .-1 } */
1,
L"k"
};
struct s l = {
.c = (L"l"), /* { dg-bogus "warning" "warning in place of error" } */
- /* { dg-error "parenthesized|near init" "paren array" { target *-*-* } 42 } */
+ /* { dg-error "parenthesized|near init" "paren array" { target *-*-* } .-1 } */
.a = "l"
};
@@ -53,7 +53,7 @@ struct s m = {
char *n = (char []){ "n" };
char *o = (char []){ ("o") }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } 55 } */
+/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } .-1 } */
wchar_t *p = (wchar_t [5]){ (L"p") }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } 58 } */
+/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/label-compound-stmt-1.c b/gcc/testsuite/gcc.dg/label-compound-stmt-1.c
index 71411631ba2..2f8fa4e65c2 100644
--- a/gcc/testsuite/gcc.dg/label-compound-stmt-1.c
+++ b/gcc/testsuite/gcc.dg/label-compound-stmt-1.c
@@ -4,4 +4,4 @@
/* { dg-options "" } */
void f(void) { g: } /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "label|parse|syntax" "label at end of compound statement" { target *-*-* } 6 } */
+/* { dg-error "label|parse|syntax" "label at end of compound statement" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/label-decl-2.c b/gcc/testsuite/gcc.dg/label-decl-2.c
index 6706a706bfe..2ba1f63d2de 100644
--- a/gcc/testsuite/gcc.dg/label-decl-2.c
+++ b/gcc/testsuite/gcc.dg/label-decl-2.c
@@ -8,7 +8,7 @@ typedef int b;
void
f (void)
{
- __label__ a, b, c, d; /* { dg-warning "ISO C forbids label declarations" "label decls" { target *-*-* } 11 } */
+ __label__ a, b, c, d; /* { dg-warning "ISO C forbids label declarations" "label decls" { target *-*-* } . } */
__extension__ (void)&&d; /* { dg-error "label 'd' used but not defined" } */
goto c; /* { dg-error "label 'c' used but not defined" } */
a: (void)0;
diff --git a/gcc/testsuite/gcc.dg/label-decl-4.c b/gcc/testsuite/gcc.dg/label-decl-4.c
index 3cfe965fd5d..5661e019d1e 100644
--- a/gcc/testsuite/gcc.dg/label-decl-4.c
+++ b/gcc/testsuite/gcc.dg/label-decl-4.c
@@ -7,7 +7,7 @@ void
f (void)
{
__label__ a, b, a; /* { dg-error "duplicate label declaration 'a'" } */
- /* { dg-message "note: previous declaration of 'a' was here" "previous" { target *-*-* } 9 } */
+ /* { dg-message "note: previous declaration of 'a' was here" "previous" { target *-*-* } .-1 } */
__label__ c; /* { dg-message "note: previous declaration of 'c' was here" } */
__label__ c; /* { dg-error "duplicate label declaration 'c'" } */
return;
diff --git a/gcc/testsuite/gcc.dg/large-size-array-2.c b/gcc/testsuite/gcc.dg/large-size-array-2.c
index bff2f8250fb..da138586727 100644
--- a/gcc/testsuite/gcc.dg/large-size-array-2.c
+++ b/gcc/testsuite/gcc.dg/large-size-array-2.c
@@ -4,4 +4,4 @@
static char * name[] = {
[0x80000000] = "bar"
};
-/* { dg-error "too large" "" { target { { ! lp64 } && { ! llp64 } } } 6 } */
+/* { dg-error "too large" "" { target { { ! lp64 } && { ! llp64 } } } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/large-size-array-4.c b/gcc/testsuite/gcc.dg/large-size-array-4.c
index f6099b9152b..f9f94b29bd3 100644
--- a/gcc/testsuite/gcc.dg/large-size-array-4.c
+++ b/gcc/testsuite/gcc.dg/large-size-array-4.c
@@ -4,4 +4,4 @@
static char * name[] = {
[0x80000000] = "bar"
};
-/* { dg-error "too large" "" { target { { ! lp64 } && { ! llp64 } } } 6 } */
+/* { dg-error "too large" "" { target { { ! lp64 } && { ! llp64 } } } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/lvalue-6.c b/gcc/testsuite/gcc.dg/lvalue-6.c
index af69de4df4c..6a847d94780 100644
--- a/gcc/testsuite/gcc.dg/lvalue-6.c
+++ b/gcc/testsuite/gcc.dg/lvalue-6.c
@@ -8,7 +8,7 @@ void f1 (void) { &v; } /* { dg-error "taking address of expression of type 'void
extern void *pv;
void f2 (void) { &*pv; } /* { dg-warning "dereferencing" } */
-/* { dg-error "taking address of expression of type 'void'" "C90 only error" { target *-*-* } 10 } */
+/* { dg-error "taking address of expression of type 'void'" "C90 only error" { target *-*-* } .-1 } */
extern const void cv;
void f3 (void) { &cv; }
diff --git a/gcc/testsuite/gcc.dg/m-un-2.c b/gcc/testsuite/gcc.dg/m-un-2.c
index 0b96628355b..ffe68cdc505 100644
--- a/gcc/testsuite/gcc.dg/m-un-2.c
+++ b/gcc/testsuite/gcc.dg/m-un-2.c
@@ -15,8 +15,8 @@ struct vtable {
struct vtable mtable = {
malloc,
free
-}; /* { dg-warning "missing initializer" "warning regression" { target *-*-* } {18} } */
- /* { dg-message "declared here" "warning regression 2" { target *-*-* } {12} } */
+}; /* { dg-warning "missing initializer" "warning regression" { target *-*-* } . } */
+ /* { dg-message "declared here" "warning regression 2" { target *-*-* } 12 } */
/* With designated initializers, we assume you meant to leave out the
initialization of any blank fields. */
diff --git a/gcc/testsuite/gcc.dg/multiple-overflow-warn-1.c b/gcc/testsuite/gcc.dg/multiple-overflow-warn-1.c
index be7b3b85685..cea2e3363b8 100644
--- a/gcc/testsuite/gcc.dg/multiple-overflow-warn-1.c
+++ b/gcc/testsuite/gcc.dg/multiple-overflow-warn-1.c
@@ -8,6 +8,6 @@ int
g (void)
{
return - - - - -INT_MIN; /* { dg-bogus "integer overflow in expression.*integer overflow in expression" } */
- /* { dg-warning "integer overflow in expression" "" { target *-*-* } 10 } */
+ /* { dg-warning "integer overflow in expression" "" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/multiple-overflow-warn-2.c b/gcc/testsuite/gcc.dg/multiple-overflow-warn-2.c
index 8a4e9e5c274..595b6835e59 100644
--- a/gcc/testsuite/gcc.dg/multiple-overflow-warn-2.c
+++ b/gcc/testsuite/gcc.dg/multiple-overflow-warn-2.c
@@ -8,5 +8,5 @@ int
g1 (void)
{
return INT_MAX + 1 - INT_MAX; /* { dg-bogus "integer overflow in expression.*integer overflow in expression" } */
- /* { dg-warning "integer overflow in expression" "" { target *-*-* } 10 } */
+ /* { dg-warning "integer overflow in expression" "" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/multiple-overflow-warn-3.c b/gcc/testsuite/gcc.dg/multiple-overflow-warn-3.c
index da19de508d4..d09e1c71fed 100644
--- a/gcc/testsuite/gcc.dg/multiple-overflow-warn-3.c
+++ b/gcc/testsuite/gcc.dg/multiple-overflow-warn-3.c
@@ -6,7 +6,7 @@ short int
g (void)
{
short int wc = ((short int)1 << (8 * __SIZEOF_INT__ - 1)) - 1; /* { dg-bogus "overflow .* overflow" } */
- /* { dg-warning "overflow" "" { target *-*-* } 8 } */
+ /* { dg-warning "overflow" "" { target *-*-* } .-1 } */
return wc;
}
diff --git a/gcc/testsuite/gcc.dg/nested-redef-1.c b/gcc/testsuite/gcc.dg/nested-redef-1.c
index a3786b0c302..f9326086e30 100644
--- a/gcc/testsuite/gcc.dg/nested-redef-1.c
+++ b/gcc/testsuite/gcc.dg/nested-redef-1.c
@@ -36,7 +36,7 @@ enum e0 {
enum e1 {
E2 = sizeof(enum e2 { E2 }), /* { dg-error "redeclaration of enumerator 'E2'" } */
- /* { dg-message "note: previous definition" "previous E2" { target *-*-* } 38 } */
+ /* { dg-message "note: previous definition" "previous E2" { target *-*-* } .-1 } */
E3
};
diff --git a/gcc/testsuite/gcc.dg/no-asm-1.c b/gcc/testsuite/gcc.dg/no-asm-1.c
index fdcf05459a4..dd9ec54a4c1 100644
--- a/gcc/testsuite/gcc.dg/no-asm-1.c
+++ b/gcc/testsuite/gcc.dg/no-asm-1.c
@@ -6,5 +6,5 @@
int asm; /* { dg-error "before .asm." } */
int inline; /* { dg-warning "empty declaration" } */
-/* { dg-error "empty declaration" "" { target *-*-* } 8 } */
+/* { dg-error "empty declaration" "" { target *-*-* } .-1 } */
int typeof; /* { dg-error "before .typeof." } */
diff --git a/gcc/testsuite/gcc.dg/no-asm-3.c b/gcc/testsuite/gcc.dg/no-asm-3.c
index 9c806e43533..ee126add87a 100644
--- a/gcc/testsuite/gcc.dg/no-asm-3.c
+++ b/gcc/testsuite/gcc.dg/no-asm-3.c
@@ -6,5 +6,5 @@
int asm; /* { dg-error "before .asm." } */
int inline; /* { dg-warning "empty declaration" } */
-/* { dg-error "empty declaration" "" { target *-*-* } 8 } */
+/* { dg-error "empty declaration" "" { target *-*-* } .-1 } */
int typeof; /* { dg-error "before .typeof." } */
diff --git a/gcc/testsuite/gcc.dg/no-asm-4.c b/gcc/testsuite/gcc.dg/no-asm-4.c
index c4c1687800c..863e9ebac87 100644
--- a/gcc/testsuite/gcc.dg/no-asm-4.c
+++ b/gcc/testsuite/gcc.dg/no-asm-4.c
@@ -7,5 +7,5 @@
int asm; /* { dg-bogus "before .asm." } */
int inline; /* { dg-warning "empty declaration" } */
-/* { dg-error "empty declaration" "" { target *-*-* } 9 } */
+/* { dg-error "empty declaration" "" { target *-*-* } .-1 } */
int typeof; /* { dg-bogus "before .typeof." } */
diff --git a/gcc/testsuite/gcc.dg/noncompile/20010524-1.c b/gcc/testsuite/gcc.dg/noncompile/20010524-1.c
index 95c5db15d35..49af2bcab3c 100644
--- a/gcc/testsuite/gcc.dg/noncompile/20010524-1.c
+++ b/gcc/testsuite/gcc.dg/noncompile/20010524-1.c
@@ -1,2 +1,2 @@
int i = 7 / 0; /* { dg-error "not constant" } */
- /* { dg-warning "division by zero" "div by zero" { target *-*-* } 1 } */
+ /* { dg-warning "division by zero" "div by zero" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/noncompile/incomplete-5.c b/gcc/testsuite/gcc.dg/noncompile/incomplete-5.c
index 049c34a20a9..1644fd6db37 100644
--- a/gcc/testsuite/gcc.dg/noncompile/incomplete-5.c
+++ b/gcc/testsuite/gcc.dg/noncompile/incomplete-5.c
@@ -4,5 +4,5 @@
struct A
{
enum E : 8; /* { dg-warning "narrower than values of its type" } */
- /* { dg-error "has incomplete type" "incomplete" { target *-*-* } 6 } */
+ /* { dg-error "has incomplete type" "incomplete" { target *-*-* } .-1 } */
};
diff --git a/gcc/testsuite/gcc.dg/noncompile/pr44517.c b/gcc/testsuite/gcc.dg/noncompile/pr44517.c
index fa9a9df2d13..c0b498ac6f1 100644
--- a/gcc/testsuite/gcc.dg/noncompile/pr44517.c
+++ b/gcc/testsuite/gcc.dg/noncompile/pr44517.c
@@ -1,7 +1,7 @@
/* PR c/44517: Improve diagnostic for misspelled typename in function declaration. */
int f1(int x, pid_t y, long z, in t) {
-/* { dg-error "unknown type name 'pid_t'" "pid_t" { target *-*-* } 2 } */
-/* { dg-error "unknown type name 'in'" "in" { target *-*-* } 2 } */
+/* { dg-error "unknown type name 'pid_t'" "pid_t" { target *-*-* } .-1 } */
+/* { dg-error "unknown type name 'in'" "in" { target *-*-* } .-2 } */
return x + y + z + t;
}
diff --git a/gcc/testsuite/gcc.dg/noncompile/pr52290.c b/gcc/testsuite/gcc.dg/noncompile/pr52290.c
index ac408fbd15b..7dacacec301 100644
--- a/gcc/testsuite/gcc.dg/noncompile/pr52290.c
+++ b/gcc/testsuite/gcc.dg/noncompile/pr52290.c
@@ -1,3 +1,3 @@
-/* { dg-error "undeclared here" "undeclared" { target *-*-* } 3 } */
-/* { dg-error "expected" "expected" { target *-*-* } 3 } */
+/* { dg-error "undeclared here" "undeclared" { target *-*-* } .+2 } */
+/* { dg-error "expected" "expected" { target *-*-* } .+1 } */
int f()[j]
diff --git a/gcc/testsuite/gcc.dg/noreturn-1.c b/gcc/testsuite/gcc.dg/noreturn-1.c
index a3796783a3e..cdbfb8dd667 100644
--- a/gcc/testsuite/gcc.dg/noreturn-1.c
+++ b/gcc/testsuite/gcc.dg/noreturn-1.c
@@ -35,7 +35,7 @@ void
foo5(void)
{
return; /* { dg-warning "'noreturn' has a 'return' statement" "detect invalid return" } */
-} /* { dg-warning "function does return" "detect return from noreturn" { target c } 37 } */
+} /* { dg-warning "function does return" "detect return from noreturn" { target c } .-1 } */
extern void foo6(void);
void
diff --git a/gcc/testsuite/gcc.dg/overflow-warn-1.c b/gcc/testsuite/gcc.dg/overflow-warn-1.c
index 78909df368b..48185e90051 100644
--- a/gcc/testsuite/gcc.dg/overflow-warn-1.c
+++ b/gcc/testsuite/gcc.dg/overflow-warn-1.c
@@ -13,11 +13,11 @@ enum e {
in the standard). */
E2 = 2 || 1 / 0,
E3 = 1 / 0, /* { dg-warning "10:division by zero" } */
- /* { dg-error "3:enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } 15 } */
+ /* { dg-error "3:enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } .-1 } */
/* But as in DR#031, the 1/0 in an evaluated subexpression means the
whole expression violates the constraints. */
E4 = 0 * (1 / 0), /* { dg-warning "15:division by zero" } */
- /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target *-*-* } 19 } */
+ /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target *-*-* } .-1 } */
E5 = INT_MAX + 1, /* { dg-warning "16:integer overflow in expression" } */
/* Again, overflow in evaluated subexpression. */
E6 = 0 * (INT_MAX + 1), /* { dg-warning "21:integer overflow in expression" } */
@@ -28,7 +28,7 @@ enum e {
struct s {
int a;
int : 0 * (1 / 0); /* { dg-warning "16:division by zero" } */
- /* { dg-error "not an integer constant" "22:integer constant" { target *-*-* } 30 } */
+ /* { dg-error "not an integer constant" "22:integer constant" { target *-*-* } .-1 } */
int : 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
};
@@ -47,10 +47,10 @@ static int sc = INT_MAX + 1; /* { dg-warning "25:integer overflow in expression"
constants. The third has the overflow in an unevaluated
subexpression, so is a null pointer constant. */
void *p = 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
-/* { dg-warning "initialization makes pointer from integer without a cast" "null" { target *-*-* } 49 } */
+/* { dg-warning "initialization makes pointer from integer without a cast" "null" { target *-*-* } .-1 } */
void *q = 0 * (1 / 0); /* { dg-warning "division by zero" } */
-/* { dg-error "initializer element is not computable at load time" "constant" { target *-*-* } 51 } */
-/* { dg-warning "initialization makes pointer from integer without a cast" "null" { target *-*-* } 51 } */
+/* { dg-error "initializer element is not computable at load time" "constant" { target *-*-* } .-1 } */
+/* { dg-warning "initialization makes pointer from integer without a cast" "null" { target *-*-* } .-2 } */
void *r = (1 ? 0 : INT_MAX+1);
void
@@ -59,7 +59,7 @@ g (int i)
switch (i)
{
case 0 * (1/0): /* { dg-warning "division by zero" } */
- /* { dg-error "case label does not reduce to an integer constant" "constant" { target *-*-* } 61 } */
+ /* { dg-error "case label does not reduce to an integer constant" "constant" { target *-*-* } .-1 } */
;
case 1 + 0 * (INT_MAX + 1): /* { dg-warning "integer overflow in expression" } */
;
diff --git a/gcc/testsuite/gcc.dg/overflow-warn-2.c b/gcc/testsuite/gcc.dg/overflow-warn-2.c
index f6595d508c2..f77c20f9559 100644
--- a/gcc/testsuite/gcc.dg/overflow-warn-2.c
+++ b/gcc/testsuite/gcc.dg/overflow-warn-2.c
@@ -13,11 +13,11 @@ enum e {
in the standard). */
E2 = 2 || 1 / 0,
E3 = 1 / 0, /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } 15 } */
+ /* { dg-error "enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } .-1 } */
/* But as in DR#031, the 1/0 in an evaluated subexpression means the
whole expression violates the constraints. */
E4 = 0 * (1 / 0), /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target *-*-* } 19 } */
+ /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target *-*-* } .-1 } */
E5 = INT_MAX + 1, /* { dg-warning "integer overflow in expression" } */
/* Again, overflow in evaluated subexpression. */
E6 = 0 * (INT_MAX + 1), /* { dg-warning "integer overflow in expression" } */
@@ -28,7 +28,7 @@ enum e {
struct s {
int a;
int : 0 * (1 / 0); /* { dg-warning "division by zero" } */
- /* { dg-error "not an integer constant" "integer constant" { target *-*-* } 30 } */
+ /* { dg-error "not an integer constant" "integer constant" { target *-*-* } .-1 } */
int : 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
};
@@ -47,10 +47,10 @@ static int sc = INT_MAX + 1; /* { dg-warning "integer overflow in expression" }
constants. The third has the overflow in an unevaluated
subexpression, so is a null pointer constant. */
void *p = 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
-/* { dg-warning "initialization makes pointer from integer without a cast" "null" { target *-*-* } 49 } */
+/* { dg-warning "initialization makes pointer from integer without a cast" "null" { target *-*-* } .-1 } */
void *q = 0 * (1 / 0); /* { dg-warning "division by zero" } */
-/* { dg-error "initializer element is not computable at load time" "constant" { target *-*-* } 51 } */
-/* { dg-warning "initialization makes pointer from integer without a cast" "null" { target *-*-* } 51 } */
+/* { dg-error "initializer element is not computable at load time" "constant" { target *-*-* } .-1 } */
+/* { dg-warning "initialization makes pointer from integer without a cast" "null" { target *-*-* } .-2 } */
void *r = (1 ? 0 : INT_MAX+1);
void
@@ -59,7 +59,7 @@ g (int i)
switch (i)
{
case 0 * (1/0): /* { dg-warning "division by zero" } */
- /* { dg-error "case label does not reduce to an integer constant" "constant" { target *-*-* } 61 } */
+ /* { dg-error "case label does not reduce to an integer constant" "constant" { target *-*-* } .-1 } */
;
case 1 + 0 * (INT_MAX + 1): /* { dg-warning "integer overflow in expression" } */
;
@@ -85,23 +85,23 @@ void
h2 (void)
{
fsc (SCHAR_MAX + 1);
- /* { dg-warning "passing argument 1 of 'fsc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 87 } */
+ /* { dg-warning "passing argument 1 of 'fsc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } .-1 } */
fsc (SCHAR_MIN - 1); /* { dg-warning "overflow in implicit constant conversion" } */
- /* { dg-warning "passing argument 1 of 'fsc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 89 } */
+ /* { dg-warning "passing argument 1 of 'fsc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } .-1 } */
fsc (UCHAR_MAX);
- /* { dg-warning "passing argument 1 of 'fsc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 91 } */
+ /* { dg-warning "passing argument 1 of 'fsc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } .-1 } */
fsc (UCHAR_MAX + 1); /* { dg-warning "overflow in implicit constant conversion" } */
- /* { dg-warning "passing argument 1 of 'fsc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 93 } */
+ /* { dg-warning "passing argument 1 of 'fsc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } .-1 } */
fuc (-1);
- /* { dg-warning "passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 95 } */
+ /* { dg-warning "passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } .-1 } */
fuc (UCHAR_MAX + 1); /* { dg-warning "large integer implicitly truncated to unsigned type" } */
- /* { dg-warning "passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 97 } */
+ /* { dg-warning "passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } .-1 } */
fuc (SCHAR_MIN);
- /* { dg-warning "passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 99 } */
+ /* { dg-warning "passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } .-1 } */
fuc (SCHAR_MIN - 1); /* { dg-warning "large integer implicitly truncated to unsigned type" } */
- /* { dg-warning "passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 101 } */
+ /* { dg-warning "passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } .-1 } */
fuc (-UCHAR_MAX); /* { dg-warning "large integer implicitly truncated to unsigned type" } */
- /* { dg-warning "passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } 103 } */
+ /* { dg-warning "passing argument 1 of 'fuc' with different width due to prototype" "-Wtraditional-conversion" { target *-*-* } .-1 } */
}
void fui (unsigned int);
@@ -125,11 +125,11 @@ h2i (int x)
fsi (UINT_MAX); /* { dg-warning "passing argument 1 of 'fsi' as signed due to prototype" } */
si = UINT_MAX;
fui (-1);
- /* { dg-warning "passing argument 1 of 'fui' as unsigned due to prototype" "-Wtraditional-conversion" { target *-*-* } 127 } */
+ /* { dg-warning "passing argument 1 of 'fui' as unsigned due to prototype" "-Wtraditional-conversion" { target *-*-* } .-1 } */
ui = -1;
ui = x ? -1 : 1U;
fui (INT_MIN);
- /* { dg-warning "passing argument 1 of 'fui' as unsigned due to prototype" "-Wtraditional-conversion" { target *-*-* } 131 } */
+ /* { dg-warning "passing argument 1 of 'fui' as unsigned due to prototype" "-Wtraditional-conversion" { target *-*-* } .-1 } */
ui = INT_MIN;
ui = x ? INT_MIN : 1U;
}
diff --git a/gcc/testsuite/gcc.dg/overflow-warn-3.c b/gcc/testsuite/gcc.dg/overflow-warn-3.c
index fae26d4101d..8bd190e1296 100644
--- a/gcc/testsuite/gcc.dg/overflow-warn-3.c
+++ b/gcc/testsuite/gcc.dg/overflow-warn-3.c
@@ -13,16 +13,16 @@ enum e {
in the standard). */
E2 = 2 || 1 / 0,
E3 = 1 / 0, /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } 15 } */
+ /* { dg-error "enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } .-1 } */
/* But as in DR#031, the 1/0 in an evaluated subexpression means the
whole expression violates the constraints. */
E4 = 0 * (1 / 0), /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target *-*-* } 19 } */
+ /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target *-*-* } .-1 } */
E5 = INT_MAX + 1, /* { dg-warning "integer overflow in expression" } */
- /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 21 } */
+ /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
/* Again, overflow in evaluated subexpression. */
E6 = 0 * (INT_MAX + 1), /* { dg-warning "integer overflow in expression" } */
- /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 24 } */
+ /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
/* A cast does not constitute overflow in conversion. */
E7 = (char) INT_MAX
};
@@ -30,9 +30,9 @@ enum e {
struct s {
int a;
int : 0 * (1 / 0); /* { dg-warning "division by zero" } */
- /* { dg-error "not an integer constant" "integer constant" { target *-*-* } 32 } */
+ /* { dg-error "not an integer constant" "integer constant" { target *-*-* } .-1 } */
int : 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
- /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 34 } */
+ /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
};
void
@@ -46,17 +46,17 @@ f (void)
/* But this expression does need to be constant. */
static int sc = INT_MAX + 1; /* { dg-warning "integer overflow in expression" } */
-/* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 48 } */
+/* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
/* The first two of these involve overflow, so are not null pointer
constants. The third has the overflow in an unevaluated
subexpression, so is a null pointer constant. */
void *p = 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
-/* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 54 } */
-/* { dg-warning "initialization makes pointer from integer without a cast" "null" { target *-*-* } 54 } */
+/* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
+/* { dg-warning "initialization makes pointer from integer without a cast" "null" { target *-*-* } .-2 } */
void *q = 0 * (1 / 0); /* { dg-warning "division by zero" } */
-/* { dg-error "initializer element is not computable at load time" "constant" { target *-*-* } 57 } */
-/* { dg-warning "initialization makes pointer from integer without a cast" "null" { target *-*-* } 57 } */
+/* { dg-error "initializer element is not computable at load time" "constant" { target *-*-* } .-1 } */
+/* { dg-warning "initialization makes pointer from integer without a cast" "null" { target *-*-* } .-2 } */
void *r = (1 ? 0 : INT_MAX+1);
void
@@ -65,10 +65,10 @@ g (int i)
switch (i)
{
case 0 * (1/0): /* { dg-warning "division by zero" } */
- /* { dg-error "case label does not reduce to an integer constant" "constant" { target *-*-* } 67 } */
+ /* { dg-error "case label does not reduce to an integer constant" "constant" { target *-*-* } .-1 } */
;
case 1 + 0 * (INT_MAX + 1): /* { dg-warning "integer overflow in expression" } */
- /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 70 } */
+ /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } .-1 } */
;
}
}
diff --git a/gcc/testsuite/gcc.dg/overflow-warn-4.c b/gcc/testsuite/gcc.dg/overflow-warn-4.c
index 464533a365d..a28cb56b30f 100644
--- a/gcc/testsuite/gcc.dg/overflow-warn-4.c
+++ b/gcc/testsuite/gcc.dg/overflow-warn-4.c
@@ -13,16 +13,16 @@ enum e {
in the standard). */
E2 = 2 || 1 / 0,
E3 = 1 / 0, /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } 15 } */
+ /* { dg-error "enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } .-1 } */
/* But as in DR#031, the 1/0 in an evaluated subexpression means the
whole expression violates the constraints. */
E4 = 0 * (1 / 0), /* { dg-warning "division by zero" } */
- /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target *-*-* } 19 } */
+ /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { target *-*-* } .-1 } */
E5 = INT_MAX + 1, /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 21 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
/* Again, overflow in evaluated subexpression. */
E6 = 0 * (INT_MAX + 1), /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 24 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
/* A cast does not constitute overflow in conversion. */
E7 = (char) INT_MAX
};
@@ -30,9 +30,9 @@ enum e {
struct s {
int a;
int : 0 * (1 / 0); /* { dg-warning "division by zero" } */
- /* { dg-error "not an integer constant" "integer constant" { target *-*-* } 32 } */
+ /* { dg-error "not an integer constant" "integer constant" { target *-*-* } .-1 } */
int : 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 34 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
};
void
@@ -46,17 +46,17 @@ f (void)
/* But this expression does need to be constant. */
static int sc = INT_MAX + 1; /* { dg-warning "integer overflow in expression" } */
-/* { dg-error "overflow in constant expression" "constant" { target *-*-* } 48 } */
+/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
/* The first two of these involve overflow, so are not null pointer
constants. The third has the overflow in an unevaluated
subexpression, so is a null pointer constant. */
void *p = 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */
-/* { dg-error "overflow in constant expression" "constant" { target *-*-* } 54 } */
-/* { dg-error "initialization makes pointer from integer without a cast" "null" { target *-*-* } 54 } */
+/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
+/* { dg-error "initialization makes pointer from integer without a cast" "null" { target *-*-* } .-2 } */
void *q = 0 * (1 / 0); /* { dg-warning "division by zero" } */
-/* { dg-error "initializer element is not computable at load time" "constant" { target *-*-* } 57 } */
-/* { dg-error "initialization makes pointer from integer without a cast" "null" { target *-*-* } 57 } */
+/* { dg-error "initializer element is not computable at load time" "constant" { target *-*-* } .-1 } */
+/* { dg-error "initialization makes pointer from integer without a cast" "null" { target *-*-* } .-2 } */
void *r = (1 ? 0 : INT_MAX+1);
void
@@ -65,10 +65,10 @@ g (int i)
switch (i)
{
case 0 * (1/0): /* { dg-warning "division by zero" } */
- /* { dg-error "case label does not reduce to an integer constant" "constant" { target *-*-* } 67 } */
+ /* { dg-error "case label does not reduce to an integer constant" "constant" { target *-*-* } .-1 } */
;
case 1 + 0 * (INT_MAX + 1): /* { dg-warning "integer overflow in expression" } */
- /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 70 } */
+ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
;
}
}
diff --git a/gcc/testsuite/gcc.dg/parm-mismatch-1.c b/gcc/testsuite/gcc.dg/parm-mismatch-1.c
index 8f62e122b8a..75dad1ecb95 100644
--- a/gcc/testsuite/gcc.dg/parm-mismatch-1.c
+++ b/gcc/testsuite/gcc.dg/parm-mismatch-1.c
@@ -6,13 +6,13 @@
void f0(); /* { dg-message "note: previous declaration of 'f0' was here" } */
void f0(int, ...); /* { dg-error "conflicting types for 'f0'" } */
-/* { dg-message "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "note" { target *-*-* } 8 } */
+/* { dg-message "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "note" { target *-*-* } .-1 } */
void f1(int, ...); /* { dg-message "note: previous declaration of 'f1' was here" } */
void f1(); /* { dg-error "conflicting types for 'f1'" } */
-/* { dg-message "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "note" { target *-*-* } 11 } */
+/* { dg-message "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "note" { target *-*-* } .-1 } */
void f2(); /* { dg-message "note: previous declaration of 'f2' was here" } */
void f2(char); /* { dg-error "conflicting types for 'f2'" } */
-/* { dg-message "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "note" { target *-*-* } 14 } */
+/* { dg-message "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "note" { target *-*-* } .-1 } */
void f3(char); /* { dg-message "note: previous declaration of 'f3' was here" } */
void f3(); /* { dg-error "conflicting types for 'f3'" } */
-/* { dg-message "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "note" { target *-*-* } 17 } */
+/* { dg-message "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "note" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/parser-pr28152-2.c b/gcc/testsuite/gcc.dg/parser-pr28152-2.c
index b1502257d0a..2f3c8f0ebe5 100644
--- a/gcc/testsuite/gcc.dg/parser-pr28152-2.c
+++ b/gcc/testsuite/gcc.dg/parser-pr28152-2.c
@@ -8,4 +8,4 @@ main (void)
z = __complex__ (1.90000007326203904e+19, 0.0); /* { dg-error "__complex__" } */
z = __complex__ (1.0e+0, 0.0) / z; /* { dg-error "__complex__" "Complex" } */
- /* { dg-error "at end of input" "end of input" { target *-*-* } 10 } */
+ /* { dg-error "at end of input" "end of input" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/parser-pr28152.c b/gcc/testsuite/gcc.dg/parser-pr28152.c
index afb574bc5f2..7e35b4c1614 100644
--- a/gcc/testsuite/gcc.dg/parser-pr28152.c
+++ b/gcc/testsuite/gcc.dg/parser-pr28152.c
@@ -8,4 +8,4 @@ main (void)
z = _Complex (1.90000007326203904e+19, 0.0); /* { dg-error "_Complex" } */
z = _Complex (1.0e+0, 0.0) / z; /* { dg-error "_Complex" "_Complex" } */
- /* { dg-error "at end of input" "end of input" { target *-*-* } 10 } */
+ /* { dg-error "at end of input" "end of input" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/pedwarn-init.c b/gcc/testsuite/gcc.dg/pedwarn-init.c
index e3181d62157..0777641463a 100644
--- a/gcc/testsuite/gcc.dg/pedwarn-init.c
+++ b/gcc/testsuite/gcc.dg/pedwarn-init.c
@@ -12,7 +12,7 @@ int a1 = { 1, 2 }; /* { dg-warning "15:excess elements in scalar initializer" }
int a2[2] = { 1, 2, 3 }; /* { dg-warning "21:excess elements in array initializer" } */
int a3[] = { [1 ? 1 : i] = 0 }; /* { dg-warning "15:array index in initializer is not an integer constant expression" } */
int a4[] = { [1 ... 1 ? 2 : i] = 0 }; /* { dg-warning "15:array index in initializer is not an integer constant expression" } */
-/* { dg-warning "ISO C forbids" "ISO C" { target *-*-* } 14 } */
+/* { dg-warning "ISO C forbids" "ISO C" { target *-*-* } .-1 } */
char a5[] = ("lol"); /* { dg-warning "13:array initialized from parenthesized string constant" } */
char a6[] = { ("foo") }; /* { dg-warning "13:array initialized from parenthesized string constant" } */
char *a7 = (char []) { ("bar") }; /* { dg-warning "12:array initialized from parenthesized string constant" } */
diff --git a/gcc/testsuite/gcc.dg/pointer-arith-2.c b/gcc/testsuite/gcc.dg/pointer-arith-2.c
index cda287c2876..d9533f17f6e 100644
--- a/gcc/testsuite/gcc.dg/pointer-arith-2.c
+++ b/gcc/testsuite/gcc.dg/pointer-arith-2.c
@@ -31,9 +31,9 @@ g (void)
f -= 0; /* { dg-warning "pointer to a function used in arithmetic" } */
f -= 1; /* { dg-warning "pointer to a function used in arithmetic" } */
p[0]; /* { dg-warning "dereferencing 'void \\*' pointer" } */
- /* { dg-warning "pointer of type 'void \\*' used in arithmetic" "array 1" { target *-*-* } 33 } */
+ /* { dg-warning "pointer of type 'void \\*' used in arithmetic" "array 1" { target *-*-* } .-1 } */
0[p]; /* { dg-warning "dereferencing 'void \\*' pointer" } */
- /* { dg-warning "pointer of type 'void \\*' used in arithmetic" "array 1" { target *-*-* } 35 } */
+ /* { dg-warning "pointer of type 'void \\*' used in arithmetic" "array 1" { target *-*-* } .-1 } */
f[0]; /* { dg-error "subscripted value is pointer to function" } */
0[f]; /* { dg-error "subscripted value is pointer to function" } */
p - p; /* { dg-warning "pointer of type 'void \\*' used in subtraction" } */
diff --git a/gcc/testsuite/gcc.dg/pointer-arith-3.c b/gcc/testsuite/gcc.dg/pointer-arith-3.c
index bcfb2a4b524..5a5e302103e 100644
--- a/gcc/testsuite/gcc.dg/pointer-arith-3.c
+++ b/gcc/testsuite/gcc.dg/pointer-arith-3.c
@@ -31,9 +31,9 @@ g (void)
f -= 0; /* { dg-warning "pointer to a function used in arithmetic" } */
f -= 1; /* { dg-warning "pointer to a function used in arithmetic" } */
p[0]; /* { dg-warning "dereferencing 'void \\*' pointer" } */
- /* { dg-warning "pointer of type 'void \\*' used in arithmetic" "array 1" { target *-*-* } 33 } */
+ /* { dg-warning "pointer of type 'void \\*' used in arithmetic" "array 1" { target *-*-* } .-1 } */
0[p]; /* { dg-warning "dereferencing 'void \\*' pointer" } */
- /* { dg-warning "pointer of type 'void \\*' used in arithmetic" "array 1" { target *-*-* } 35 } */
+ /* { dg-warning "pointer of type 'void \\*' used in arithmetic" "array 1" { target *-*-* } .-1 } */
f[0]; /* { dg-error "subscripted value is pointer to function" } */
0[f]; /* { dg-error "subscripted value is pointer to function" } */
p - p; /* { dg-warning "pointer of type 'void \\*' used in subtraction" } */
diff --git a/gcc/testsuite/gcc.dg/pointer-arith-4.c b/gcc/testsuite/gcc.dg/pointer-arith-4.c
index daa5e0f5b68..c6382b1e3f7 100644
--- a/gcc/testsuite/gcc.dg/pointer-arith-4.c
+++ b/gcc/testsuite/gcc.dg/pointer-arith-4.c
@@ -31,9 +31,9 @@ g (void)
f -= 0; /* { dg-error "pointer to a function used in arithmetic" } */
f -= 1; /* { dg-error "pointer to a function used in arithmetic" } */
p[0]; /* { dg-warning "dereferencing 'void \\*' pointer" } */
- /* { dg-error "pointer of type 'void \\*' used in arithmetic" "array 1" { target *-*-* } 33 } */
+ /* { dg-error "pointer of type 'void \\*' used in arithmetic" "array 1" { target *-*-* } .-1 } */
0[p]; /* { dg-warning "dereferencing 'void \\*' pointer" } */
- /* { dg-error "pointer of type 'void \\*' used in arithmetic" "array 1" { target *-*-* } 35 } */
+ /* { dg-error "pointer of type 'void \\*' used in arithmetic" "array 1" { target *-*-* } .-1 } */
f[0]; /* { dg-error "subscripted value is pointer to function" } */
0[f]; /* { dg-error "subscripted value is pointer to function" } */
p - p; /* { dg-error "pointer of type 'void \\*' used in subtraction" } */
diff --git a/gcc/testsuite/gcc.dg/pr14475.c b/gcc/testsuite/gcc.dg/pr14475.c
index 4bad2b369d1..0feb5e8e61c 100644
--- a/gcc/testsuite/gcc.dg/pr14475.c
+++ b/gcc/testsuite/gcc.dg/pr14475.c
@@ -4,7 +4,7 @@
struct tree_common
{
enum tree_code code : 8; /* { dg-error "ISO C forbids forward references to" "forward ref" } */
- /* { dg-error "type of bit-field .code. is a GCC extension" "extension" { target *-*-* } 6 } */
- /* { dg-warning "narrower than values of its type" "narrower" { target *-*-* } 6 } */
- /* { dg-error "incomplete type" "incomplete" { target *-*-* } 6 } */
+ /* { dg-error "type of bit-field .code. is a GCC extension" "extension" { target *-*-* } .-1 } */
+ /* { dg-warning "narrower than values of its type" "narrower" { target *-*-* } .-2 } */
+ /* { dg-error "incomplete type" "incomplete" { target *-*-* } .-3 } */
};
diff --git a/gcc/testsuite/gcc.dg/pr18596-3.c b/gcc/testsuite/gcc.dg/pr18596-3.c
index c04312f0357..97fae653a14 100644
--- a/gcc/testsuite/gcc.dg/pr18596-3.c
+++ b/gcc/testsuite/gcc.dg/pr18596-3.c
@@ -6,7 +6,7 @@ int foo ()
static g () = 0; /* { dg-error "invalid storage class" } */
static int f () = 1; /* { dg-error "invalid storage class" } */
auto int h () = 0; /* { dg-error "initialized like a variable" } */
- /* { dg-error "declared but never defined" "nested" { target *-*-* } 8 } */
+ /* { dg-error "declared but never defined" "nested" { target *-*-* } .-1 } */
static int i () = { 0 }; /* { dg-error "invalid storage class" } */
static int j () = /* { dg-error "invalid storage class" } */
{ 0, 0.0 };
diff --git a/gcc/testsuite/gcc.dg/pr18809-1.c b/gcc/testsuite/gcc.dg/pr18809-1.c
index a1f552b9f38..5be41809da6 100644
--- a/gcc/testsuite/gcc.dg/pr18809-1.c
+++ b/gcc/testsuite/gcc.dg/pr18809-1.c
@@ -4,6 +4,6 @@
/* { dg-do compile } */
void foo(enum E e) {} /* { dg-error "forward ref" "forward" } */
- /* { dg-warning "declared" "declared" { target *-*-* } 6 } */
- /* { dg-error "incomplete" "incomplete" { target *-*-* } 6 } */
+ /* { dg-warning "declared" "declared" { target *-*-* } .-1 } */
+ /* { dg-error "incomplete" "incomplete" { target *-*-* } .-2 } */
void bar() { foo(0); }
diff --git a/gcc/testsuite/gcc.dg/pr27953.c b/gcc/testsuite/gcc.dg/pr27953.c
index d4d559e54f7..74fd5ddbe37 100644
--- a/gcc/testsuite/gcc.dg/pr27953.c
+++ b/gcc/testsuite/gcc.dg/pr27953.c
@@ -1,7 +1,7 @@
/* PR c/27953 */
void foo(struct A a) {} /* { dg-warning "declared inside parameter list" "inside" } */
-/* { dg-error "incomplete type" "incomplete" { target *-*-* } 3 } */
+/* { dg-error "incomplete type" "incomplete" { target *-*-* } .-1 } */
void foo() {} /* { dg-error "redefinition" "redef" } */
/* { dg-message "note: previous definition" "previous" { target *-*-* } 3 } */
diff --git a/gcc/testsuite/gcc.dg/pr30457.c b/gcc/testsuite/gcc.dg/pr30457.c
index 6a49d7c99e4..795b022e529 100644
--- a/gcc/testsuite/gcc.dg/pr30457.c
+++ b/gcc/testsuite/gcc.dg/pr30457.c
@@ -18,8 +18,8 @@ void foo(register short paramN, ...)
/* Undefined by C99 7.15.1.1p2: */
(void) va_arg(ap, char); /* { dg-warning "'char' is promoted to 'int' when passed through '...'" "promoted" } */
- /* { dg-message "note: .so you should pass .int. not .char. to .va_arg.." "int not char" { target *-*-* } 20 } */
- /* { dg-message "note: if this code is reached, the program will abort" "will abort" { target *-*-* } 20 } */
+ /* { dg-message "note: .so you should pass .int. not .char. to .va_arg.." "int not char" { target *-*-* } .-1 } */
+ /* { dg-message "note: if this code is reached, the program will abort" "will abort" { target *-*-* } .-2 } */
va_end(ap);
}
diff --git a/gcc/testsuite/gcc.dg/pr30551-2.c b/gcc/testsuite/gcc.dg/pr30551-2.c
index aa3c117c413..163a3ce4ddf 100644
--- a/gcc/testsuite/gcc.dg/pr30551-2.c
+++ b/gcc/testsuite/gcc.dg/pr30551-2.c
@@ -3,6 +3,6 @@
/* { dg-options "" } */
void main(char a) {} /* { dg-bogus "first argument of .main. should be .int." "int" } */
-/* { dg-bogus ".main. takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */
-/* { dg-bogus "return type of .main. is not .int." "return type" { target *-*-* } 5 } */
+/* { dg-bogus ".main. takes only zero or two arguments" "zero or two" { target *-*-* } .-1 } */
+/* { dg-bogus "return type of .main. is not .int." "return type" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/gcc.dg/pr30551-3.c b/gcc/testsuite/gcc.dg/pr30551-3.c
index 121cfe873e3..02955e50e03 100644
--- a/gcc/testsuite/gcc.dg/pr30551-3.c
+++ b/gcc/testsuite/gcc.dg/pr30551-3.c
@@ -3,5 +3,5 @@
/* { dg-options "-pedantic-errors" } */
/* { dg-skip-if "-Wmain not enabled with -pedantic on SPU" { spu-*-* } } */
void main(char a) {} /* { dg-error "first argument of .main. should be .int." "int" } */
-/* { dg-error ".main. takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */
-/* { dg-error "return type of .main. is not .int." "return type" { target *-*-* } 5 } */
+/* { dg-error ".main. takes only zero or two arguments" "zero or two" { target *-*-* } .-1 } */
+/* { dg-error "return type of .main. is not .int." "return type" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/gcc.dg/pr30551-4.c b/gcc/testsuite/gcc.dg/pr30551-4.c
index a025a660b8f..6105beeee8a 100644
--- a/gcc/testsuite/gcc.dg/pr30551-4.c
+++ b/gcc/testsuite/gcc.dg/pr30551-4.c
@@ -3,6 +3,6 @@
/* { dg-options "-pedantic-errors -Wno-main" } */
void main(char a) {} /* { dg-bogus "first argument of .main. should be .int." "int" } */
-/* { dg-bogus ".main. takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */
-/* { dg-bogus "return type of .main. is not .int." "return type" { target *-*-* } 5 } */
+/* { dg-bogus ".main. takes only zero or two arguments" "zero or two" { target *-*-* } .-1 } */
+/* { dg-bogus "return type of .main. is not .int." "return type" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/gcc.dg/pr30551-5.c b/gcc/testsuite/gcc.dg/pr30551-5.c
index 95685925ae7..30fa871af92 100644
--- a/gcc/testsuite/gcc.dg/pr30551-5.c
+++ b/gcc/testsuite/gcc.dg/pr30551-5.c
@@ -3,5 +3,5 @@
/* { dg-options "-pedantic -Wno-main" } */
void main(char a) {} /* { dg-bogus "first argument of .main. should be .int." "int" } */
-/* { dg-bogus ".main. takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */
-/* { dg-bogus "return type of .main. is not .int." "return type" { target *-*-* } 5 } */
+/* { dg-bogus ".main. takes only zero or two arguments" "zero or two" { target *-*-* } .-1 } */
+/* { dg-bogus "return type of .main. is not .int." "return type" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/gcc.dg/pr30551-6.c b/gcc/testsuite/gcc.dg/pr30551-6.c
index ba4cefcebfb..ed7ddabb7c5 100644
--- a/gcc/testsuite/gcc.dg/pr30551-6.c
+++ b/gcc/testsuite/gcc.dg/pr30551-6.c
@@ -3,5 +3,5 @@
/* { dg-options "-pedantic" } */
/* { dg-skip-if "-Wmain not enabled with -pedantic on SPU" { spu-*-* } } */
void main(char a) {} /* { dg-warning "first argument of .main. should be .int." "int" } */
-/* { dg-warning ".main. takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */
-/* { dg-warning "return type of .main. is not .int." "return type" { target *-*-* } 5 } */
+/* { dg-warning ".main. takes only zero or two arguments" "zero or two" { target *-*-* } .-1 } */
+/* { dg-warning "return type of .main. is not .int." "return type" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/gcc.dg/pr30551.c b/gcc/testsuite/gcc.dg/pr30551.c
index 68ecdedb3fe..979bcee868c 100644
--- a/gcc/testsuite/gcc.dg/pr30551.c
+++ b/gcc/testsuite/gcc.dg/pr30551.c
@@ -3,5 +3,5 @@
/* { dg-options "-Wall" } */
/* { dg-skip-if "-Wmain not enabled with -Wall on SPU" { spu-*-* } } */
void main(char a) {} /* { dg-warning "first argument of .main. should be .int." "int" } */
-/* { dg-warning ".main. takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */
-/* { dg-warning "return type of .main. is not .int." "return type" { target *-*-* } 5 } */
+/* { dg-warning ".main. takes only zero or two arguments" "zero or two" { target *-*-* } .-1 } */
+/* { dg-warning "return type of .main. is not .int." "return type" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/gcc.dg/pr36997.c b/gcc/testsuite/gcc.dg/pr36997.c
index 13461b8a134..deb4e816939 100644
--- a/gcc/testsuite/gcc.dg/pr36997.c
+++ b/gcc/testsuite/gcc.dg/pr36997.c
@@ -5,5 +5,5 @@ typedef int __m64 __attribute__ ((__vector_size__ (8), __may_alias__));
__m64 _mm_add_si64 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_paddq ((long long)__m1, (long long)__m2); /* { dg-error "incompatible type" } */
- /* { dg-message "note: expected '__vector.1. long long int' but argument is of type 'long long int'" "" { target *-*-* } 7 } */
+ /* { dg-message "note: expected '__vector.1. long long int' but argument is of type 'long long int'" "" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/pr40340-3.c b/gcc/testsuite/gcc.dg/pr40340-3.c
index 5ef09e073d8..f771a00e3a0 100644
--- a/gcc/testsuite/gcc.dg/pr40340-3.c
+++ b/gcc/testsuite/gcc.dg/pr40340-3.c
@@ -12,4 +12,4 @@ main (void)
return 0;
}
-/* { dg-bogus "will always overflow destination buffer" "" { target *-*-* } 10 } */
+/* { dg-bogus "overflow" "" { target *-*-* } 10 } */
diff --git a/gcc/testsuite/gcc.dg/pr40340-4.c b/gcc/testsuite/gcc.dg/pr40340-4.c
index d3f020cada8..695d0acbee0 100644
--- a/gcc/testsuite/gcc.dg/pr40340-4.c
+++ b/gcc/testsuite/gcc.dg/pr40340-4.c
@@ -13,4 +13,4 @@ main (void)
return 0;
}
-/* { dg-bogus "will always overflow destination buffer" "" { target *-*-* } 10 } */
+/* { dg-bogus "overflow" "" { target *-*-* } 10 } */
diff --git a/gcc/testsuite/gcc.dg/pr41842.c b/gcc/testsuite/gcc.dg/pr41842.c
index 2f2b7697bc9..1550ad1bfb7 100644
--- a/gcc/testsuite/gcc.dg/pr41842.c
+++ b/gcc/testsuite/gcc.dg/pr41842.c
@@ -5,5 +5,5 @@ void
f ()
{
char x[g (h)]; /* { dg-error "undeclared" } */
-/* { dg-message "undeclared identifier is reported only once" "reminder" { target *-*-* } 7 } */
+/* { dg-message "undeclared identifier is reported only once" "reminder" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/pr48552-1.c b/gcc/testsuite/gcc.dg/pr48552-1.c
index 4b833fb3da0..6626a58ea48 100644
--- a/gcc/testsuite/gcc.dg/pr48552-1.c
+++ b/gcc/testsuite/gcc.dg/pr48552-1.c
@@ -8,14 +8,14 @@ void
f1 (void *x)
{
__asm volatile ("" : : "r" (*x)); /* { dg-warning "dereferencing" "deref" } */
-} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 10 } */
+} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } .-1 } */
void
f2 (void *x)
{
__asm volatile ("" : "=r" (*x)); /* { dg-warning "dereferencing" "deref" } */
-} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 16 } */
- /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } 16 } */
+} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } .-1 } */
+ /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } .-2 } */
void
f3 (void *x)
{
@@ -32,14 +32,14 @@ void
f5 (void *x)
{
__asm volatile ("" : : "g" (*x)); /* { dg-warning "dereferencing" "deref" } */
-} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 34 } */
+} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } .-1 } */
void
f6 (void *x)
{
__asm volatile ("" : "=g" (*x)); /* { dg-warning "dereferencing" "deref" } */
-} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 40 } */
- /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } 40 } */
+} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } .-1 } */
+ /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } .-2 } */
void
f7 (struct S *x)
{
diff --git a/gcc/testsuite/gcc.dg/pr48552-2.c b/gcc/testsuite/gcc.dg/pr48552-2.c
index 954c411c5c4..c3aca89645c 100644
--- a/gcc/testsuite/gcc.dg/pr48552-2.c
+++ b/gcc/testsuite/gcc.dg/pr48552-2.c
@@ -8,14 +8,14 @@ void
f1 (void *x)
{
__asm ("" : : "r" (*x)); /* { dg-warning "dereferencing" "deref" } */
-} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 10 } */
+} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } .-1 } */
void
f2 (void *x)
{
__asm ("" : "=r" (*x)); /* { dg-warning "dereferencing" "deref" } */
-} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 16 } */
- /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } 16 } */
+} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } .-1 } */
+ /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } .-2 } */
void
f3 (void *x)
{
@@ -32,14 +32,14 @@ void
f5 (void *x)
{
__asm ("" : : "g" (*x)); /* { dg-warning "dereferencing" "deref" } */
-} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 34 } */
+} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } .-1 } */
void
f6 (void *x)
{
__asm ("" : "=g" (*x)); /* { dg-warning "dereferencing" "deref" } */
-} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 40 } */
- /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } 40 } */
+} /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } .-1 } */
+ /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } .-2 } */
void
f7 (struct S *x)
{
diff --git a/gcc/testsuite/gcc.dg/pr54669.c b/gcc/testsuite/gcc.dg/pr54669.c
index 3868ae691da..b68c0476a49 100644
--- a/gcc/testsuite/gcc.dg/pr54669.c
+++ b/gcc/testsuite/gcc.dg/pr54669.c
@@ -1,7 +1,7 @@
/* PR tree-optimization/54669 */
/* Testcase by Zdenek Sojka <zsojka@seznam.cz> */
-/* { dg-compile } */
+/* { dg-do compile } */
/* { dg-options "-O2 -fexceptions -fnon-call-exceptions" } */
int a[10];
diff --git a/gcc/testsuite/gcc.dg/pr59717.c b/gcc/testsuite/gcc.dg/pr59717.c
index 948180c004a..e49020aa063 100644
--- a/gcc/testsuite/gcc.dg/pr59717.c
+++ b/gcc/testsuite/gcc.dg/pr59717.c
@@ -6,211 +6,211 @@ void
math (double d, int *ex, double *dp)
{
acos (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 8 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
acosh (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 10 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
asin (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 12 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
asinh (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 14 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
atan (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 16 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
atanh (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 18 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
atan2 (d, d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 20 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
cbrt (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 22 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
ceil (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 24 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
copysign (d, d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 26 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
cos (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 28 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
cosh (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 30 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
erf (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 32 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
erfc (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 34 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
exp (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 36 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
exp2 (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 38 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
expm1 (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 40 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
fabs (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 42 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
fdim (d, d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 44 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
floor (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 46 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
fma (d, d, d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 48 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
fmax (d, d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 50 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
fmin (d, d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 52 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
fmod (d, d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 54 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
frexp (d, ex); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 56 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
hypot (d, d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 58 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
/* We don't generate the warning for ilogb. */
ilogb (d);
ldexp (d, *ex); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 62 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
lgamma (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 64 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
llrint (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 66 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
llround (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 68 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
log (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 70 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
log10 (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 72 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
log1p (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 74 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
log2 (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 76 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
logb (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 78 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
lrint (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 80 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
lround (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 82 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
modf (d, dp); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 84 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
nan (""); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 86 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
nearbyint (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 88 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
nextafter (d, d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 90 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
nexttoward (d, 20.0L); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 92 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
pow (d, d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 94 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
remainder (d, d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 96 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
remquo (d, d, ex); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 98 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
rint (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 100 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
round (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 102 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
scalbln (d, 100L); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 104 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
scalbn (d, 100); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 106 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
sin (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 108 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
sinh (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 110 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
sincos (d, dp, dp); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 112 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
sqrt (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 114 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
tan (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 116 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
tanh (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 118 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
tgamma (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 120 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
trunc (d); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..math.h.." "" { target *-*-* } 122 } */
+ /* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
}
void
cmplx (double _Complex z)
{
cabs (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 129 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
cacos (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 131 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
cacosh (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 133 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
carg (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 135 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
casin (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 137 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
casinh (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 139 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
catan (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 141 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
catanh (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 143 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
ccos (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 145 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
ccosh (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 147 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
cexp (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 149 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
cimag (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 151 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
clog (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 153 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
conj (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 155 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
cpow (z, z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 157 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
cproj (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 159 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
creal (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 161 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
csin (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 163 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
csinh (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 165 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
csqrt (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 167 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
ctan (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 169 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
ctanh (z); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..complex.h.." "" { target *-*-* } 171 } */
+ /* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
}
void
string (void *p, void *q, __SIZE_TYPE__ sz)
{
memchr (p, 2, sz); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 178 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
/* We don't generate the warning for memcmp. */
memcmp (p, q, sz);
memcpy (p, q, sz); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 182 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
memmove (p, q, sz); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 184 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
memset (p, 0, sz); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 186 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strcat (p, q); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 188 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strchr (p, 'a'); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 190 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
/* We don't generate the warning for strcmp. */
strcmp (p, q);
strcpy (p, q); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 194 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strcspn (p, q); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 196 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strlen (p); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 198 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strncat (p, q, sz); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 200 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
/* We don't generate the warning for strncmp. */
strncmp (p, q, sz);
strncpy (p, q, sz); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 204 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strpbrk (p, q); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 206 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strrchr (p, 'q'); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 208 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strspn (p, q); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 210 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strstr (p, q); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..string.h.." "" { target *-*-* } 212 } */
+ /* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
}
/* Fake FILE. */
@@ -220,51 +220,51 @@ void
stdio (FILE *fp, void *p, __SIZE_TYPE__ sz)
{
fprintf (fp, ""); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdio.h.." "" { target *-*-* } 222 } */
+ /* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
fscanf (fp, ""); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdio.h.." "" { target *-*-* } 224 } */
+ /* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
fwrite (p, sz, sz, fp); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdio.h.." "" { target *-*-* } 226 } */
+ /* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
printf (""); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdio.h.." "" { target *-*-* } 228 } */
+ /* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
scanf (""); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdio.h.." "" { target *-*-* } 230 } */
+ /* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
snprintf ("", sz, ""); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdio.h.." "" { target *-*-* } 232 } */
+ /* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
sprintf ("", ""); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdio.h.." "" { target *-*-* } 234 } */
+ /* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
sscanf ("", ""); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdio.h.." "" { target *-*-* } 236 } */
+ /* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
}
void
stdlib (void *p, void *q, __SIZE_TYPE__ sz)
{
abort (); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 243 } */
+ /* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
calloc (sz, 1); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 245 } */
+ /* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
exit (1); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 247 } */
+ /* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
free (p); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 249 } */
+ /* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
labs (1L); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 251 } */
+ /* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
llabs (1LL); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 253 } */
+ /* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
malloc (sz); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 255 } */
+ /* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
realloc (p, sz); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 257 } */
+ /* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
aligned_alloc (sz, sz); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 259 } */
+ /* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
}
void
inttypes (__INTMAX_TYPE__ j)
{
imaxabs (j); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..inttypes.h.." "" { target *-*-* } 266 } */
+ /* { dg-message "include ..inttypes.h.." "" { target *-*-* } .-1 } */
}
struct tm;
@@ -273,5 +273,5 @@ void
timeh (char *s, __SIZE_TYPE__ sz, struct tm *tm)
{
strftime (s, sz, "", tm); /* { dg-warning "incompatible implicit" } */
- /* { dg-message "include ..time.h.." "" { target *-*-* } 275 } */
+ /* { dg-message "include ..time.h.." "" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/pr61077.c b/gcc/testsuite/gcc.dg/pr61077.c
index e29f23cce51..d98bf65e7d2 100644
--- a/gcc/testsuite/gcc.dg/pr61077.c
+++ b/gcc/testsuite/gcc.dg/pr61077.c
@@ -4,9 +4,9 @@
_Atomic int
main (_Atomic int argc, _Atomic char **argv)
-/* { dg-warning "qualified return type" "return" { target *-*-* } 6 } */
-/* { dg-warning "qualified parameter type\[^\n\]*int" "parameter" { target *-*-* } 6 } */
-/* { dg-warning "qualified parameter type\[^\n\]*char" "parameter" { target *-*-* } 6 } */
+/* { dg-warning "qualified return type" "return" { target *-*-* } .-1 } */
+/* { dg-warning "qualified parameter type\[^\n\]*int" "parameter" { target *-*-* } .-2 } */
+/* { dg-warning "qualified parameter type\[^\n\]*char" "parameter" { target *-*-* } .-3 } */
{
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/pr61096-1.c b/gcc/testsuite/gcc.dg/pr61096-1.c
index fa8932f8b6d..6678d812eb5 100644
--- a/gcc/testsuite/gcc.dg/pr61096-1.c
+++ b/gcc/testsuite/gcc.dg/pr61096-1.c
@@ -32,7 +32,7 @@ int a6 = &a3 - &a4; /* { dg-error "10:initializer element is not" } */
int a7[] = a7; /* { dg-error "12:invalid initializer" } */
struct S s = { { 1 }, { 3 } }; /* { dg-error "23:extra brace group at end of initializer" } */
-/* { dg-warning "23:excess elements in struct initializer" "" { target *-*-* } 34 } */
+/* { dg-warning "23:excess elements in struct initializer" "" { target *-*-* } .-1 } */
struct g g1 = { {0, { 1 } } }; /* { dg-error "21:initialization of flexible array member in a nested context" } */
struct g g2 = { .f[0] = 1 }; /* { dg-error "20:array index in non-array initializer" } */
diff --git a/gcc/testsuite/gcc.dg/pr63626.c b/gcc/testsuite/gcc.dg/pr63626.c
index 1f0381822c1..820337b8d48 100644
--- a/gcc/testsuite/gcc.dg/pr63626.c
+++ b/gcc/testsuite/gcc.dg/pr63626.c
@@ -5,4 +5,4 @@
/* Test that we don't output the warning twice. */
inline int foo (void); /* { dg-bogus "inline function.*inline function" } */
-/* { dg-warning "inline function .foo. declared but never defined" "" { target *-*-* } 7 } */
+/* { dg-warning "inline function .foo. declared but never defined" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/pr64223-1.c b/gcc/testsuite/gcc.dg/pr64223-1.c
index 015bfd87fb9..32c38e6fcef 100644
--- a/gcc/testsuite/gcc.dg/pr64223-1.c
+++ b/gcc/testsuite/gcc.dg/pr64223-1.c
@@ -8,5 +8,5 @@ void
foo (void)
{
printf ("%d\n", 0UL); /* { dg-bogus "expects argument of type.*expects argument of type" } */
- /* { dg-warning "expects argument of type" "" { target *-*-* } 10 } */
+ /* { dg-warning "expects argument of type" "" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/pr64223-2.c b/gcc/testsuite/gcc.dg/pr64223-2.c
index 2a1627e99b2..0a2b7e460f0 100644
--- a/gcc/testsuite/gcc.dg/pr64223-2.c
+++ b/gcc/testsuite/gcc.dg/pr64223-2.c
@@ -9,5 +9,5 @@ void
foo (void)
{
myprintf ("%d\n", 0UL); /* { dg-bogus "expects argument of type.*expects argument of type" } */
- /* { dg-warning "expects argument of type" "" { target *-*-* } 11 } */
+ /* { dg-warning "expects argument of type" "" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/gcc.dg/pr78582.c b/gcc/testsuite/gcc.dg/pr78582.c
index 5284e3ffbec..51e3a1f09ed 100644
--- a/gcc/testsuite/gcc.dg/pr78582.c
+++ b/gcc/testsuite/gcc.dg/pr78582.c
@@ -1,6 +1,6 @@
/* PR target/78582. */
/* { dg-options "-fprofile-generate" } */
-/* { dg-compile } */
+/* { dg-do compile } */
#include <setjmp.h>
diff --git a/gcc/testsuite/gcc.dg/pr79788-1.c b/gcc/testsuite/gcc.dg/pr79788-1.c
new file mode 100644
index 00000000000..5ad546cd235
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr79788-1.c
@@ -0,0 +1,11 @@
+/* PR middle-end/79788 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+long long
+foo (long long x, long long y)
+{
+ if (y > 1234567891234567891234567891234567812 / x) /* { dg-warning "integer constant is too large for its type" } */
+ return x;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/pr79788-2.c b/gcc/testsuite/gcc.dg/pr79788-2.c
new file mode 100644
index 00000000000..c9447b1f42a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr79788-2.c
@@ -0,0 +1,11 @@
+/* PR middle-end/79788 */
+/* { dg-do compile } */
+/* { dg-options "-ftrapv" } */
+
+void bar (void);
+void
+foo (long long int p, long long int q)
+{
+ if (p >= 1234567891234567891234567891234567812 + q) /* { dg-warning "integer constant is too large for its type" } */
+ bar ();
+}
diff --git a/gcc/testsuite/gcc.dg/pr80020.c b/gcc/testsuite/gcc.dg/pr80020.c
index 5e79c375dc3..4ab1aa8df2f 100644
--- a/gcc/testsuite/gcc.dg/pr80020.c
+++ b/gcc/testsuite/gcc.dg/pr80020.c
@@ -1,5 +1,5 @@
/* PR middle-end/80020 - gcc confused about aligned_alloc argument order
- { dg-compile }
+ { dg-do compile }
{ dg-options "-O2 -Wall -fdump-tree-optimized" } */
void sink (void*);
diff --git a/gcc/testsuite/gcc.dg/pr80100.c b/gcc/testsuite/gcc.dg/pr80100.c
new file mode 100644
index 00000000000..0d462be30aa
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr80100.c
@@ -0,0 +1,9 @@
+/* PR middle-end/80100 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+long int
+foo (long int x)
+{
+ return 2L | ((x - 1L) >> (__SIZEOF_LONG__ * __CHAR_BIT__ - 1));
+}
diff --git a/gcc/testsuite/gcc.dg/pr8788-1.c b/gcc/testsuite/gcc.dg/pr8788-1.c
index 74e1694090c..b05f533dc0f 100644
--- a/gcc/testsuite/gcc.dg/pr8788-1.c
+++ b/gcc/testsuite/gcc.dg/pr8788-1.c
@@ -12,7 +12,7 @@ typedef struct {
void switch_to_stack (my_stack *stack){
asm ( /* { dg-error "impossible constraint" } */
-/* { dg-warning "asm operand 1" "asm operand 1" { target *-*-* } 14 } */
+/* { dg-warning "asm operand 1" "asm operand 1" { target *-*-* } .-1 } */
"\n"
: "+r" (stack->regs)
);
diff --git a/gcc/testsuite/gcc.dg/pr8927-1.c b/gcc/testsuite/gcc.dg/pr8927-1.c
index 85add6a4a9d..5c1611ac66d 100644
--- a/gcc/testsuite/gcc.dg/pr8927-1.c
+++ b/gcc/testsuite/gcc.dg/pr8927-1.c
@@ -7,7 +7,7 @@ void
foo(void)
{
bar /* { dg-error "undeclared" } */
- /* { dg-message "undeclared identifier is reported only once" "reminder" { target *-*-* } 9 } */
+ /* { dg-message "undeclared identifier is reported only once" "reminder" { target *-*-* } .-1 } */
;
}
diff --git a/gcc/testsuite/gcc.dg/pragma-darwin.c b/gcc/testsuite/gcc.dg/pragma-darwin.c
index f64095b0f0e..c8dd9d4bf19 100644
--- a/gcc/testsuite/gcc.dg/pragma-darwin.c
+++ b/gcc/testsuite/gcc.dg/pragma-darwin.c
@@ -32,7 +32,7 @@ struct s3 { short f1; int f2; };
struct s4 { short f1; int f2; };
#pragma options align=natural foo /* { dg-warning "junk at end of '#pragma options'" } */
-/* { dg-warning "malformed '#pragma options align={mac68k|power|reset}', ignoring" "ignoring" { target *-*-* } 34 } */
+/* { dg-warning "malformed '#pragma options align={mac68k|power|reset}', ignoring" "ignoring" { target *-*-* } .-1 } */
/* Segment pragmas don't do anything anymore. */
diff --git a/gcc/testsuite/gcc.dg/pragma-diag-5.c b/gcc/testsuite/gcc.dg/pragma-diag-5.c
index fe820a699eb..1fbe1279754 100644
--- a/gcc/testsuite/gcc.dg/pragma-diag-5.c
+++ b/gcc/testsuite/gcc.dg/pragma-diag-5.c
@@ -1,6 +1,6 @@
/* { dg-do compile } */
#pragma GCC diagnostic /* { dg-warning "missing" "missing" } */
-/* { dg-warning "24:missing" "wrong column" { xfail *-*-* } 2 } */
+/* { dg-warning "24:missing" "wrong column" { xfail *-*-* } .-1 } */
#pragma GCC diagnostic warn /* { dg-warning "24:expected" } */
diff --git a/gcc/testsuite/gcc.dg/pragma-message.c b/gcc/testsuite/gcc.dg/pragma-message.c
index d4d1009fdef..2f44b617710 100644
--- a/gcc/testsuite/gcc.dg/pragma-message.c
+++ b/gcc/testsuite/gcc.dg/pragma-message.c
@@ -16,22 +16,22 @@
matching dg-message), dejagnu will report these as excess errors. */
#pragma message "
-/* { dg-error "17:missing terminating" "" { target *-*-* } 18 } */
-/* { dg-warning "expected a string" "" { target *-*-* } 18 } */
+/* { dg-error "17:missing terminating" "" { target *-*-* } .-1 } */
+/* { dg-warning "expected a string" "" { target *-*-* } .-2 } */
#pragma message "Bad 1
-/* { dg-error "17:missing terminating" "" { target *-*-* } 21 } */
-/* { dg-warning "expected a string" "" { target *-*-* } 21 } */
+/* { dg-error "17:missing terminating" "" { target *-*-* } .-1 } */
+/* { dg-warning "expected a string" "" { target *-*-* } .-2 } */
#pragma message ("Bad 2
-/* { dg-error "18:missing terminating" "" { target *-*-* } 24 } */
-/* { dg-warning "expected a string" "" { target *-*-* } 24 } */
+/* { dg-error "18:missing terminating" "" { target *-*-* } .-1 } */
+/* { dg-warning "expected a string" "" { target *-*-* } .-2 } */
#pragma message ("Bad 3"
-/* { dg-warning "malformed '#pragma message" "" { target *-*-* } 27 } */
+/* { dg-warning "malformed '#pragma message" "" { target *-*-* } .-1 } */
#pragma message "" junk
-/* { dg-warning "junk at end of '#pragma message'" "" { target *-*-* } 30 } */
+/* { dg-warning "junk at end of '#pragma message'" "" { target *-*-* } .-1 } */
#pragma message ("") junk
-/* { dg-warning "junk at end of '#pragma message'" "" { target *-*-* } 33 } */
+/* { dg-warning "junk at end of '#pragma message'" "" { target *-*-* } .-1 } */
#pragma message "" /* No output expected for empty messages. */
#pragma message ("")
diff --git a/gcc/testsuite/gcc.dg/redecl-1.c b/gcc/testsuite/gcc.dg/redecl-1.c
index e04ec801dbd..ff1873910b9 100644
--- a/gcc/testsuite/gcc.dg/redecl-1.c
+++ b/gcc/testsuite/gcc.dg/redecl-1.c
@@ -66,12 +66,12 @@ void test4(void)
void prime5(void)
{
extern double bar5(double); /* { dg-message "note: previous declaration" "previous 1" } */
-} /* { dg-message "note: previous implicit declaration" "previous 2" { target *-*-* } 68 } */
+} /* { dg-message "note: previous implicit declaration" "previous 2" { target *-*-* } .-1 } */
void test5(void)
{
bar5(1); /* { dg-warning "implicit declaration of function" } */
-} /* { dg-error "incompatible implicit declaration" "" { target *-*-* } 73 } */
+} /* { dg-error "incompatible implicit declaration" "" { target *-*-* } .-1 } */
/* Extern then static, both at file scope. */
@@ -95,7 +95,7 @@ static int test7(int x) /* { dg-error "follows non-static" } */
void prime8(void)
{
test8(); /* { dg-message "note: previous" "" } */
- /* { dg-warning "implicit" "implicit" { target *-*-* } 97 } */
+ /* { dg-warning "implicit" "implicit" { target *-*-* } .-1 } */
}
static int test8(int x) /* { dg-error "follows non-static" } */
diff --git a/gcc/testsuite/gcc.dg/sancov/pr80444.c b/gcc/testsuite/gcc.dg/sancov/pr80444.c
new file mode 100644
index 00000000000..362085d0178
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/sancov/pr80444.c
@@ -0,0 +1,9 @@
+/* PR sanitizer/80444 */
+/* { dg-do compile } */
+/* { dg-options "-fsanitize-coverage=trace-pc -fcompare-debug" } */
+
+void
+foo (void)
+{
+ int a = 0;
+}
diff --git a/gcc/testsuite/gcc.dg/simd-1.c b/gcc/testsuite/gcc.dg/simd-1.c
index ff45c9c567e..e92662e5e40 100644
--- a/gcc/testsuite/gcc.dg/simd-1.c
+++ b/gcc/testsuite/gcc.dg/simd-1.c
@@ -33,7 +33,7 @@ hanneke ()
/* Different signed SIMD assignment. */
f = a; /* { dg-message "note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts" } */
- /* { dg-error "incompatible types when assigning" "" { target *-*-* } 35 } */
+ /* { dg-error "incompatible types when assigning" "" { target *-*-* } .-1 } */
/* Casted different signed SIMD assignment. */
f = (uv4si) a;
diff --git a/gcc/testsuite/gcc.dg/simd-5.c b/gcc/testsuite/gcc.dg/simd-5.c
index cb0ecf8982a..cacc469359b 100644
--- a/gcc/testsuite/gcc.dg/simd-5.c
+++ b/gcc/testsuite/gcc.dg/simd-5.c
@@ -5,4 +5,4 @@
#define vector __attribute__ ((vector_size (8)))
vector char x = (vector char) {1,2,3,4,5,6,7,8}; /* { dg-bogus "initializer" } */
vector char y = (vector short) {1,2,3,4}; /* { dg-message "note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts" } */
- /* { dg-error "incompatible types when initializing" "" { target *-*-* } 7 } */
+ /* { dg-error "incompatible types when initializing" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/simd-6.c b/gcc/testsuite/gcc.dg/simd-6.c
index 969697994dc..86363ae5bc5 100644
--- a/gcc/testsuite/gcc.dg/simd-6.c
+++ b/gcc/testsuite/gcc.dg/simd-6.c
@@ -5,4 +5,4 @@
#define vector __attribute__ ((vector_size (8)))
vector char x = (vector char) {1,2,3,4,5,6,7,8}; /* { dg-bogus "initializer" } */
vector char y = (vector short) {1,2,3,4}; /* { dg-message "note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts" } */
- /* { dg-error "incompatible types when initializing" "" { target *-*-* } 7 } */
+ /* { dg-error "incompatible types when initializing" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/spellcheck-fields.c b/gcc/testsuite/gcc.dg/spellcheck-fields.c
index 01be5508dc5..44e05e55423 100644
--- a/gcc/testsuite/gcc.dg/spellcheck-fields.c
+++ b/gcc/testsuite/gcc.dg/spellcheck-fields.c
@@ -38,7 +38,7 @@ int test4 (struct foo *ptr)
int test5 (struct foo *ptr)
{
return ptr->this_is_unlike_any_of_the_fields; /* { dg-bogus "did you mean" } */
- /* { dg-error "has no member named" "" { target *-*-* } 40 } */
+ /* { dg-error "has no member named" "" { target *-*-* } .-1 } */
}
union u
diff --git a/gcc/testsuite/gcc.dg/spellcheck-typenames.c b/gcc/testsuite/gcc.dg/spellcheck-typenames.c
index ae22ce318ae..f3b8102d5a4 100644
--- a/gcc/testsuite/gcc.dg/spellcheck-typenames.c
+++ b/gcc/testsuite/gcc.dg/spellcheck-typenames.c
@@ -54,7 +54,7 @@ int64 i; /* { dg-error "unknown type name 'int64'; did you mean 'int64_t'?" } */
/* Verify that gcc doesn't offer nonsensical suggestions. */
nonsensical_suggestion_t var; /* { dg-bogus "did you mean" } */
-/* { dg-error "unknown type name" "" { target { *-*-* } } 56 } */
+/* { dg-error "unknown type name" "" { target { *-*-* } } .-1 } */
/* { dg-begin-multiline-output "" }
nonsensical_suggestion_t var;
^~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/gcc/testsuite/gcc.dg/struct-semi-2.c b/gcc/testsuite/gcc.dg/struct-semi-2.c
index 3708e534fb6..1c336c5f4b7 100644
--- a/gcc/testsuite/gcc.dg/struct-semi-2.c
+++ b/gcc/testsuite/gcc.dg/struct-semi-2.c
@@ -5,7 +5,7 @@
/* { dg-options "-pedantic" } */
struct s0 { ; }; /* { dg-warning "extra semicolon in struct or union specified" } */
-/* { dg-warning "struct has no members" "empty" { target *-*-* } 7 } */
+/* { dg-warning "struct has no members" "empty" { target *-*-* } .-1 } */
struct s1 {
int a;
; /* { dg-warning "extra semicolon in struct or union specified" } */
diff --git a/gcc/testsuite/gcc.dg/struct-semi-3.c b/gcc/testsuite/gcc.dg/struct-semi-3.c
index da0f237a694..e114cfa6d25 100644
--- a/gcc/testsuite/gcc.dg/struct-semi-3.c
+++ b/gcc/testsuite/gcc.dg/struct-semi-3.c
@@ -5,7 +5,7 @@
/* { dg-options "-pedantic-errors" } */
struct s0 { ; }; /* { dg-error "extra semicolon in struct or union specified" } */
-/* { dg-error "struct has no members" "empty" { target *-*-* } 7 } */
+/* { dg-error "struct has no members" "empty" { target *-*-* } .-1 } */
struct s1 {
int a;
; /* { dg-error "extra semicolon in struct or union specified" } */
diff --git a/gcc/testsuite/gcc.dg/torture/pr57993-2.cpp b/gcc/testsuite/gcc.dg/torture/pr57993-2.cpp
index d8fd371b096..b7bffa89e41 100644
--- a/gcc/testsuite/gcc.dg/torture/pr57993-2.cpp
+++ b/gcc/testsuite/gcc.dg/torture/pr57993-2.cpp
@@ -1,5 +1,5 @@
/* This ICEd due to an incomplete fix for PR57993. */
-/* { dg-compile } */
+/* { dg-do compile } */
extern "C"
{
diff --git a/gcc/testsuite/gcc.dg/torture/pr80163.c b/gcc/testsuite/gcc.dg/torture/pr80163.c
new file mode 100644
index 00000000000..80cc68dd76d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr80163.c
@@ -0,0 +1,35 @@
+/* PR c/80163 */
+/* { dg-do compile { target int128 } } */
+
+volatile int v;
+
+__attribute__((noinline, noclone)) void
+bar (void)
+{
+ v++;
+ asm volatile ("" : : : "memory");
+}
+
+__attribute__((noinline, noclone)) __int128_t *
+foo (unsigned long **p)
+{
+a:
+ bar ();
+b:
+ bar ();
+ static __int128_t d = (unsigned long) &&a - (unsigned long) &&b;
+ static unsigned long e = (unsigned long) &&a - (unsigned long) &&b;
+ *p = &e;
+ return &d;
+}
+
+int
+main ()
+{
+ __int128_t *p;
+ unsigned long *q;
+ p = foo (&q);
+ if (*p != *q)
+ __builtin_abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/torture/pr80359.c b/gcc/testsuite/gcc.dg/torture/pr80359.c
new file mode 100644
index 00000000000..89b3d530528
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr80359.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+
+void FFT(_Complex *X, int length)
+{
+ unsigned i, j;
+ for (; i < length; i++)
+ {
+ X[i] = 0;
+ for (j = 0; j < length; j++)
+ X[i] = X[i] / length;
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/transparent-union-3.c b/gcc/testsuite/gcc.dg/transparent-union-3.c
index 3e4cd77fa4c..7f0dda54fae 100644
--- a/gcc/testsuite/gcc.dg/transparent-union-3.c
+++ b/gcc/testsuite/gcc.dg/transparent-union-3.c
@@ -7,16 +7,16 @@
enum e { A };
union __attribute__((__transparent_union__)) ue1 { enum e; }; /* { dg-warning "declaration does not declare anything" "not anything" } */
-/* { dg-warning "union cannot be made transparent" "cannot" { target *-*-* } 9 } */
+/* { dg-warning "union cannot be made transparent" "cannot" { target *-*-* } .-1 } */
union ue2 { enum e; } __attribute__((__transparent_union__)); /* { dg-warning "declaration does not declare anything" "not anything" } */
-/* { dg-warning "union cannot be made transparent" "cannot" { target *-*-* } 11 } */
+/* { dg-warning "union cannot be made transparent" "cannot" { target *-*-* } .-1 } */
union __attribute__((__transparent_union__)) ui1 { int; }; /* { dg-warning "declaration does not declare anything" "not anything" } */
-/* { dg-warning "union cannot be made transparent" "cannot" { target *-*-* } 14 } */
+/* { dg-warning "union cannot be made transparent" "cannot" { target *-*-* } .-1 } */
union ui2 { int; } __attribute__((__transparent_union__)); /* { dg-warning "declaration does not declare anything" "no anything" } */
-/* { dg-warning "union cannot be made transparent" "cannot" { target *-*-* } 16 } */
+/* { dg-warning "union cannot be made transparent" "cannot" { target *-*-* } .-1 } */
union __attribute__((__transparent_union__)) u1 { };
-/* { dg-warning "union cannot be made transparent" "" { target *-*-* } 19 } */
+/* { dg-warning "union cannot be made transparent" "" { target *-*-* } .-1 } */
union u2 { } __attribute__((__transparent_union__));
-/* { dg-warning "union cannot be made transparent" "" { target *-*-* } 21 } */
+/* { dg-warning "union cannot be made transparent" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-3.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-3.c
index 207ee7ef3b9..fae2a1b73ea 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-3.c
@@ -2,7 +2,7 @@
Test case derived from the one submitted in the bug. It verifies
that the sprintf return value (or value range) optimization is not
performed for an unknown string. */
-/* { dg-compile } */
+/* { dg-do compile } */
/* { dg-options "-O2 -Wall -Werror -fdump-tree-optimized -fprintf-return-value" } */
#define INT_MAX __INT_MAX__
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-4.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-4.c
index 08993a24356..a741550b44f 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-4.c
@@ -2,7 +2,7 @@
gimple-ssa-sprintf.c:214
Disable warnings to exercise code paths through the pass that may
not be exercised when the -Wformat-overflow option is in effect. */
-/* { dg-compile }
+/* { dg-do compile }
{ dg-options "-O2 -fdump-tree-optimized -w" } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-5.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-5.c
index e12aa2caa9a..7870f555080 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-5.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-5.c
@@ -1,6 +1,6 @@
/* PR middle-end/78476 - snprintf(0, 0, ...) with known arguments not
optimized away
- { dg-compile }
+ { dg-do compile }
{ dg-options "-O2 -fdump-tree-optimized" }
{ dg-require-effective-target int32plus } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-6.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-6.c
index abd49dfcc03..f9c8687efa2 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-6.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-6.c
@@ -4,7 +4,7 @@
A negative test complementing builtin-sprintf-5.c to verify that calls
to the function that do not return a constant are not optimized away.
Test also verifies that unknown directives prevent the optimization.
- { dg-compile }
+ { dg-do compile }
{ dg-options "-O2 -Wformat -fdump-tree-optimized" }
{ dg-require-effective-target int32plus } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-10.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-10.c
index 1213e89f7bb..30599ad04dc 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-10.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-10.c
@@ -2,6 +2,7 @@
Test to verify the correctness of ranges of output computed for floating
point directives.
{ dg-do compile }
+ { dg-require-effective-target double64plus }
{ dg-options "-O2 -Wformat -Wformat-overflow -ftrack-macro-expansion=0" } */
typedef __builtin_va_list va_list;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-16.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-16.c
new file mode 100644
index 00000000000..d6cbfe3e191
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-16.c
@@ -0,0 +1,255 @@
+/* PR middle-end/80364 - sanitizer detects signed integer overflow
+ in gimple-ssa-sprintf.c
+ { dg-do compile }
+ { dg-options "-O2 -Wall -Wformat-overflow=1 -ftrack-macro-expansion=0" }
+ { dg-require-effective-target int32plus } */
+
+typedef __SIZE_TYPE__ size_t;
+typedef __WCHAR_TYPE__ wchar_t;
+
+void sink (void*);
+void* get_value (void);
+
+/* Return a random width as type T. */
+#define W(T) *(T*)get_value ()
+
+/* Return a random precision as type T. */
+#define P(T) *(T*)get_value ()
+
+/* Return a random value as type T. */
+#define V(T) *(T*)get_value ()
+
+extern char buf[1];
+
+/* Test convenience macro. */
+#define T(fmt, ...) \
+ __builtin_sprintf (buf + 1, fmt, __VA_ARGS__); \
+ sink (buf)
+
+typedef signed char schar_t;
+typedef unsigned char uchar_t;
+typedef signed short sshort_t;
+typedef unsigned short ushort_t;
+typedef signed int sint_t;
+typedef unsigned int uint_t;
+typedef signed long slong_t;
+typedef unsigned long ulong_t;
+typedef signed long long sllong_t;
+typedef unsigned long long ullong_t;
+
+#if __SIZEOF_INT128__
+typedef __int128_t sint128_t;
+typedef __uint128_t uint128_t;
+#else
+/* When __int128_t is not available, repeat the same tests with long long.
+ This is to avoid having to guard the tests below and to avoid making
+ the dg-warning directives conditional. */
+typedef signed long long sint128_t;
+typedef unsigned long long uint128_t;
+#endif
+
+const sint128_t sint128_max
+ = (sint128_t)1 << (sizeof sint128_max * __CHAR_BIT__ - 2);
+const sint128_t uint128_max = (uint128_t)-1;
+
+void test_width_cst (void)
+{
+ T ("%*i", W (schar_t), 1); /* { dg-warning "between 1 and 128 " } */
+ T ("%*i", W (uchar_t), 12); /* { dg-warning "between 2 and 255 " } */
+
+ T ("%*i", W (sshort_t), 123); /* { dg-warning "between 3 and 32768 " } */
+ T ("%*i", W (ushort_t), 1234); /* { dg-warning "between 4 and 65535 " } */
+
+ T ("%*i", W (sint_t), 12345); /* { dg-warning "between 5 and 2147483648 " } */
+ T ("%*i", W (uint_t), 123456); /* { dg-warning "between 6 and 2147483648 " } */
+
+ /* Exercise calls with invalid arguments (to verify there is no ICE). */
+ T ("%*li", W (slong_t), 1234567L); /* { dg-warning "between 7 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%*li", W (ulong_t), 12345678L); /* { dg-warning "between 8 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ T ("%*lli", W (sllong_t), 123456789LL); /* { dg-warning "between 9 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%*lli", W (ullong_t), 1234567890LL); /* { dg-warning "between 10 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ T ("%*i", W (sint128_t), 0); /* { dg-warning "between 1 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%*i", W (uint128_t), 1); /* { dg-warning "between 1 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ {
+ extern sint128_t si128;
+ if (si128 < sint128_max / 2 || sint128_max - 8 < si128)
+ si128 = sint128_max / 2;
+
+ T ("%*i", si128, 0); /* { dg-warning "between 1 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ extern uint128_t ui128;
+ if (ui128 < uint128_max / 2 || uint128_max - 8 < ui128)
+ ui128 = uint128_max / 2;
+
+ T ("%*i", ui128, 0); /* { dg-warning "between 1 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ }
+
+ T ("%*i", W (float), 2); /* { dg-warning "between 1 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%*i", W (double), 3); /* { dg-warning "between 1 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+}
+
+void test_width_var (void)
+{
+ T ("%*i", W (schar_t), V (schar_t)); /* { dg-warning "between 1 and 128 " } */
+ T ("%*i", W (uchar_t), V (uchar_t)); /* { dg-warning "between 1 and 255 " } */
+
+ T ("%*i", W (sshort_t), V (sshort_t)); /* { dg-warning "between 1 and 32768 " } */
+ T ("%*i", W (ushort_t), V (ushort_t)); /* { dg-warning "between 1 and 65535 " } */
+
+ T ("%*i", W (sint_t), V (sint_t)); /* { dg-warning "between 1 and 2147483648 " } */
+ T ("%*i", W (uint_t), V (uint_t)); /* { dg-warning "between 1 and 2147483648 " } */
+
+ /* Exercise calls with invalid arguments (to verify there is no ICE). */
+ T ("%*li", W (slong_t), V (slong_t)); /* { dg-warning "between 1 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%*li", W (ulong_t), V (ulong_t)); /* { dg-warning "between 1 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ T ("%*lli", W (sllong_t), V (sllong_t)); /* { dg-warning "between 1 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%*lli", W (ullong_t), V (ullong_t)); /* { dg-warning "between 1 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ T ("%*i", W (float), V (int)); /* { dg-warning "between 1 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%*i", W (double), V (int)); /* { dg-warning "between 1 and 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ {
+ /* Create an unsigned range with a lower bound greater than 1 and
+ an upper bound in excess of INT_MAX and verify that the lower
+ bound isn't used as the minimum output (since the excessive
+ upper bound wraps around zero). It's possible to constrain
+ the upper bound on the output more, based on the upper bound
+ of the width here, but not worth the trouble. */
+ extern unsigned w;
+ if (w < 5 || (unsigned)-1 - 7 < w)
+ w = 5;
+
+ T ("%*u", w, V (int)); /* { dg-warning "between 1 and 2147483648 " } */
+ }
+
+ {
+ /* Verify that enums are correctly handled (i.e., that the warning
+ doesn't just test for TREE_CODE(type) == INTEGER_TYPE but instead
+ uses INTEGRAL_TYPE_P() or some equivalent. */
+ enum WidthEnum { e7 = 7, e9 = 9 };
+ enum WidthEnum w = V (enum WidthEnum);
+ if (w < e7 || e9 < w)
+ w = e7;
+
+ T ("%*hu", w, V (int)); /* { dg-warning "between 7 and 9 " } */
+ }
+}
+
+void test_precision_cst (void)
+{
+ T ("%.*i", P (schar_t), 1); /* { dg-warning "between 1 and 127 " } */
+ T ("%.*i", P (uchar_t), 12); /* { dg-warning "between 2 and 255 " } */
+
+ T ("%.*i", P (sshort_t), 123); /* { dg-warning "between 3 and 32767 " } */
+ T ("%.*i", P (ushort_t), 1234); /* { dg-warning "between 4 and 65535 " } */
+
+ T ("%.*i", P (sint_t), 12345); /* { dg-warning "between 5 and 2147483647 " } */
+ T ("%.*i", P (uint_t), 123456); /* { dg-warning "between 6 and 2147483647 " } */
+
+ /* Exercise calls with invalid arguments (to verify there is no ICE). */
+ T ("%.*li", P (slong_t), 1234567L); /* { dg-warning "between 7 and 2147483647 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%.*li", P (ulong_t), 12345678L); /* { dg-warning "between 8 and 2147483647 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ T ("%.*lli", P (sllong_t), 123456789LL); /* { dg-warning "between 9 and 2147483647 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%.*lli", P (ullong_t), 1234567890LL); /* { dg-warning "between 10 and 2147483647 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ T ("%.*i", P (sint128_t), 0); /* { dg-warning "up to 2147483647 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%.*i", P (uint128_t), 1); /* { dg-warning "between 1 and 2147483647 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ {
+ extern sint128_t si128;
+ if (si128 < sint128_max / 2 || sint128_max - 8 < si128)
+ si128 = sint128_max / 2;
+
+ T ("%.*i", si128, 0); /* { dg-warning "up to 2147483647 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ extern uint128_t ui128;
+ if (ui128 < uint128_max / 2 || uint128_max - 8 < ui128)
+ ui128 = uint128_max / 2;
+
+ T ("%.*i", ui128, 0); /* { dg-warning "up to 2147483647 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ }
+
+ T ("%.*i", P (float), 0); /* { dg-warning "up to 2147483647 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%.*i", P (double), 1); /* { dg-warning "between 1 and 2147483647 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+}
+
+void test_precision_var (void)
+{
+ T ("%.*i", P (schar_t), V (schar_t)); /* { dg-warning "up to 128 " } */
+ T ("%.*i", P (uchar_t), V (uchar_t)); /* { dg-warning "up to 255 " } */
+
+ T ("%.*i", P (sshort_t), V (sshort_t)); /* { dg-warning "up to 32768 " } */
+ T ("%.*i", P (ushort_t), V (ushort_t)); /* { dg-warning "up to 65535 " } */
+
+ T ("%.*i", P (sint_t), V (sint_t)); /* { dg-warning "up to 2147483648 " } */
+ T ("%.*i", P (uint_t), V (uint_t)); /* { dg-warning "up to 2147483648 " } */
+
+ /* Exercise calls with invalid arguments (to verify there is no ICE). */
+ T ("%.*li", P (slong_t), V (slong_t)); /* { dg-warning "up to 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%.*li", P (ulong_t), V (ulong_t)); /* { dg-warning "up to 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ T ("%.*lli", P (sllong_t), V (sllong_t)); /* { dg-warning "up to 2147483648" } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%.*lli", P (ullong_t), V (ullong_t)); /* { dg-warning "up to 2147483648" } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ T ("%.*i", P (float), V (int)); /* { dg-warning "up to 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+ T ("%.*i", P (double), V (int)); /* { dg-warning "up to 2147483648 " } */
+ /* { dg-warning "expects argument of type .int." "" { target *-*-* } .-1 } */
+
+ {
+ /* Similar to the corresponding width case, create an unsigned range
+ with a lower bound greater than 1 and an upper bound in excess of
+ INT_MAX and verify that the lower bound isn't used as the minimum
+ output (since the excessive upper bound wraps around zero). */
+ extern unsigned p;
+ if (p < 7 || (unsigned)-1 - 9 < p)
+ p = 7;
+
+ T ("%.*u", p, V (int)); /* { dg-warning "up to 2147483647 " } */
+ }
+
+ {
+ /* Verify that enums are correctly handled. */
+ enum PrecEnum { e9 = 9, e17 = 17 };
+ enum PrecEnum p = V (enum PrecEnum);
+ if (p < e9 || e17 < p)
+ p = e9;
+
+ T ("%.*u", p, V (int)); /* { dg-warning "between 9 and 17 " } */
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-3.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-3.c
index 72ec3afaa41..9db7ad74f37 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-3.c
@@ -358,19 +358,19 @@ void test_too_large (char *d, int x, __builtin_va_list va)
__builtin_snprintf (d, imax, "%c", x);
__builtin_snprintf (d, imax_p1, "%c", x); /* { dg-warning "specified bound \[0-9\]+ exceeds .INT_MAX." "INT_MAX + 1" { target lp64 } } */
- /* { dg-warning "specified bound \[0-9\]+ exceeds maximum object size" "INT_MAX + 1" { target { ilp32 } } .-1 } */
+ /* { dg-warning "specified bound \[0-9\]+ exceeds maximum object size" "INT_MAX + 1" { target { { avr-*-* } || ilp32 } } .-1 } */
__builtin_vsnprintf (d, imax, "%c", va);
__builtin_vsnprintf (d, imax_p1, "%c", va); /* { dg-warning "specified bound \[0-9\]+ exceeds .INT_MAX." "INT_MAX + 1" { target lp64 } } */
- /* { dg-warning "specified bound \[0-9\]+ exceeds maximum object size" "INT_MAX + 1" { target { ilp32 } } .-1 } */
+ /* { dg-warning "specified bound \[0-9\]+ exceeds maximum object size" "INT_MAX + 1" { target { { avr-*-* } || ilp32 } } .-1 } */
__builtin___snprintf_chk (d, imax, 0, imax, "%c", x);
__builtin___snprintf_chk (d, imax_p1, 0, imax_p1, "%c", x); /* { dg-warning "specified bound \[0-9\]+ exceeds .INT_MAX." "INT_MAX + 1" { target lp64 } } */
- /* { dg-warning "specified bound \[0-9\]+ exceeds maximum object size" "INT_MAX + 1" { target { ilp32 } } .-1 } */
+ /* { dg-warning "specified bound \[0-9\]+ exceeds maximum object size" "INT_MAX + 1" { target { { avr-*-* } || ilp32 } } .-1 } */
__builtin___vsnprintf_chk (d, imax, 0, imax, "%c", va);
__builtin___vsnprintf_chk (d, imax_p1, 0, imax_p1, "%c", va); /* { dg-warning "specified bound \[0-9\]+ exceeds .INT_MAX." "INT_MAX + 1" { target lp64 } } */
- /* { dg-warning "specified bound \[0-9\]+ exceeds maximum object size" "INT_MAX + 1" { target { ilp32 } } .-1 } */
+ /* { dg-warning "specified bound \[0-9\]+ exceeds maximum object size" "INT_MAX + 1" { target { { avr-*-* } || ilp32 } } .-1 } */
const size_t ptrmax = __PTRDIFF_MAX__;
const size_t ptrmax_m1 = ptrmax - 1;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-5.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-5.c
index f6f60ccc906..2a6739ec2f3 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-5.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-5.c
@@ -1,8 +1,7 @@
/* PR bootstrap/77676 - powerpc64 and powerpc64le stage2 bootstrap fail
Test case from comment 6 on the bug. */
-/* { dg-compile } */
+/* { dg-do compile } */
/* { dg-options "-Wall -Werror" } */
-/* { dg-additional-options "-m32" { target { i?86-*-* x86_64-*-* } } } */
struct A
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr79327-2.c b/gcc/testsuite/gcc.dg/tree-ssa/pr79327-2.c
index f72e4cc353c..4c9d60625c0 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr79327-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr79327-2.c
@@ -1,5 +1,5 @@
/* PR tree-optimization/79327 - wrong code at -O2 and -fprintf-return-value
- { dg-compile }
+ { dg-do compile }
{ dg-options "-O2 -fdump-tree-optimized" } */
#define CAT(s, n) s ## n
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr79352.c b/gcc/testsuite/gcc.dg/tree-ssa/pr79352.c
index 4a153b71e43..485e2d64cb3 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr79352.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr79352.c
@@ -1,6 +1,6 @@
/* PR tree-optimization/79352 - -fprintf-return-value doesn't handle
flexible-like array members properly
- { dg-compile }
+ { dg-do compile }
{ dg-options "-O2 -fdump-tree-optimized" } */
struct A { int i; char a1[1]; };
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr79376.c b/gcc/testsuite/gcc.dg/tree-ssa/pr79376.c
index 838bfe0508e..01ecd178211 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr79376.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr79376.c
@@ -1,6 +1,6 @@
/* PR tree-optimization/79376 - wrong lower bound with %s and non-constant
strings in -Wformat-overflow
- { dg-compile }
+ { dg-do compile }
{ dg-options "-O2 -fdump-tree-optimized" } */
#define CAT(s, n) s ## n
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c b/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c
index cef1ef192ab..bf889318c06 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c
@@ -1,7 +1,7 @@
/* PR tree-optimization/79691 - -Wformat-truncation suppressed by
(and only by) -Og
- { dg-compile }
+ { dg-do compile }
{ dg-options "-Og -Wall -fdump-tree-optimized" } */
char d[2];
diff --git a/gcc/testsuite/gcc.dg/ubsan/pr70878.c b/gcc/testsuite/gcc.dg/ubsan/pr70878.c
new file mode 100644
index 00000000000..acd7fb05e4c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ubsan/pr70878.c
@@ -0,0 +1,9 @@
+/* PR sanitizer/80878 */
+/* { dg-do compile { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
+/* { dg-options "-fsanitize=object-size" } */
+
+void * sbrk ()
+{
+ volatile register unsigned int sp_r1 __asm__ ("ebx");
+ return __builtin_strcat ((char*)sp_r1, 0); /* { dg-warning "cast to pointer from integer of different size" } */
+}
diff --git a/gcc/testsuite/gcc.dg/ucnid-8.c b/gcc/testsuite/gcc.dg/ucnid-8.c
index 703b77654b7..450b4d9ef12 100644
--- a/gcc/testsuite/gcc.dg/ucnid-8.c
+++ b/gcc/testsuite/gcc.dg/ucnid-8.c
@@ -13,4 +13,4 @@ void f (int b) { int \u00e9[b]; } /* { dg-warning "variable length array '\\\\U0
void g (static int \u00e9); /* { dg-error "storage class specified for parameter '\\\\U000000e9'" } */
struct s2 { int \u00e1; } \u00e9 = { { 0 } }; /* { dg-warning "braces around scalar initializer" } */
-/* { dg-message "near initialization for '\\\\U000000e9\\.\\\\U000000e1'" "UCN diag" { target *-*-* } 15 } */
+/* { dg-message "near initialization for '\\\\U000000e9\\.\\\\U000000e1'" "UCN diag" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/uninit-pr19430-O0.c b/gcc/testsuite/gcc.dg/uninit-pr19430-O0.c
index 63f0b2b44f3..3b6a3163497 100644
--- a/gcc/testsuite/gcc.dg/uninit-pr19430-O0.c
+++ b/gcc/testsuite/gcc.dg/uninit-pr19430-O0.c
@@ -6,7 +6,7 @@ extern void baz (int *);
int
foo (int i)
{
- int j; /* { dg-warning "'j' may be used uninitialized in this function" "uninitialized" { xfail *-*-* } 9 } */
+ int j; /* { dg-warning "'j' may be used uninitialized in this function" "uninitialized" { xfail *-*-* } . } */
if (bar (i)) {
baz (&j);
diff --git a/gcc/testsuite/gcc.dg/uninit-pr19430.c b/gcc/testsuite/gcc.dg/uninit-pr19430.c
index 36129314872..a21b641f092 100644
--- a/gcc/testsuite/gcc.dg/uninit-pr19430.c
+++ b/gcc/testsuite/gcc.dg/uninit-pr19430.c
@@ -5,7 +5,7 @@ extern void baz (int *);
int
foo (int i)
{
- int j; /* { dg-warning "'j' may be used uninitialized in this function" "uninitialized" { xfail *-*-* } 8 } */
+ int j; /* { dg-warning "'j' may be used uninitialized in this function" "uninitialized" { xfail *-*-* } . } */
if (bar (i)) {
baz (&j);
diff --git a/gcc/testsuite/gcc.dg/uninit-pr20644-O0.c b/gcc/testsuite/gcc.dg/uninit-pr20644-O0.c
index 092d4116495..88099e62bb7 100644
--- a/gcc/testsuite/gcc.dg/uninit-pr20644-O0.c
+++ b/gcc/testsuite/gcc.dg/uninit-pr20644-O0.c
@@ -7,7 +7,7 @@ int foo ()
int j;
if (1 == i)
- return j; /* { dg-bogus "uninitialized" "uninitialized" { xfail *-*-* } 10 } */
+ return j; /* { dg-bogus "uninitialized" "uninitialized" { xfail *-*-* } . } */
return 0;
}
@@ -18,7 +18,7 @@ int bar ()
int j;
if (1 == i)
- return j; /* { dg-warning "uninitialized" "uninitialized" { target *-*-* } 21 } */
+ return j; /* { dg-warning "uninitialized" "uninitialized" { target *-*-* } . } */
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/unroll-7.c b/gcc/testsuite/gcc.dg/unroll-7.c
index 70b92ba080f..e76d4faf16c 100644
--- a/gcc/testsuite/gcc.dg/unroll-7.c
+++ b/gcc/testsuite/gcc.dg/unroll-7.c
@@ -2,7 +2,9 @@
/* { dg-options "-O2 -fdump-rtl-loop2_unroll -funroll-loops" } */
/* { dg-require-effective-target int32plus } */
-int t(int *a)
+extern int *a;
+
+int t(void)
{
int i;
for (i=0;i<1000000;i++)
diff --git a/gcc/testsuite/gcc.dg/utf-dflt.c b/gcc/testsuite/gcc.dg/utf-dflt.c
index fc830d878a6..18ca30e8b93 100644
--- a/gcc/testsuite/gcc.dg/utf-dflt.c
+++ b/gcc/testsuite/gcc.dg/utf-dflt.c
@@ -4,9 +4,9 @@
/* { dg-options "-std=gnu89" } */
const unsigned short c0 = u'a'; /* { dg-error "undeclared" "undeclared" } */
- /* { dg-error "expected ',' or ';'" "expected" { target *-*-* } 6 } */
+ /* { dg-error "expected ',' or ';'" "expected" { target *-*-* } .-1 } */
const unsigned long c1 = U'a'; /* { dg-error "undeclared" "undeclared" } */
- /* { dg-error "expected ',' or ';'" "expected" { target *-*-* } 8 } */
+ /* { dg-error "expected ',' or ';'" "expected" { target *-*-* } .-1 } */
#define u 1 +
#define U 2 +
diff --git a/gcc/testsuite/gcc.dg/utf-dflt2.c b/gcc/testsuite/gcc.dg/utf-dflt2.c
index bf2210c4625..5e38b09c9b6 100644
--- a/gcc/testsuite/gcc.dg/utf-dflt2.c
+++ b/gcc/testsuite/gcc.dg/utf-dflt2.c
@@ -3,7 +3,7 @@
/* { dg-options "-std=gnu89" } */
const void *s0 = u8"a"; /* { dg-error "undeclared" "undeclared" } */
- /* { dg-error "expected ',' or ';'" "expected" { target *-*-* } 5 } */
+ /* { dg-error "expected ',' or ';'" "expected" { target *-*-* } .-1 } */
#define u8 "a"
diff --git a/gcc/testsuite/gcc.dg/utf16-4.c b/gcc/testsuite/gcc.dg/utf16-4.c
index 61cb10a1ac3..95cfce8b8bd 100644
--- a/gcc/testsuite/gcc.dg/utf16-4.c
+++ b/gcc/testsuite/gcc.dg/utf16-4.c
@@ -15,7 +15,7 @@ char16_t c5 = U'\u2029';
char16_t c6 = U'\U00064321'; /* { dg-warning "implicitly truncated" } */
char16_t c7 = L'a';
char16_t c8 = L'\u2029';
-char16_t c9 = L'\U00064321'; /* { dg-warning "implicitly truncated" "" { target { 4byte_wchar_t } } 18 } */
- /* { dg-warning "constant too long" "" { target { ! 4byte_wchar_t } } 18 } */
+char16_t c9 = L'\U00064321'; /* { dg-warning "implicitly truncated" "" { target { 4byte_wchar_t } } . } */
+ /* { dg-warning "constant too long" "" { target { ! 4byte_wchar_t } } .-1 } */
int main () {}
diff --git a/gcc/testsuite/gcc.dg/vla-11.c b/gcc/testsuite/gcc.dg/vla-11.c
index 7db34421ea0..1504853a55a 100644
--- a/gcc/testsuite/gcc.dg/vla-11.c
+++ b/gcc/testsuite/gcc.dg/vla-11.c
@@ -9,4 +9,4 @@
void foo11a(int x[sizeof(int *(*)[*])]); /* { dg-warning "not in a declaration" } */
void foo11b(__SIZE_TYPE__ x, int y[(__UINTPTR_TYPE__)(int (*)[*])x]); /* { dg-warning "not in a declaration" } */
void foo11c(struct s { int (*x)[*]; } *y); /* { dg-error "a member of a structure or union cannot have a variably modified type" "variably modified" } */
-/* { dg-warning "'struct s' declared inside parameter list" "struct decl" { target *-*-* } 11 } */
+/* { dg-warning "'struct s' declared inside parameter list" "struct decl" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/vla-20.c b/gcc/testsuite/gcc.dg/vla-20.c
index 04d9ee753a3..831ed1b8cd2 100644
--- a/gcc/testsuite/gcc.dg/vla-20.c
+++ b/gcc/testsuite/gcc.dg/vla-20.c
@@ -9,4 +9,4 @@ void foo11d(int x[sizeof(int *[*])]); /* { dg-warning "not in a declaration" } *
constant expression if not evaluated. */
void foo11e(int x[1 ? 0 : sizeof(int *[*])]); /* { dg-warning "not in a declaration" } */
-/* { dg-error "zero-size array" "correct zero size" { target *-*-* } 11 } */
+/* { dg-error "zero-size array" "correct zero size" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/vla-init-1.c b/gcc/testsuite/gcc.dg/vla-init-1.c
index 5e20530ab98..38e9b011b9c 100644
--- a/gcc/testsuite/gcc.dg/vla-init-1.c
+++ b/gcc/testsuite/gcc.dg/vla-init-1.c
@@ -10,6 +10,6 @@ void
foo (void)
{
int x[a] = { 1 }; /* { dg-error "variable-sized object may not be initialized" "VLA init" } */
- /* { dg-warning "excess elements in array initializer" "excess" { target *-*-* } 12 } */
- /* { dg-message "near initialization" "near" { target *-*-* } 12 } */
+ /* { dg-warning "excess elements in array initializer" "excess" { target *-*-* } .-1 } */
+ /* { dg-message "near initialization" "near" { target *-*-* } .-2 } */
}
diff --git a/gcc/testsuite/gcc.dg/vla-init-2.c b/gcc/testsuite/gcc.dg/vla-init-2.c
index e13d97cd11d..19fbffc2640 100644
--- a/gcc/testsuite/gcc.dg/vla-init-2.c
+++ b/gcc/testsuite/gcc.dg/vla-init-2.c
@@ -7,4 +7,4 @@
const int i = 1;
void foo() { char a[][i] = {""}; } /* { dg-error "variable-sized object may not be initialized" } */
-/* { dg-error "array size missing in 'a'" "extra error" { target *-*-* } 9 } */
+/* { dg-error "array size missing in 'a'" "extra error" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/vla-init-3.c b/gcc/testsuite/gcc.dg/vla-init-3.c
index 710bcc0386d..55e1de69ca7 100644
--- a/gcc/testsuite/gcc.dg/vla-init-3.c
+++ b/gcc/testsuite/gcc.dg/vla-init-3.c
@@ -6,4 +6,4 @@
/* { dg-options "" } */
void foo(int i) { char a[][i] = {""}; } /* { dg-error "variable-sized object may not be initialized" } */
-/* { dg-error "array size missing in 'a'" "extra error" { target *-*-* } 8 } */
+/* { dg-error "array size missing in 'a'" "extra error" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.dg/weak/weak-6.c b/gcc/testsuite/gcc.dg/weak/weak-6.c
index 6fa0d66ff2d..f601c3e19d6 100644
--- a/gcc/testsuite/gcc.dg/weak/weak-6.c
+++ b/gcc/testsuite/gcc.dg/weak/weak-6.c
@@ -3,5 +3,5 @@
extern void * foo (void);
void * foo (void) { return (void *)foo; }
-/* { dg-error "function pointer" "pointer conversion" { target *-*-* } 5 } */
+/* { dg-error "function pointer" "pointer conversion" { target *-*-* } .-1 } */
#pragma weak foo
diff --git a/gcc/testsuite/gcc.dg/weak/weak-7.c b/gcc/testsuite/gcc.dg/weak/weak-7.c
index 07c03bc975a..b5e5ba27349 100644
--- a/gcc/testsuite/gcc.dg/weak/weak-7.c
+++ b/gcc/testsuite/gcc.dg/weak/weak-7.c
@@ -3,5 +3,5 @@
extern void * foo (void);
void * foo (void) { return (void *)foo; }
-/* { dg-error "function pointer" "pointer conversion" { target *-*-* } 5 } */
+/* { dg-error "function pointer" "pointer conversion" { target *-*-* } .-1 } */
extern void * foo (void) __attribute__((weak));
diff --git a/gcc/testsuite/gcc.dg/wtr-int-type-1.c b/gcc/testsuite/gcc.dg/wtr-int-type-1.c
index c0a600d842a..8a079308328 100644
--- a/gcc/testsuite/gcc.dg/wtr-int-type-1.c
+++ b/gcc/testsuite/gcc.dg/wtr-int-type-1.c
@@ -26,7 +26,7 @@ testfunc ()
/* But this one should, since it doesn't fit in long (long), but
does fit in unsigned long (long). */
i = 18446744073709551615; /* { dg-warning "integer constant is so large that it is unsigned" "so large" } */
- /* { dg-warning "this decimal constant would be unsigned in ISO C90" "ISO C90" { target *-*-* } 28 } */
+ /* { dg-warning "this decimal constant would be unsigned in ISO C90" "ISO C90" { target *-*-* } .-1 } */
# 29 "sys-header.h" 3
}
diff --git a/gcc/testsuite/gcc.target/aarch64/mgeneral-regs_1.c b/gcc/testsuite/gcc.target/aarch64/mgeneral-regs_1.c
index b5192a6a483..1656db5a1bc 100644
--- a/gcc/testsuite/gcc.target/aarch64/mgeneral-regs_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/mgeneral-regs_1.c
@@ -2,8 +2,8 @@
typedef int int32x2_t __attribute__ ((__vector_size__ ((8))));
-/* { dg-error "'-mgeneral-regs-only' is incompatible with vector return type" "" {target "aarch64*-*-*"} 7 } */
-/* { dg-error "'-mgeneral-regs-only' is incompatible with vector argument" "" {target "aarch64*-*-*"} 7 } */
+/* { dg-error "'-mgeneral-regs-only' is incompatible with vector return type" "" {target "aarch64*-*-*"} .+2 } */
+/* { dg-error "'-mgeneral-regs-only' is incompatible with vector argument" "" {target "aarch64*-*-*"} .+1 } */
int32x2_t test (int32x2_t a, int32x2_t b)
{
return a + b;
diff --git a/gcc/testsuite/gcc.target/arc/loop-1.c b/gcc/testsuite/gcc.target/arc/loop-1.c
new file mode 100644
index 00000000000..1afe8ebacea
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arc/loop-1.c
@@ -0,0 +1,45 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+/* This case would fail to make use of the zero-overhead loop
+ instruction at one time due to a bug. */
+
+extern char a[];
+
+struct some_t
+{
+ struct
+ {
+ int aaa;
+ short bbb;
+ char ccc;
+ char ddd;
+ } ppp[8];
+
+ int www[1];
+};
+
+int b;
+
+void
+some_function ()
+{
+ struct some_t *tmp = (struct some_t *) a;
+
+ while ((*tmp).ppp[b].ccc)
+ while(0);
+
+ for (; b; b++)
+ {
+ if (tmp->ppp[b].ccc)
+ {
+ int c = tmp->ppp[b].bbb;
+ int d = tmp->ppp[b].aaa;
+ int e = d - tmp->www[c];
+ if (e)
+ tmp->ppp[b].ddd = 1;
+ }
+ }
+}
+
+/* { dg-final { scan-assembler "\[^\n\]+lp \\.L__GCC__" } } */
diff --git a/gcc/testsuite/gcc.target/arm/polytypes.c b/gcc/testsuite/gcc.target/arm/polytypes.c
index f91f800a9be..110d62a8791 100644
--- a/gcc/testsuite/gcc.target/arm/polytypes.c
+++ b/gcc/testsuite/gcc.target/arm/polytypes.c
@@ -29,7 +29,7 @@ void foo ()
poly16x8_t v128_16;
s64_8 (v64_8); /* { dg-message "use -flax-vector-conversions" } */
- /* { dg-error "incompatible type for argument 1 of 's64_8'" "" { target *-*-* } 31 } */
+ /* { dg-error "incompatible type for argument 1 of 's64_8'" "" { target *-*-* } .-1 } */
u64_8 (v64_8); /* { dg-error "incompatible type for argument 1 of 'u64_8'" } */
p64_8 (v64_8);
diff --git a/gcc/testsuite/gcc.target/i386/pr70465-2.c b/gcc/testsuite/gcc.target/i386/pr70465-2.c
index 71b683aad70..d60386d39ce 100644
--- a/gcc/testsuite/gcc.target/i386/pr70465-2.c
+++ b/gcc/testsuite/gcc.target/i386/pr70465-2.c
@@ -1,7 +1,7 @@
/* PR target/70465 */
/* { dg-do compile } */
/* { dg-options "-Ofast -mfpmath=387 -fomit-frame-pointer" } */
-/* { dg-final { scan-assembler-not "fxch\t%st.1" } } */
+/* { dg-final { scan-assembler-not "fxch\t%st.1" { xfail *-*-* } } } */
extern float d[1024];
diff --git a/gcc/testsuite/gcc.target/i386/pr80381.c b/gcc/testsuite/gcc.target/i386/pr80381.c
new file mode 100644
index 00000000000..5ab0e7eb336
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr80381.c
@@ -0,0 +1,29 @@
+/* PR target/80381 */
+/* { dg-do compile } */
+/* { dg-options "-mavx512f -O2" } */
+
+#include <x86intrin.h>
+
+__m512i
+f1 (__m512i x, int a)
+{
+ return _mm512_srai_epi32 (x, a);
+}
+
+__m512i
+f2 (__m512i x, __m512i y, __mmask16 m, int a)
+{
+ return _mm512_mask_srai_epi32 (y, m, x, a);
+}
+
+__m512i
+f3 (__m512i x)
+{
+ return _mm512_srai_epi32 (x, 6);
+}
+
+__m512i
+f4 (__m512i x, __m512i y, __mmask16 m)
+{
+ return _mm512_mask_srai_epi32 (y, m, x, 6);
+}
diff --git a/gcc/testsuite/gcc.target/i386/spellcheck-options-4.c b/gcc/testsuite/gcc.target/i386/spellcheck-options-4.c
index d39bd239f89..7eba4127513 100644
--- a/gcc/testsuite/gcc.target/i386/spellcheck-options-4.c
+++ b/gcc/testsuite/gcc.target/i386/spellcheck-options-4.c
@@ -4,4 +4,4 @@
/* { dg-do compile } */
__attribute__((target ("arch=hasvel"))) void foo (void) {} /* { dg-error "bad value .'hasvel'. for 'target..arch=..' attribute" } */
-/* { dg-message "valid arguments to 'target..arch=..' attribute are: \[^\n\r]*; did you mean 'haswell'?" "" { target *-*-* } 6 } */
+/* { dg-message "valid arguments to 'target..arch=..' attribute are: \[^\n\r]*; did you mean 'haswell'?" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/gcc.target/mips/pr74563.c b/gcc/testsuite/gcc.target/mips/pr74563.c
new file mode 100644
index 00000000000..09545fcb5bd
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/pr74563.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-mips3 -mips16 -msoft-float" } */
+
+void f2(void);
+
+void f1(void)
+{
+ f2();
+}
+
+/* { dg-final { scan-assembler-not "\tjr\t\\\$31" } } */
+/* { dg-final { scan-assembler "\tjr\t\\\$7" } } */
+
+
diff --git a/gcc/testsuite/gcc.target/powerpc/20030218-1.c b/gcc/testsuite/gcc.target/powerpc/20030218-1.c
index 2a1c4e6d253..0c5077d554d 100644
--- a/gcc/testsuite/gcc.target/powerpc/20030218-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/20030218-1.c
@@ -20,7 +20,7 @@ main (void)
/* Just because this is a V2SI, it doesn't make it an opaque. */
vint = vshort; /* { dg-message "note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts" } */
- /* { dg-error "incompatible types when assigning" "" { target *-*-* } 22 } */
+ /* { dg-error "incompatible types when assigning" "" { target *-*-* } .-1 } */
return 0;
}
diff --git a/gcc/testsuite/gcc.target/powerpc/20050830-1.c b/gcc/testsuite/gcc.target/powerpc/20050830-1.c
index 0b1397adc80..4a8f71a9871 100644
--- a/gcc/testsuite/gcc.target/powerpc/20050830-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/20050830-1.c
@@ -1,8 +1,7 @@
/* Make sure the doloop optimization is done for this loop. */
/* { dg-do compile { target powerpc*-*-* } } */
/* { dg-options "-O2" } */
-/* XFAIL for now, see PR66612. */
-/* { dg-final { scan-assembler "bdn" { xfail lp64 } } } */
+/* { dg-final { scan-assembler "bdn" } } */
extern int a[];
int foo(int w) {
int n = w;
diff --git a/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp b/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp
new file mode 100644
index 00000000000..82cbb210b92
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp
@@ -0,0 +1,65 @@
+# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+# GCC testsuite that uses the `dg.exp' driver.
+
+# Load support procs.
+load_lib gfortran-dg.exp
+
+# If a testcase doesn't have special options, use these.
+global DEFAULT_FFLAGS
+if ![info exists DEFAULT_FFLAGS] then {
+ set DEFAULT_FFLAGS " -pedantic-errors"
+}
+
+# Initialize `dg'.
+dg-init
+
+global gfortran_test_path
+global gfortran_aux_module_flags
+set gfortran_test_path $srcdir/$subdir
+set gfortran_aux_module_flags $DEFAULT_FFLAGS
+proc dg-compile-aux-modules { args } {
+ global gfortran_test_path
+ global gfortran_aux_module_flags
+ if { [llength $args] != 2 } {
+ error "dg-set-target-env-var: needs one argument"
+ return
+ }
+
+ set level [info level]
+ if { [info procs dg-save-unknown] != [list] } {
+ rename dg-save-unknown dg-save-unknown-level-$level
+ }
+
+ dg-test $gfortran_test_path/[lindex $args 1] "" $gfortran_aux_module_flags
+ # cleanup-modules is intentionally not invoked here.
+
+ if { [info procs dg-save-unknown-level-$level] != [list] } {
+ rename dg-save-unknown-level-$level dg-save-unknown
+ }
+}
+
+# Main loop.
+gfortran-dg-runtest [lsort \
+ [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ] ] "" $DEFAULT_FFLAGS
+
+gfortran-dg-runtest [lsort \
+ [glob -nocomplain $srcdir/$subdir/g77/*.\[fF\] ] ] "" $DEFAULT_FFLAGS
+
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr80108-1.f90 b/gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr80108-1.f90
new file mode 100644
index 00000000000..a1248bee044
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr80108-1.f90
@@ -0,0 +1,53 @@
+! Originally contributed by Tobias Burnas.
+! { dg-do compile { target { powerpc*-*-* } } }
+! { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=405" } }
+! { dg-require-effective-target powerpc_p9vector_ok }
+! { dg-options "-mcpu=405 -mpower9-minmax -mfloat128-type" }
+! { dg-excess-errors "expect error due to conflicting target options" }
+! Since the error message is not associated with a particular line
+! number, we cannot use the dg-error directive and cannot specify a
+! regexp to describe the expected error message. The expected error
+! message is:
+! "Power9 target option is incompatible with -mcpu=<xxx> for <xxx>
+! less than power9"
+
+program stream_test
+ implicit none
+ character(len=*), parameter :: rec1 = 'record1'
+ character(len=*), parameter :: rec2 = 'record2'
+ character(len=50) :: str1,str2
+ integer :: len, i
+ real :: r
+
+ open(10,form='formatted',access='stream',&
+ status='scratch',position='rewind')
+ write(10,'(a)') rec1//new_line('a')//rec2
+ rewind(10)
+ read(10,*) str1
+ read(10,*) str2
+ if(str1 /= rec1 .or. str2 /= rec2) call abort()
+ rewind(10)
+ read(10,'(a)') str1
+ read(10,'(a)') str2
+ if(str1 /= rec1 .or. str2 /= rec2) call abort()
+ close(10)
+
+ open(10,form='formatted',access='stream',&
+ status='scratch',position='rewind')
+ write(10,*) '123 '//trim(rec1)//' 1e-12'
+ write(10,*) '12345.6789'
+ rewind(10)
+ read(10,*) i,str1
+ read(10,*) r
+ if(i /= 123 .or. str1 /= rec1 .or. r /= 12345.6789) &
+ call abort()
+ close(10)
+
+ open(unit=10,form='unformatted',access='stream', &
+ status='scratch',position='rewind')
+ write(10) rec1//new_line('a')//rec2
+ len = len_trim(rec1//new_line('a')//rec2)
+ rewind(10)
+ read(10) str1(1:len)
+ if(str1 /= rec1//new_line('a')//rec2) call abort()
+end program stream_test
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80098-1.c b/gcc/testsuite/gcc.target/powerpc/pr80098-1.c
new file mode 100644
index 00000000000..f7c200a09fd
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80098-1.c
@@ -0,0 +1,9 @@
+/* { dg-do compile { target { powerpc64*-*-* } } } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-options "-mcpu=power9 -mno-power9-vector -mpower9-minmax -mpower9-dform" } */
+
+int i;
+
+/* { dg-error "-mno-power9-vector turns off -mpower9-minmax" "PR80098" { target *-*-* } 0 } */
+/* { dg-error "-mno-power9-vector turns off -mpower9-dform" "PR80098" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80098-2.c b/gcc/testsuite/gcc.target/powerpc/pr80098-2.c
new file mode 100644
index 00000000000..d51734fca19
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80098-2.c
@@ -0,0 +1,9 @@
+/* { dg-do compile { target { powerpc64*-*-* } } } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-options "-mcpu=power8 -mno-power8-vector -mdirect-move -mcrypto" } */
+
+int i;
+
+/* { dg-error "-mno-power8-vector turns off -mdirect-move" "PR80098" { target *-*-* } 0 } */
+/* { dg-error "-mno-power8-vector turns off -mcrypto" "PR80098" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80098-3.c b/gcc/testsuite/gcc.target/powerpc/pr80098-3.c
new file mode 100644
index 00000000000..4c224e94b22
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80098-3.c
@@ -0,0 +1,9 @@
+/* { dg-do compile { target { powerpc64*-*-* } } } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
+/* { dg-require-effective-target powerpc_vsx_ok } */
+/* { dg-options "-mcpu=power7 -mno-vsx -mdirect-move -mcrypto" } */
+
+int i;
+
+/* { dg-error "-mno-vsx turns off -mdirect-move" "PR80098" { target *-*-* } 0 } */
+/* { dg-error "-mno-vsx turns off -mcrypto" "PR80098" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80098-4.c b/gcc/testsuite/gcc.target/powerpc/pr80098-4.c
new file mode 100644
index 00000000000..28eb5e2be84
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80098-4.c
@@ -0,0 +1,8 @@
+/* { dg-do compile { target { powerpc64*-*-* && lp64 } } } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
+/* { dg-require-effective-target powerpc_vsx_ok } */
+/* { dg-options "-mcpu=power7 -mno-vsx -mvsx-timode" } */
+
+int i;
+
+/* { dg-error "-mno-vsx turns off -mvsx-timode" "PR80098" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80099-1.c b/gcc/testsuite/gcc.target/powerpc/pr80099-1.c
new file mode 100644
index 00000000000..9f34c5fbef8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80099-1.c
@@ -0,0 +1,12 @@
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-options "-mcpu=power8 -O2 -mno-upper-regs-sf" } */
+
+/* PR target/80099: compiler internal error if -mno-upper-regs-sf used. */
+
+int a;
+int int_from_mem (vector float *c)
+{
+ return __builtin_vec_extract (*c, a);
+}
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80099-2.c b/gcc/testsuite/gcc.target/powerpc/pr80099-2.c
new file mode 100644
index 00000000000..5800db63212
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80099-2.c
@@ -0,0 +1,128 @@
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-options "-mcpu=power8 -O2 -mno-upper-regs-sf" } */
+
+/* PR target/80099 was an issue with -mno-upper-regs-sf. Test for all variable
+ extract types with various -mno-upper-regs-* options. */
+
+double
+d_extract_arg_n (vector double v, unsigned long n)
+{
+ return __builtin_vec_extract (v, n);
+}
+
+float
+f_extract_arg_n (vector float v, unsigned long n)
+{
+ return __builtin_vec_extract (v, n);
+}
+
+long
+sl_extract_arg_n (vector long v, unsigned long n)
+{
+ return (long) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+ul_extract_arg_n (vector unsigned long v, unsigned long n)
+{
+ return (unsigned long) __builtin_vec_extract (v, n);
+}
+
+long
+si_extract_arg_n (vector int v, unsigned long n)
+{
+ return (int) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+ui_extract_arg_n (vector unsigned int v, unsigned long n)
+{
+ return (unsigned int) __builtin_vec_extract (v, n);
+}
+
+long
+ss_extract_arg_n (vector short v, unsigned long n)
+{
+ return (short) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+us_extract_arg_n (vector unsigned short v, unsigned long n)
+{
+ return (unsigned short) __builtin_vec_extract (v, n);
+}
+
+long
+sc_extract_arg_n (vector signed char v, unsigned long n)
+{
+ return (signed char) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+uc_extract_arg_n (vector unsigned char v, unsigned long n)
+{
+ return (unsigned char) __builtin_vec_extract (v, n);
+}
+
+
+double
+d_extract_mem_n (vector double *p, unsigned long n)
+{
+ return __builtin_vec_extract (*p, n);
+}
+
+float
+f_extract_mem_n (vector float *p, unsigned long n)
+{
+ return __builtin_vec_extract (*p, n);
+}
+
+long
+sl_extract_mem_n (vector long *p, unsigned long n)
+{
+ return (long) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+ul_extract_mem_n (vector unsigned long *p, unsigned long n)
+{
+ return (unsigned long) __builtin_vec_extract (*p, n);
+}
+
+long
+si_extract_mem_n (vector int *p, unsigned long n)
+{
+ return (int) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+ui_extract_mem_n (vector unsigned int *p, unsigned long n)
+{
+ return (unsigned int) __builtin_vec_extract (*p, n);
+}
+
+long
+ss_extract_mem_n (vector short *p, unsigned long n)
+{
+ return (short) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+us_extract_mem_n (vector unsigned short *p, unsigned long n)
+{
+ return (unsigned short) __builtin_vec_extract (*p, n);
+}
+
+long
+sc_extract_mem_n (vector signed char *p, unsigned long n)
+{
+ return (signed char) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+uc_extract_mem_n (vector unsigned char *p, unsigned long n)
+{
+ return (unsigned char) __builtin_vec_extract (*p, n);
+}
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80099-3.c b/gcc/testsuite/gcc.target/powerpc/pr80099-3.c
new file mode 100644
index 00000000000..71c2b40b0d1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80099-3.c
@@ -0,0 +1,128 @@
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-options "-mcpu=power8 -O2 -mno-upper-regs-df" } */
+
+/* PR target/80099 was an issue with -mno-upper-regs-sf. Test for all variable
+ extract types with various -mno-upper-regs-* options. */
+
+double
+d_extract_arg_n (vector double v, unsigned long n)
+{
+ return __builtin_vec_extract (v, n);
+}
+
+float
+f_extract_arg_n (vector float v, unsigned long n)
+{
+ return __builtin_vec_extract (v, n);
+}
+
+long
+sl_extract_arg_n (vector long v, unsigned long n)
+{
+ return (long) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+ul_extract_arg_n (vector unsigned long v, unsigned long n)
+{
+ return (unsigned long) __builtin_vec_extract (v, n);
+}
+
+long
+si_extract_arg_n (vector int v, unsigned long n)
+{
+ return (int) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+ui_extract_arg_n (vector unsigned int v, unsigned long n)
+{
+ return (unsigned int) __builtin_vec_extract (v, n);
+}
+
+long
+ss_extract_arg_n (vector short v, unsigned long n)
+{
+ return (short) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+us_extract_arg_n (vector unsigned short v, unsigned long n)
+{
+ return (unsigned short) __builtin_vec_extract (v, n);
+}
+
+long
+sc_extract_arg_n (vector signed char v, unsigned long n)
+{
+ return (signed char) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+uc_extract_arg_n (vector unsigned char v, unsigned long n)
+{
+ return (unsigned char) __builtin_vec_extract (v, n);
+}
+
+
+double
+d_extract_mem_n (vector double *p, unsigned long n)
+{
+ return __builtin_vec_extract (*p, n);
+}
+
+float
+f_extract_mem_n (vector float *p, unsigned long n)
+{
+ return __builtin_vec_extract (*p, n);
+}
+
+long
+sl_extract_mem_n (vector long *p, unsigned long n)
+{
+ return (long) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+ul_extract_mem_n (vector unsigned long *p, unsigned long n)
+{
+ return (unsigned long) __builtin_vec_extract (*p, n);
+}
+
+long
+si_extract_mem_n (vector int *p, unsigned long n)
+{
+ return (int) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+ui_extract_mem_n (vector unsigned int *p, unsigned long n)
+{
+ return (unsigned int) __builtin_vec_extract (*p, n);
+}
+
+long
+ss_extract_mem_n (vector short *p, unsigned long n)
+{
+ return (short) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+us_extract_mem_n (vector unsigned short *p, unsigned long n)
+{
+ return (unsigned short) __builtin_vec_extract (*p, n);
+}
+
+long
+sc_extract_mem_n (vector signed char *p, unsigned long n)
+{
+ return (signed char) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+uc_extract_mem_n (vector unsigned char *p, unsigned long n)
+{
+ return (unsigned char) __builtin_vec_extract (*p, n);
+}
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80099-4.c b/gcc/testsuite/gcc.target/powerpc/pr80099-4.c
new file mode 100644
index 00000000000..145dd1724af
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80099-4.c
@@ -0,0 +1,128 @@
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-options "-mcpu=power8 -O2 -mno-upper-regs-di" } */
+
+/* PR target/80099 was an issue with -mno-upper-regs-sf. Test for all variable
+ extract types with various -mno-upper-regs-* options. */
+
+double
+d_extract_arg_n (vector double v, unsigned long n)
+{
+ return __builtin_vec_extract (v, n);
+}
+
+float
+f_extract_arg_n (vector float v, unsigned long n)
+{
+ return __builtin_vec_extract (v, n);
+}
+
+long
+sl_extract_arg_n (vector long v, unsigned long n)
+{
+ return (long) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+ul_extract_arg_n (vector unsigned long v, unsigned long n)
+{
+ return (unsigned long) __builtin_vec_extract (v, n);
+}
+
+long
+si_extract_arg_n (vector int v, unsigned long n)
+{
+ return (int) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+ui_extract_arg_n (vector unsigned int v, unsigned long n)
+{
+ return (unsigned int) __builtin_vec_extract (v, n);
+}
+
+long
+ss_extract_arg_n (vector short v, unsigned long n)
+{
+ return (short) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+us_extract_arg_n (vector unsigned short v, unsigned long n)
+{
+ return (unsigned short) __builtin_vec_extract (v, n);
+}
+
+long
+sc_extract_arg_n (vector signed char v, unsigned long n)
+{
+ return (signed char) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+uc_extract_arg_n (vector unsigned char v, unsigned long n)
+{
+ return (unsigned char) __builtin_vec_extract (v, n);
+}
+
+
+double
+d_extract_mem_n (vector double *p, unsigned long n)
+{
+ return __builtin_vec_extract (*p, n);
+}
+
+float
+f_extract_mem_n (vector float *p, unsigned long n)
+{
+ return __builtin_vec_extract (*p, n);
+}
+
+long
+sl_extract_mem_n (vector long *p, unsigned long n)
+{
+ return (long) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+ul_extract_mem_n (vector unsigned long *p, unsigned long n)
+{
+ return (unsigned long) __builtin_vec_extract (*p, n);
+}
+
+long
+si_extract_mem_n (vector int *p, unsigned long n)
+{
+ return (int) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+ui_extract_mem_n (vector unsigned int *p, unsigned long n)
+{
+ return (unsigned int) __builtin_vec_extract (*p, n);
+}
+
+long
+ss_extract_mem_n (vector short *p, unsigned long n)
+{
+ return (short) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+us_extract_mem_n (vector unsigned short *p, unsigned long n)
+{
+ return (unsigned short) __builtin_vec_extract (*p, n);
+}
+
+long
+sc_extract_mem_n (vector signed char *p, unsigned long n)
+{
+ return (signed char) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+uc_extract_mem_n (vector unsigned char *p, unsigned long n)
+{
+ return (unsigned char) __builtin_vec_extract (*p, n);
+}
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80099-5.c b/gcc/testsuite/gcc.target/powerpc/pr80099-5.c
new file mode 100644
index 00000000000..9ebc0fe466d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80099-5.c
@@ -0,0 +1,128 @@
+/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-options "-mcpu=power8 -O2 -mno-upper-regs" } */
+
+/* PR target/80099 was an issue with -mno-upper-regs-sf. Test for all variable
+ extract types with various -mno-upper-regs-* options. */
+
+double
+d_extract_arg_n (vector double v, unsigned long n)
+{
+ return __builtin_vec_extract (v, n);
+}
+
+float
+f_extract_arg_n (vector float v, unsigned long n)
+{
+ return __builtin_vec_extract (v, n);
+}
+
+long
+sl_extract_arg_n (vector long v, unsigned long n)
+{
+ return (long) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+ul_extract_arg_n (vector unsigned long v, unsigned long n)
+{
+ return (unsigned long) __builtin_vec_extract (v, n);
+}
+
+long
+si_extract_arg_n (vector int v, unsigned long n)
+{
+ return (int) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+ui_extract_arg_n (vector unsigned int v, unsigned long n)
+{
+ return (unsigned int) __builtin_vec_extract (v, n);
+}
+
+long
+ss_extract_arg_n (vector short v, unsigned long n)
+{
+ return (short) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+us_extract_arg_n (vector unsigned short v, unsigned long n)
+{
+ return (unsigned short) __builtin_vec_extract (v, n);
+}
+
+long
+sc_extract_arg_n (vector signed char v, unsigned long n)
+{
+ return (signed char) __builtin_vec_extract (v, n);
+}
+
+unsigned long
+uc_extract_arg_n (vector unsigned char v, unsigned long n)
+{
+ return (unsigned char) __builtin_vec_extract (v, n);
+}
+
+
+double
+d_extract_mem_n (vector double *p, unsigned long n)
+{
+ return __builtin_vec_extract (*p, n);
+}
+
+float
+f_extract_mem_n (vector float *p, unsigned long n)
+{
+ return __builtin_vec_extract (*p, n);
+}
+
+long
+sl_extract_mem_n (vector long *p, unsigned long n)
+{
+ return (long) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+ul_extract_mem_n (vector unsigned long *p, unsigned long n)
+{
+ return (unsigned long) __builtin_vec_extract (*p, n);
+}
+
+long
+si_extract_mem_n (vector int *p, unsigned long n)
+{
+ return (int) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+ui_extract_mem_n (vector unsigned int *p, unsigned long n)
+{
+ return (unsigned int) __builtin_vec_extract (*p, n);
+}
+
+long
+ss_extract_mem_n (vector short *p, unsigned long n)
+{
+ return (short) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+us_extract_mem_n (vector unsigned short *p, unsigned long n)
+{
+ return (unsigned short) __builtin_vec_extract (*p, n);
+}
+
+long
+sc_extract_mem_n (vector signed char *p, unsigned long n)
+{
+ return (signed char) __builtin_vec_extract (*p, n);
+}
+
+unsigned long
+uc_extract_mem_n (vector unsigned char *p, unsigned long n)
+{
+ return (unsigned char) __builtin_vec_extract (*p, n);
+}
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80315-1.c b/gcc/testsuite/gcc.target/powerpc/pr80315-1.c
new file mode 100644
index 00000000000..3fcf334f1c3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80315-1.c
@@ -0,0 +1,16 @@
+/* { dg-do compile { target { powerpc*-*-* } } } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-options "-mcpu=power8" } */
+
+int
+main()
+{
+ __attribute__((altivec(vector__))) unsigned int test, res;
+ const int s0 = 0;
+ int mask;
+
+ /* Argument 2 must be 0 or 1. Argument 3 must be in range 0..15. */
+ res = __builtin_crypto_vshasigmaw (test, 1, 0xff); /* { dg-error "argument 3 must be in the range 0..15" } */
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80315-2.c b/gcc/testsuite/gcc.target/powerpc/pr80315-2.c
new file mode 100644
index 00000000000..250fc58a9f6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80315-2.c
@@ -0,0 +1,16 @@
+/* { dg-do compile { target { powerpc*-*-* } } } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-options "-mcpu=power8" } */
+
+int
+main ()
+{
+ __attribute__((altivec(vector__))) unsigned long long test, res;
+ const int s0 = 0;
+ int mask;
+
+ /* Argument 2 must be 0 or 1. Argument 3 must be in range 0..15. */
+ res = __builtin_crypto_vshasigmad (test, 1, 0xff); /* { dg-error "argument 3 must be in the range 0..15" } */
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80315-3.c b/gcc/testsuite/gcc.target/powerpc/pr80315-3.c
new file mode 100644
index 00000000000..2084e920de9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80315-3.c
@@ -0,0 +1,18 @@
+/* { dg-do compile { target { powerpc*-*-* } } } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-options "-mcpu=power8" } */
+
+#include <altivec.h>
+
+vector unsigned int
+main ()
+{
+ vector unsigned int test, res;
+ const int s0 = 0;
+ int mask;
+
+ /* Argument 2 must be 0 or 1. Argument 3 must be in range 0..15. */
+ res = vec_shasigma_be (test, 1, 0xff); /* { dg-error "argument 3 must be in the range 0..15" } */
+ return res;
+}
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80315-4.c b/gcc/testsuite/gcc.target/powerpc/pr80315-4.c
new file mode 100644
index 00000000000..2d87b40ea83
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80315-4.c
@@ -0,0 +1,18 @@
+/* { dg-do compile { target { powerpc*-*-* } } } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-options "-mcpu=power8" } */
+
+#include <altivec.h>
+
+vector unsigned long long int
+main ()
+{
+ vector unsigned long long int test, res;
+ const int s0 = 0;
+ int mask;
+
+ /* Argument 2 must be 0 or 1. Argument 3 must be in range 0..15. */
+ res = vec_shasigma_be (test, 1, 0xff); /* { dg-error "argument 3 must be in the range 0..15" } */
+ return res;
+}
diff --git a/gcc/testsuite/gcc.target/powerpc/pr80343.c b/gcc/testsuite/gcc.target/powerpc/pr80343.c
new file mode 100644
index 00000000000..cea2a771abb
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr80343.c
@@ -0,0 +1,50 @@
+/* { dg-do compile { target powerpc-*-*spe } } */
+/* { dg-options "-O2 -ftracer -fPIC" } */
+long long int vi, ls;
+int wq, oa, to, fv;
+signed char zo;
+
+long long int
+ai (long long int ip, long long int jc, int gt)
+{
+ ip /= 3;
+ jc += ip;
+ if (ip != 0)
+ vi = 0;
+ vi += ls;
+
+ if (wq != oa)
+ {
+ int tz;
+
+ for (tz = 0; tz < 32; ++tz)
+ zo -= wq & gt;
+
+ if ((gt & 5) > oa)
+ {
+ zo += gt;
+ fv += zo + to;
+ }
+
+ if (gt != 0)
+ oa = 0;
+
+ if (fv != 0)
+ {
+ vi += wq;
+ ls += ip;
+ jc += (vi != 0) ? ip : ls;
+ }
+
+ while (tz != 0)
+ {
+ zo = wq;
+ tz = zo;
+ }
+
+ ++to;
+ wq = ip;
+ }
+
+ return jc;
+}
diff --git a/gcc/testsuite/gcc.target/sh/pr21255-4.c b/gcc/testsuite/gcc.target/sh/pr21255-4.c
index c848c26c0e7..9e8b7285347 100644
--- a/gcc/testsuite/gcc.target/sh/pr21255-4.c
+++ b/gcc/testsuite/gcc.target/sh/pr21255-4.c
@@ -7,7 +7,7 @@ f ()
double r;
asm ("mov %S1,%S0; mov %R1,%R0" : "=r" (r) : "i" (f));
-/* { dg-error "invalid operand to %S" "" {target "sh*-*-*" } 9 } */
-/* { dg-error "invalid operand to %R" "" {target "sh*-*-*" } 9 } */
+/* { dg-error "invalid operand to %S" "" {target "sh*-*-*" } .-1 } */
+/* { dg-error "invalid operand to %R" "" {target "sh*-*-*" } .-2 } */
return r;
}
diff --git a/gcc/testsuite/gcc.test-framework/dg-error-exp-XP.c b/gcc/testsuite/gcc.test-framework/dg-error-exp-XP.c
index d3e088de37c..ff4f414e2bd 100644
--- a/gcc/testsuite/gcc.test-framework/dg-error-exp-XP.c
+++ b/gcc/testsuite/gcc.test-framework/dg-error-exp-XP.c
@@ -5,7 +5,7 @@
int main (int argc, char *argv[])
{
+;
- /* { dg-error "expected expression" "error test" { xfail *-*-* } 7 } */
+ /* { dg-error "expected expression" "error test" { xfail *-*-* } .-1 } */
return 0;
}
/* { dg-excess-errors "expect failure" { xfail *-*-* } } */
diff --git a/gcc/testsuite/gfortran.dg/array_constructor_30.f03 b/gcc/testsuite/gfortran.dg/array_constructor_30.f03
index 587ce03977d..fd07949537d 100644
--- a/gcc/testsuite/gfortran.dg/array_constructor_30.f03
+++ b/gcc/testsuite/gfortran.dg/array_constructor_30.f03
@@ -9,8 +9,8 @@ implicit none
integer :: a = 42
type t
character (a) :: arr (1) = [ "a" ]
- ! { dg-error "in the expression" "" { target *-*-* } 11 }
- ! { dg-error "specification expression" "" { target *-*-* } 11 }
+ ! { dg-error "in the expression" "" { target *-*-* } .-1 }
+ ! { dg-error "specification expression" "" { target *-*-* } .-2 }
end type t
end
diff --git a/gcc/testsuite/gfortran.dg/class_30.f90 b/gcc/testsuite/gfortran.dg/class_30.f90
index 343c0d6139a..0f821740b7b 100644
--- a/gcc/testsuite/gfortran.dg/class_30.f90
+++ b/gcc/testsuite/gfortran.dg/class_30.f90
@@ -15,6 +15,6 @@ end type t2
type, bind(C):: t3
class(t), pointer :: y
- ! { dg-error "Polymorphic component y at .1. in SEQUENCE or BIND" "" { target *-*-* } 17 }
+ ! { dg-error "Polymorphic component y at .1. in SEQUENCE or BIND" "" { target *-*-* } .-1 }
end type t3
end
diff --git a/gcc/testsuite/gfortran.dg/class_62.f90 b/gcc/testsuite/gfortran.dg/class_62.f90
new file mode 100644
index 00000000000..39ee98dd361
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/class_62.f90
@@ -0,0 +1,29 @@
+! { dg-do run }
+! { dg-options "-fcheck=recursion" }
+!
+! PR 80361: [5/6/7 Regression] bogus recursive call to nonrecursive procedure with -fcheck=recursion
+!
+! Contributed by Jürgen Reuter <juergen.reuter@desy.de>
+
+program main_ut
+
+ implicit none
+
+ type :: prt_spec_expr_t
+ end type
+
+ type :: prt_expr_t
+ class(prt_spec_expr_t), allocatable :: x
+ end type
+
+ type, extends (prt_spec_expr_t) :: prt_spec_list_t
+ type(prt_expr_t) :: e
+ end type
+
+ class(prt_spec_list_t), allocatable :: y
+
+ allocate (y)
+ allocate (prt_spec_list_t :: y%e%x)
+ deallocate(y)
+
+end program
diff --git a/gcc/testsuite/gfortran.dg/deferred_character_3.f90 b/gcc/testsuite/gfortran.dg/deferred_character_3.f90
index 8f2933713c3..6ba25df48bf 100644
--- a/gcc/testsuite/gfortran.dg/deferred_character_3.f90
+++ b/gcc/testsuite/gfortran.dg/deferred_character_3.f90
@@ -1,4 +1,4 @@
-! {dg_do run }
+! { dg-do run }
!
! Tests the fix for PR67674
!
diff --git a/gcc/testsuite/gfortran.dg/do_concurrent_4.f90 b/gcc/testsuite/gfortran.dg/do_concurrent_4.f90
new file mode 100644
index 00000000000..9c2409ecb00
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/do_concurrent_4.f90
@@ -0,0 +1,67 @@
+! { dg-do run }
+! { dg-options "-O" }
+! PR 80304 - this used to give a wrong result.
+! Original test case by Chinoune
+module test_mod
+ implicit none
+
+contains
+
+ pure real function add(i,j,k)
+ integer ,intent(in) :: i,j,k
+ add = real(i+j+k)+1.
+ end function add
+
+ pure real function add2(i,j,k)
+ integer ,intent(in) :: i,j,k
+ add2 = real(i+j+k)
+ end function add2
+
+ subroutine check_err(a, s)
+ real, dimension(:,:), intent(in) :: a
+ real, intent(in) :: s
+ if (abs(sum(a) - s) > 1e-5) call abort
+ end subroutine check_err
+
+end module test_mod
+
+program test
+ use test_mod
+ implicit none
+
+ integer :: i ,j
+ real :: a(0:1,0:1) ,b(0:1,0:1)
+
+ ! first do-concurrent loop
+ a = 0.
+ b = 0.
+ DO CONCURRENT( i=0:1 ,j=0:1)
+ a(i,j) = add(i,j,abs(i-j))
+ b(i,j) = add2(i,j,abs(i-j))
+ END DO
+ call check_err (a, 10.)
+ call check_err (b, 6.)
+
+ ! normal do loop
+ a = 0.
+ b = 0.
+ DO i=0,1
+ DO j=0,1
+ a(i,j) = add(i,j,abs(i-j))
+ b(i,j) = add2(i,j,abs(i-j))
+ END DO
+ END DO
+ call check_err (a, 10.)
+ call check_err (b, 6.)
+
+ ! second do-concuurent loop
+ a = 0.
+ b = 0.
+ DO CONCURRENT( i=0:1 ,j=0:1)
+ a(i,j) = add(i,j,abs(i-j))
+ b(i,j) = add2(i,j,abs(i-j))
+ END DO
+ call check_err (a, 10.)
+ call check_err (b, 6.)
+
+end program test
diff --git a/gcc/testsuite/gfortran.dg/generic_29.f90 b/gcc/testsuite/gfortran.dg/generic_29.f90
index 6f95b56c5b8..c1f24d780f4 100644
--- a/gcc/testsuite/gfortran.dg/generic_29.f90
+++ b/gcc/testsuite/gfortran.dg/generic_29.f90
@@ -1,4 +1,4 @@
-! { dg-do compile}
+! { dg-do compile }
! PR fortran/66057
!
! Original code from Gerhard Steinmetz
diff --git a/gcc/testsuite/gfortran.dg/goacc/multi-clause.f90 b/gcc/testsuite/gfortran.dg/goacc/multi-clause.f90
index 287007623c3..eebf95f6fec 100644
--- a/gcc/testsuite/gfortran.dg/goacc/multi-clause.f90
+++ b/gcc/testsuite/gfortran.dg/goacc/multi-clause.f90
@@ -1,6 +1,6 @@
! Test if variable appearing in multiple clauses are errors.
-! { dg-compile }
+! { dg-do compile }
program combined
implicit none
diff --git a/gcc/testsuite/gfortran.dg/goacc/subarrays.f95 b/gcc/testsuite/gfortran.dg/goacc/subarrays.f95
index 4b3ef42d175..f6adde459f4 100644
--- a/gcc/testsuite/gfortran.dg/goacc/subarrays.f95
+++ b/gcc/testsuite/gfortran.dg/goacc/subarrays.f95
@@ -14,8 +14,8 @@ program test
!$acc parallel copy(a(:))
!$acc end parallel
!$acc parallel copy(a(2:3,2:3))
- ! { dg-error "Rank mismatch" "" { target *-*-* } 16 }
- ! { dg-error "'a' in MAP clause" "" { target *-*-* } 16 }
+ ! { dg-error "Rank mismatch" "" { target *-*-* } .-1 }
+ ! { dg-error "'a' in MAP clause" "" { target *-*-* } .-2 }
!$acc end parallel
!$acc parallel copy (a(:11)) ! { dg-warning "Upper array reference" }
!$acc end parallel
@@ -23,15 +23,15 @@ program test
!$acc end parallel
!$acc parallel copy (a(:b))
- ! { dg-error "Array index" "" { target *-*-* } 25 }
- ! { dg-error "'a' in MAP clause" "" { target *-*-* } 25 }
+ ! { dg-error "Array index" "" { target *-*-* } .-1 }
+ ! { dg-error "'a' in MAP clause" "" { target *-*-* } .-2 }
!$acc end parallel
!$acc parallel copy (b(1:3,2:4))
!$acc end parallel
!$acc parallel copy (b(2:3))
- ! { dg-error "Rank mismatch" "" { target *-*-* } 32 }
- ! { dg-error "'b' in MAP clause" "" { target *-*-* } 32 }
+ ! { dg-error "Rank mismatch" "" { target *-*-* } .-1 }
+ ! { dg-error "'b' in MAP clause" "" { target *-*-* } .-2 }
!$acc end parallel
!$acc parallel copy (b(1:, 4:6))
!$acc end parallel
diff --git a/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.23.5.f90 b/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.23.5.f90
index 732c15f2385..533322e2bc2 100644
--- a/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.23.5.f90
+++ b/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.23.5.f90
@@ -5,8 +5,8 @@
! Incorrect: common block C cannot be declared both
! shared and private
!$OMP PARALLEL PRIVATE (/C/), SHARED(/C/)
- ! { dg-error "Symbol 'y' present" "" { target *-*-* } 7 }
- ! { dg-error "Symbol 'x' present" "" { target *-*-* } 7 }
+ ! { dg-error "Symbol 'y' present" "" { target *-*-* } .-1 }
+ ! { dg-error "Symbol 'x' present" "" { target *-*-* } .-2 }
! do work here
!$OMP END PARALLEL
END SUBROUTINE A23_5_WRONG
diff --git a/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.24.1.f90 b/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.24.1.f90
index e3629025a07..802577bbe0b 100644
--- a/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.24.1.f90
+++ b/gcc/testsuite/gfortran.dg/gomp/appendix-a/a.24.1.f90
@@ -18,7 +18,7 @@
! - Z is listed in SHARED clause
X=1 ! O.K. - X is THREADPRIVATE
Z(I) = Y ! Error - cannot reference I or Y here
-! { dg-error "'i' not specified" "" { target *-*-* } 20 } */
+! { dg-error "'i' not specified" "" { target *-*-* } .-1 } */
! { dg-error "enclosing 'parallel'" "" { target *-*-* } 14 } */
! { dg-error "'y' not specified" "" { target *-*-* } 20 } */
!$OMP DO firstprivate(y)
diff --git a/gcc/testsuite/gfortran.dg/intrinsic_std_1.f90 b/gcc/testsuite/gfortran.dg/intrinsic_std_1.f90
index 0b8d8ab2613..24f6c0f4f2e 100644
--- a/gcc/testsuite/gfortran.dg/intrinsic_std_1.f90
+++ b/gcc/testsuite/gfortran.dg/intrinsic_std_1.f90
@@ -36,8 +36,8 @@ END SUBROUTINE implicit_type
SUBROUTINE specification_expression
CHARACTER(KIND=selected_char_kind("ascii")) :: x
-! { dg-error "must be an intrinsic function" "" { target "*-*-*" } 38 }
-! { dg-warning "Fortran 2003" "" { target "*-*-*" } 38 }
+! { dg-error "must be an intrinsic function" "" { target "*-*-*" } .-1 }
+! { dg-warning "Fortran 2003" "" { target "*-*-*" } .-2 }
END SUBROUTINE specification_expression
SUBROUTINE intrinsic_decl
diff --git a/gcc/testsuite/gfortran.dg/pr41922.f90 b/gcc/testsuite/gfortran.dg/pr41922.f90
index cbbfa6f15f5..12d353353bc 100644
--- a/gcc/testsuite/gfortran.dg/pr41922.f90
+++ b/gcc/testsuite/gfortran.dg/pr41922.f90
@@ -1,4 +1,4 @@
-! { dg-do compile}
+! { dg-do compile }
! { dg-options -std=gnu }
Subroutine RestoreR8Run()
Implicit NONE
diff --git a/gcc/testsuite/gfortran.dg/pr70006.f90 b/gcc/testsuite/gfortran.dg/pr70006.f90
index b8fbb3c26ee..9f14eea13f7 100644
--- a/gcc/testsuite/gfortran.dg/pr70006.f90
+++ b/gcc/testsuite/gfortran.dg/pr70006.f90
@@ -1,9 +1,9 @@
-! { dg-do compile}
+! { dg-do compile }
program test
- print 1, 'string 1' ! { dg-error "FORMAT label 1" " " { target *-*-* } 3 }
- print 1, 'string 2' ! { dg-error "FORMAT label 1" " " { target *-*-* } 4 }
+ print 1, 'string 1' ! { dg-error "FORMAT label 1" " " { target *-*-* } . }
+ print 1, 'string 2' ! { dg-error "FORMAT label 1" " " { target *-*-* } . }
!1 format(a)
- goto 2 ! { dg-error "Label 2 referenced" " " { target *-*-* } 6 }
- goto 2 ! { dg-error "Label 2 referenced" " " { target *-*-* } 7 }
+ goto 2 ! { dg-error "Label 2 referenced" " " { target *-*-* } . }
+ goto 2 ! { dg-error "Label 2 referenced" " " { target *-*-* } . }
!2 continue
end program
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_comp_48.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_comp_48.f90
new file mode 100644
index 00000000000..de73b197ad8
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/proc_ptr_comp_48.f90
@@ -0,0 +1,47 @@
+! { dg-do compile }
+!
+! PR 80046: [F03] Explicit interface required: pointer argument
+!
+! Contributed by Joachim Herb <joachim.herb@gmx.de>
+
+program p
+ implicit none
+
+ type :: Node_t
+ procedure(NodeCloner), nopass, pointer :: cloneProc => NULL()
+ procedure(), nopass, pointer :: noIfc => NULL()
+ end type
+
+ interface
+ subroutine NodeCloner( tgt, src )
+ import Node_t
+ type(Node_t), pointer, intent(out) :: tgt
+ type(Node_t), intent(in) :: src
+ end subroutine
+ end interface
+
+ type(Node_t) :: node
+ procedure(NodeCloner), pointer :: cloneNode
+ procedure(), pointer :: noIfc
+
+ cloneNode => node%noIfc ! { dg-error "Explicit interface required" }
+ node%noIfc => cloneNode ! { dg-error "Explicit interface required" }
+
+ noIfc => node%cloneProc ! { dg-error "Explicit interface required" }
+ node%cloneProc => noIfc ! { dg-error "Explicit interface required" }
+
+ node%cloneProc => node%noIfc ! { dg-error "Explicit interface required" }
+ node%noIfc => node%cloneProc ! { dg-error "Explicit interface required" }
+
+ ! the following cases are legal
+
+ node%noIfc => node%noIfc
+ node%cloneProc => node%cloneProc
+
+ cloneNode => node%cloneProc
+ node%cloneProc => cloneNode
+
+ noIfc => node%noIfc
+ node%noIfc => noIfc
+
+end
diff --git a/gcc/testsuite/gfortran.dg/submodule_twice.f90 b/gcc/testsuite/gfortran.dg/submodule_twice.f90
new file mode 100644
index 00000000000..fdb4dcb10e5
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/submodule_twice.f90
@@ -0,0 +1,7 @@
+! { dg-do compile }
+! PR fortran/69498
+! This used to ICE
+program main
+ submodule (m) sm ! { dg-error "SUBMODULE declaration at" }
+ submodule (m2) sm2 ! { dg-error "SUBMODULE declaration at" }
+end program
diff --git a/gcc/testsuite/gfortran.dg/submodule_unexp.f90 b/gcc/testsuite/gfortran.dg/submodule_unexp.f90
index 43a055349d8..39b57a585e7 100644
--- a/gcc/testsuite/gfortran.dg/submodule_unexp.f90
+++ b/gcc/testsuite/gfortran.dg/submodule_unexp.f90
@@ -3,6 +3,6 @@
! This used to ICE
program p
type t
- submodule (m) sm ! { dg-error "Unexpected SUBMODULE statement at" }
+ submodule (m) sm ! { dg-error "SUBMODULE declaration at" }
end type
end
diff --git a/gcc/testsuite/gfortran.dg/warning-directive-1.F90 b/gcc/testsuite/gfortran.dg/warning-directive-1.F90
index 5f5931572c2..94966ca78aa 100644
--- a/gcc/testsuite/gfortran.dg/warning-directive-1.F90
+++ b/gcc/testsuite/gfortran.dg/warning-directive-1.F90
@@ -2,4 +2,4 @@
! { dg-options "-std=f95 -fdiagnostics-show-option" }
#warning "Printed"
-! { dg-warning "\"Printed\" .-Wcpp." "" { target *-*-* } 4 }
+! { dg-warning "\"Printed\" .-Wcpp." "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/gfortran.dg/warning-directive-2.F90 b/gcc/testsuite/gfortran.dg/warning-directive-2.F90
index 8846cd32251..7b07958f4f1 100644
--- a/gcc/testsuite/gfortran.dg/warning-directive-2.F90
+++ b/gcc/testsuite/gfortran.dg/warning-directive-2.F90
@@ -2,4 +2,4 @@
! { dg-options "-std=f95 -fdiagnostics-show-option -Werror=cpp" }
! { dg-message "some warnings being treated as errors" "" { target *-*-* } 0 }
#warning "Printed"
-! { dg-error "\"Printed\" .-Werror=cpp." "" { target *-*-* } 4 }
+! { dg-error "\"Printed\" .-Werror=cpp." "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/gfortran.dg/warning-directive-3.F90 b/gcc/testsuite/gfortran.dg/warning-directive-3.F90
index aa20c1942a1..d30fd4044f5 100644
--- a/gcc/testsuite/gfortran.dg/warning-directive-3.F90
+++ b/gcc/testsuite/gfortran.dg/warning-directive-3.F90
@@ -2,4 +2,4 @@
! { dg-options "-std=f95 -fdiagnostics-show-option -Werror -Wno-error=cpp" }
#warning "Printed"
-! { dg-warning "\"Printed\" .-Wcpp." "" { target *-*-* } 4 }
+! { dg-warning "\"Printed\" .-Wcpp." "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/gfortran.dg/warning-directive-4.F90 b/gcc/testsuite/gfortran.dg/warning-directive-4.F90
index a5c38114957..2f25be4b405 100644
--- a/gcc/testsuite/gfortran.dg/warning-directive-4.F90
+++ b/gcc/testsuite/gfortran.dg/warning-directive-4.F90
@@ -2,4 +2,4 @@
! { dg-options "-std=f95 -fdiagnostics-show-option -Wno-cpp" }
#warning "Not printed"
-! { dg-bogus "." "" { target *-*-* } 4 }
+! { dg-bogus "." "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/gnat.dg/debug10.adb b/gcc/testsuite/gnat.dg/debug10.adb
new file mode 100644
index 00000000000..5612b7874e4
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/debug10.adb
@@ -0,0 +1,68 @@
+-- PR debug/80321
+
+-- { dg-do compile }
+-- { dg-options "-O2 -g" }
+
+with Debug10_Pkg; use Debug10_Pkg;
+
+procedure Debug10 (T : Entity_Id) is
+
+ procedure Inner (E : Entity_Id);
+ pragma Inline (Inner);
+
+ procedure Inner (E : Entity_Id) is
+ begin
+ if E /= Empty
+ and then not Nodes (E + 3).Flag16
+ then
+ Debug10 (E);
+ end if;
+ end Inner;
+
+ function Ekind (E : Entity_Id) return Entity_Kind is
+ begin
+ return N_To_E (Nodes (E + 1).Nkind);
+ end Ekind;
+
+begin
+
+ if T = Empty then
+ return;
+ end if;
+
+ Nodes (T + 3).Flag16 := True;
+
+ if Ekind (T) in Object_Kind then
+ Inner (T);
+
+ elsif Ekind (T) in Type_Kind then
+ Inner (T);
+
+ if Ekind (T) in Record_Kind then
+
+ if Ekind (T) = E_Class_Wide_Subtype then
+ Inner (T);
+ end if;
+
+ elsif Ekind (T) in Array_Kind then
+ Inner (T);
+
+ elsif Ekind (T) in Access_Kind then
+ Inner (T);
+
+ elsif Ekind (T) in Scalar_Kind then
+
+ if My_Scalar_Range (T) /= Empty
+ and then My_Test (My_Scalar_Range (T))
+ then
+ if My_Is_Entity_Name (T) then
+ Inner (T);
+ end if;
+
+ if My_Is_Entity_Name (T) then
+ Inner (T);
+ end if;
+ end if;
+ end if;
+ end if;
+end;
diff --git a/gcc/testsuite/gnat.dg/debug10_pkg.ads b/gcc/testsuite/gnat.dg/debug10_pkg.ads
new file mode 100644
index 00000000000..10146c5a401
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/debug10_pkg.ads
@@ -0,0 +1,138 @@
+with Unchecked_Conversion;
+
+package Debug10_Pkg is
+
+ type Node_Id is range 0 .. 99_999_999;
+
+ Empty : constant Node_Id := 0;
+
+ subtype Entity_Id is Node_Id;
+
+ type Union_Id is new Integer;
+
+ function My_Is_Entity_Name (N : Node_Id) return Boolean;
+
+ function My_Scalar_Range (Id : Entity_Id) return Node_Id;
+
+ function My_Test (N : Node_Id) return Boolean;
+
+ type Node_Kind is (N_Unused_At_Start, N_Unused_At_End);
+
+ type Entity_Kind is (
+
+ E_Void,
+ E_Component,
+ E_Constant,
+ E_Discriminant,
+ E_Loop_Parameter,
+ E_Variable,
+ E_Out_Parameter,
+ E_In_Out_Parameter,
+ E_In_Parameter,
+ E_Generic_In_Out_Parameter,
+ E_Generic_In_Parameter,
+ E_Named_Integer,
+ E_Named_Real,
+ E_Enumeration_Type,
+ E_Enumeration_Subtype,
+ E_Signed_Integer_Type,
+ E_Signed_Integer_Subtype,
+ E_Modular_Integer_Type,
+ E_Modular_Integer_Subtype,
+ E_Ordinary_Fixed_Point_Type,
+ E_Ordinary_Fixed_Point_Subtype,
+ E_Decimal_Fixed_Point_Type,
+ E_Decimal_Fixed_Point_Subtype,
+ E_Floating_Point_Type,
+ E_Floating_Point_Subtype,
+ E_Access_Type,
+ E_Access_Subtype,
+ E_Access_Attribute_Type,
+ E_Allocator_Type,
+ E_General_Access_Type,
+ E_Access_Subprogram_Type,
+ E_Anonymous_Access_Subprogram_Type,
+ E_Access_Protected_Subprogram_Type,
+ E_Anonymous_Access_Protected_Subprogram_Type,
+ E_Anonymous_Access_Type,
+ E_Array_Type,
+ E_Array_Subtype,
+ E_String_Literal_Subtype,
+ E_Class_Wide_Type,
+ E_Class_Wide_Subtype,
+ E_Record_Type,
+ E_Record_Subtype,
+ E_Record_Type_With_Private,
+ E_Record_Subtype_With_Private,
+ E_Private_Type,
+ E_Private_Subtype,
+ E_Limited_Private_Type,
+ E_Limited_Private_Subtype,
+ E_Incomplete_Type,
+ E_Incomplete_Subtype,
+ E_Task_Type,
+ E_Task_Subtype,
+ E_Protected_Type,
+ E_Protected_Subtype,
+ E_Exception_Type,
+ E_Subprogram_Type,
+ E_Enumeration_Literal,
+ E_Function,
+ E_Operator,
+ E_Procedure,
+ E_Abstract_State,
+ E_Entry,
+ E_Entry_Family,
+ E_Block,
+ E_Entry_Index_Parameter,
+ E_Exception,
+ E_Generic_Function,
+ E_Generic_Procedure,
+ E_Generic_Package,
+ E_Label,
+ E_Loop,
+ E_Return_Statement,
+ E_Package,
+ E_Package_Body,
+ E_Protected_Object,
+ E_Protected_Body,
+ E_Task_Body,
+ E_Subprogram_Body
+ );
+
+ subtype Access_Kind is Entity_Kind range
+ E_Access_Type ..
+ E_Anonymous_Access_Type;
+
+ subtype Array_Kind is Entity_Kind range
+ E_Array_Type ..
+ E_String_Literal_Subtype;
+
+ subtype Object_Kind is Entity_Kind range
+ E_Component ..
+ E_Generic_In_Parameter;
+
+ subtype Record_Kind is Entity_Kind range
+ E_Class_Wide_Type ..
+ E_Record_Subtype_With_Private;
+
+ subtype Scalar_Kind is Entity_Kind range
+ E_Enumeration_Type ..
+ E_Floating_Point_Subtype;
+
+ subtype Type_Kind is Entity_Kind range
+ E_Enumeration_Type ..
+ E_Subprogram_Type;
+
+ type Node_Record (Is_Extension : Boolean := False) is record
+ Flag16 : Boolean;
+ Nkind : Node_Kind;
+ end record;
+
+ function N_To_E is new Unchecked_Conversion (Node_Kind, Entity_Kind);
+
+ type Arr is array (Node_Id) of Node_Record;
+
+ Nodes : Arr;
+
+end Debug10_Pkg;
diff --git a/gcc/testsuite/lib/target-libpath.exp b/gcc/testsuite/lib/target-libpath.exp
index 9b3e201ed68..b6d01b31016 100644
--- a/gcc/testsuite/lib/target-libpath.exp
+++ b/gcc/testsuite/lib/target-libpath.exp
@@ -23,6 +23,7 @@ set orig_shlib_path_saved 0
set orig_ld_library_path_32_saved 0
set orig_ld_library_path_64_saved 0
set orig_dyld_library_path_saved 0
+set orig_path_saved 0
set orig_gcc_exec_prefix_saved 0
set orig_gcc_exec_prefix_checked 0
@@ -55,6 +56,7 @@ proc set_ld_library_path_env_vars { } {
global orig_ld_library_path_32_saved
global orig_ld_library_path_64_saved
global orig_dyld_library_path_saved
+ global orig_path_saved
global orig_gcc_exec_prefix_saved
global orig_gcc_exec_prefix_checked
global orig_ld_library_path
@@ -63,6 +65,7 @@ proc set_ld_library_path_env_vars { } {
global orig_ld_library_path_32
global orig_ld_library_path_64
global orig_dyld_library_path
+ global orig_path
global orig_gcc_exec_prefix
global env
@@ -110,6 +113,10 @@ proc set_ld_library_path_env_vars { } {
set orig_dyld_library_path "$env(DYLD_LIBRARY_PATH)"
set orig_dyld_library_path_saved 1
}
+ if [info exists env(PATH)] {
+ set orig_path "$env(PATH)"
+ set orig_path_saved 1
+ }
}
# We need to set ld library path in the environment. Currently,
@@ -164,6 +171,13 @@ proc set_ld_library_path_env_vars { } {
} else {
setenv DYLD_LIBRARY_PATH "$ld_library_path"
}
+ if { [istarget *-*-cygwin*] || [istarget *-*-mingw*] } {
+ if { $orig_path_saved } {
+ setenv PATH "$ld_library_path:$orig_path"
+ } else {
+ setenv PATH "$ld_library_path"
+ }
+ }
verbose -log "LD_LIBRARY_PATH=[getenv LD_LIBRARY_PATH]"
verbose -log "LD_RUN_PATH=[getenv LD_RUN_PATH]"
@@ -201,12 +215,14 @@ proc restore_ld_library_path_env_vars { } {
global orig_ld_library_path_32_saved
global orig_ld_library_path_64_saved
global orig_dyld_library_path_saved
+ global orig_path_saved
global orig_ld_library_path
global orig_ld_run_path
global orig_shlib_path
global orig_ld_library_path_32
global orig_ld_library_path_64
global orig_dyld_library_path
+ global orig_path
global env
restore_gcc_exec_prefix_env_var
@@ -245,6 +261,11 @@ proc restore_ld_library_path_env_vars { } {
} elseif [info exists env(DYLD_LIBRARY_PATH)] {
unsetenv DYLD_LIBRARY_PATH
}
+ if { $orig_path_saved } {
+ setenv PATH "$orig_path"
+ } elseif [info exists env(PATH)] {
+ unsetenv PATH
+ }
}
#######################################
diff --git a/gcc/testsuite/obj-c++.dg/attributes/method-noreturn-1.mm b/gcc/testsuite/obj-c++.dg/attributes/method-noreturn-1.mm
index 717d6e65e28..a83048bb7ed 100644
--- a/gcc/testsuite/obj-c++.dg/attributes/method-noreturn-1.mm
+++ b/gcc/testsuite/obj-c++.dg/attributes/method-noreturn-1.mm
@@ -18,11 +18,11 @@
+ (id) method1
{
return self; /* { dg-warning "function declared .noreturn. has a .return. statement" } */
-} /* { dg-warning ".noreturn. function does return" "" { target *-*-* } 20 } */
+} /* { dg-warning ".noreturn. function does return" "" { target *-*-* } .-1 } */
- (id) method2
{
return self; /* { dg-warning "function declared .noreturn. has a .return. statement" } */
-} /* { dg-warning ".noreturn. function does return" "" { target *-*-* } 24 } */
+} /* { dg-warning ".noreturn. function does return" "" { target *-*-* } .-1 } */
+ (id) method3
{
abort ();
diff --git a/gcc/testsuite/obj-c++.dg/class-extension-1.mm b/gcc/testsuite/obj-c++.dg/class-extension-1.mm
index eab59c4137c..5c89a9838cf 100644
--- a/gcc/testsuite/obj-c++.dg/class-extension-1.mm
+++ b/gcc/testsuite/obj-c++.dg/class-extension-1.mm
@@ -27,4 +27,4 @@
return 20;
}
@end /* { dg-warning "incomplete implementation of class .MyObject." } */
- /* { dg-warning "method definition for .-test3. not found" "" { target *-*-* } 29 } */
+ /* { dg-warning "method definition for .-test3. not found" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/obj-c++.dg/class-extension-2.mm b/gcc/testsuite/obj-c++.dg/class-extension-2.mm
index 79b126f529a..7f55b601fb3 100644
--- a/gcc/testsuite/obj-c++.dg/class-extension-2.mm
+++ b/gcc/testsuite/obj-c++.dg/class-extension-2.mm
@@ -22,8 +22,8 @@
@implementation MyObject
@end /* { dg-warning "incomplete implementation of class .MyObject." } */
- /* { dg-warning "method definition for .-test. not found" "" { target *-*-* } 24 } */
- /* { dg-warning "class .MyObject. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } 24 } */
+ /* { dg-warning "method definition for .-test. not found" "" { target *-*-* } .-1 } */
+ /* { dg-warning "class .MyObject. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } .-2 } */
@@ -48,9 +48,9 @@
@implementation MyObject2
@end /* { dg-warning "incomplete implementation of class .MyObject2." } */
- /* { dg-warning "method definition for .-test. not found" "" { target *-*-* } 50 } */
- /* { dg-warning "class .MyObject2. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } 50 } */
- /* { dg-warning "method definition for .-test2. not found" "" { target *-*-* } 50 } */
- /* { dg-warning "class .MyObject2. does not fully implement the .MyProtocol2. protocol" "" { target *-*-* } 50 } */
- /* { dg-warning "method definition for .-test3. not found" "" { target *-*-* } 50 } */
- /* { dg-warning "class .MyObject2. does not fully implement the .MyProtocol3. protocol" "" { target *-*-* } 50 } */
+ /* { 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 } */
diff --git a/gcc/testsuite/obj-c++.dg/class-protocol-1.mm b/gcc/testsuite/obj-c++.dg/class-protocol-1.mm
index 9e68c2ba6e5..f0eab03eff9 100644
--- a/gcc/testsuite/obj-c++.dg/class-protocol-1.mm
+++ b/gcc/testsuite/obj-c++.dg/class-protocol-1.mm
@@ -187,9 +187,9 @@ testForwardeDeclared1(void)
[cls doItInstance7]; /* { dg-warning "no .\\+doItInstance7. method found" } */
[clsP7 doItClass7]; /* { dg-warning "not found in protocol" } */
- /* { dg-warning "no .\\+doItClass7. method found" "" { target *-*-* } 189 } */
+ /* { dg-warning "no .\\+doItClass7. method found" "" { target *-*-* } .-1 } */
[clsP7 doItInstance7]; /* { dg-warning "not found in protocol" } */
- /* { dg-warning "no .\\+doItInstance7. method found" "" { target *-*-* } 191 } */
+ /* { dg-warning "no .\\+doItInstance7. method found" "" { target *-*-* } .-1 } */
[MyClass1 doItClass7]; /* { dg-warning "may not respond" } */
[MyClass1 doItInstance7]; /* { dg-warning "may not respond" } */
diff --git a/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm b/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
index 129215087eb..16601c93987 100644
--- a/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
+++ b/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
@@ -20,7 +20,7 @@ struct cxx_struct {
@interface Manip : TestsuiteObject {
int c;
cxx_struct s; // { dg-warning "user-defined destructor" }
- // { dg-warning "constructors and destructors will not be invoked" "" { target *-*-* } 22 }
+ // { dg-warning "constructors and destructors will not be invoked" "" { target *-*-* } .-1 }
}
- (void) manipulate_ivars;
@end
diff --git a/gcc/testsuite/obj-c++.dg/duplicate-class-1.mm b/gcc/testsuite/obj-c++.dg/duplicate-class-1.mm
index 9476533d1ea..3a5e5104faa 100644
--- a/gcc/testsuite/obj-c++.dg/duplicate-class-1.mm
+++ b/gcc/testsuite/obj-c++.dg/duplicate-class-1.mm
@@ -27,5 +27,5 @@
return [self test];
}
@end
-/* { dg-warning "incomplete implementation" "" { target *-*-* } 29 } */
-/* { dg-warning "not found" "" { target *-*-* } 29 } */
+/* { dg-warning "incomplete implementation" "" { target *-*-* } .-1 } */
+/* { dg-warning "not found" "" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/obj-c++.dg/exceptions-3.mm b/gcc/testsuite/obj-c++.dg/exceptions-3.mm
index 3e6a77513ad..a9da9d68433 100644
--- a/gcc/testsuite/obj-c++.dg/exceptions-3.mm
+++ b/gcc/testsuite/obj-c++.dg/exceptions-3.mm
@@ -70,7 +70,7 @@ int test (id object)
@try { @throw object; }
@catch (MyObject x) /* { dg-error "@catch parameter is not a known Objective-C class type" } */
- { /* { dg-error "no matching function" "" { target *-*-* } 72 } */
+ { /* { dg-error "no matching function" "" { target *-*-* } .-1 } */
dummy++; /* { dg-message "MyObject" "" { target *-*-* } 13 } */
} /* { dg-message "candidate" "" { target *-*-* } 13 } */
@try { @throw object; }
diff --git a/gcc/testsuite/obj-c++.dg/exceptions-4.mm b/gcc/testsuite/obj-c++.dg/exceptions-4.mm
index 85debe444b6..104ad0e7fe1 100644
--- a/gcc/testsuite/obj-c++.dg/exceptions-4.mm
+++ b/gcc/testsuite/obj-c++.dg/exceptions-4.mm
@@ -33,18 +33,18 @@ int test (id object)
@try { @throw object; }
@catch
{ /* { dg-error "expected" } */
- dummy++; /* { dg-error "@catch parameter is not a known Objective-C class type" "" { target *-*-* } 35 } */
+ dummy++; /* { dg-error "@catch parameter is not a known Objective-C class type" "" { target *-*-* } .-1 } */
}
@catch () /* { dg-error "expected identifier before" } */
- { /* { dg-error "@catch parameter is not a known Objective-C class type" "" { target *-*-* } 38 } */
+ { /* { dg-error "@catch parameter is not a known Objective-C class type" "" { target *-*-* } .-1 } */
dummy++;
}
@catch (i) /* { dg-error ".i. has not been declared" } */
- { /* { dg-error "@catch parameter is not a known Objective-C class type" "" { target *-*-* } 42 } */
+ { /* { dg-error "@catch parameter is not a known Objective-C class type" "" { target *-*-* } .-1 } */
dummy++;
}
@catch (id <MyProtocol x) /* { dg-error "expected ... before .x." } */
- { /* { dg-error "@catch parameter can not be protocol-qualified" "" { target *-*-* } 46 } */
+ { /* { dg-error "@catch parameter can not be protocol-qualified" "" { target *-*-* } .-1 } */
dummy++;
}
@catch MyObject *x /* { dg-error "expected ... before .MyObject." } */
diff --git a/gcc/testsuite/obj-c++.dg/exceptions-5.mm b/gcc/testsuite/obj-c++.dg/exceptions-5.mm
index 087533bcbbb..c1a2e4cfbae 100644
--- a/gcc/testsuite/obj-c++.dg/exceptions-5.mm
+++ b/gcc/testsuite/obj-c++.dg/exceptions-5.mm
@@ -70,7 +70,7 @@ int test (id object)
@try { @throw object; }
@catch (MyObject) /* { dg-error "@catch parameter is not a known Objective-C class type" } */
- { /* { dg-error "no matching function" "" { target *-*-* } 72 } */
+ { /* { dg-error "no matching function" "" { target *-*-* } .-1 } */
dummy++; /* { dg-message "MyObject" "" { target *-*-* } 13 } */
} /* { dg-message "candidate" "" { target *-*-* } 13 } */
diff --git a/gcc/testsuite/obj-c++.dg/fsf-nsstring-format-1.mm b/gcc/testsuite/obj-c++.dg/fsf-nsstring-format-1.mm
index caeaa030079..a5eaf3431f5 100644
--- a/gcc/testsuite/obj-c++.dg/fsf-nsstring-format-1.mm
+++ b/gcc/testsuite/obj-c++.dg/fsf-nsstring-format-1.mm
@@ -46,6 +46,6 @@ void foo (void)
{
s1 (@"this format not checked %d %s", 3, 4);
printf("this one is checked %d %s", 3, 4, 5); /* { dg-warning "format '%s' expects argument of type 'char.', but argument 3 has type 'int'" } */
- /* { dg-warning "too many arguments for format" "" { target *-*-* } 48 } */
+ /* { dg-warning "too many arguments for format" "" { target *-*-* } .-1 } */
printf(s9 (1, (char *)"and so is this %d %d %s" , 3, 4, "hm"), 5, 6, 12); /* { dg-warning "format '%s' expects argument of type 'char.', but argument 4 has type 'int'" } */
}
diff --git a/gcc/testsuite/obj-c++.dg/fsf-package-0.m b/gcc/testsuite/obj-c++.dg/fsf-package-0.m
index 812989a42b2..a64253e0936 100644
--- a/gcc/testsuite/obj-c++.dg/fsf-package-0.m
+++ b/gcc/testsuite/obj-c++.dg/fsf-package-0.m
@@ -32,5 +32,5 @@ void foo (void)
a->v2 = 1;
a->v3 = [a value] - a->v2; /* { dg-warning ".v3. is @protected" } */
a->v4 = a->v3 - 1; /* { dg-warning ".v4. is @private" } */
- /* { dg-warning ".v3. is @protected" "" { target *-*-* } 35 } */
+ /* { dg-warning ".v3. is @protected" "" { target *-*-* } . } */
}
diff --git a/gcc/testsuite/obj-c++.dg/invalid-type-1.mm b/gcc/testsuite/obj-c++.dg/invalid-type-1.mm
index ace144f0b2b..cb2138fd38e 100644
--- a/gcc/testsuite/obj-c++.dg/invalid-type-1.mm
+++ b/gcc/testsuite/obj-c++.dg/invalid-type-1.mm
@@ -19,7 +19,7 @@ id <MyProtocol> object; /* This is fine. */
AClass <MyProtocol> *object1; /* This is fine. */
Integer <MyProtocol> *object2; /* { dg-error ".Integer {aka int}. is not a template" } */
-/* { dg-error ".MyProtocol. was not declared in this scope" "" { target *-*-* } 21 } */
+/* { dg-error ".MyProtocol. was not declared in this scope" "" { target *-*-* } .-1 } */
Integer <NonExistingProtocol> *object3; /* { dg-error ".Integer {aka int}. is not a template" } */
-/* { dg-error ".NonExistingProtocol. was not declared in this scope" "" { target *-*-* } 24 } */
+/* { dg-error ".NonExistingProtocol. was not declared in this scope" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/obj-c++.dg/method-12.mm b/gcc/testsuite/obj-c++.dg/method-12.mm
index 6cdb0f9c810..1c78b12224d 100644
--- a/gcc/testsuite/obj-c++.dg/method-12.mm
+++ b/gcc/testsuite/obj-c++.dg/method-12.mm
@@ -24,9 +24,9 @@ void foo(void) {
/* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 15 } */
[receiver starboard]; /* { dg-warning "no .\\+starboard. method found" } */
- /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 26 } */
- /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 26 } */
- /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 26 } */
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } .-1 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } .-2 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } .-3 } */
[Class port]; /* { dg-error ".Class. is not an Objective\\-C class name or alias" } */
}
diff --git a/gcc/testsuite/obj-c++.dg/method-13.mm b/gcc/testsuite/obj-c++.dg/method-13.mm
index ee167bde36f..c2ae447b8e9 100644
--- a/gcc/testsuite/obj-c++.dg/method-13.mm
+++ b/gcc/testsuite/obj-c++.dg/method-13.mm
@@ -16,9 +16,9 @@ id foo(void) {
TestsuiteObject *obj = [[TestsuiteObject alloc] init];
id obj2 = obj;
[obj setWindow:nil]; /* { dg-warning ".TestsuiteObject. may not respond to .\\-setWindow:." } */
- /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 18 } */
- /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 18 } */
- /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 18 } */
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } .-1 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } .-2 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } .-3 } */
[obj2 setWindow:nil]; /* { dg-warning "multiple methods named .\\-setWindow:. found" } */
/* { dg-message "using .\\-\\(void\\)setWindow:\\(TestsuiteObject \\*\\)wdw." "" { target *-*-* } 8 } */
/* { dg-message "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } 12 } */
diff --git a/gcc/testsuite/obj-c++.dg/method-15.mm b/gcc/testsuite/obj-c++.dg/method-15.mm
index f3cef2565a8..a5543d64a3e 100644
--- a/gcc/testsuite/obj-c++.dg/method-15.mm
+++ b/gcc/testsuite/obj-c++.dg/method-15.mm
@@ -31,7 +31,7 @@
+ (NTGridDataObject*)dataObject:(id<MyObject, MyCoding>)data
{
NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data];
- /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 33 } */
+ /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } .-1 } */
/* { dg-message "using .\\-\\(id\\)initWithData:\\(TestsuiteObject \\*\\)data." "" { target *-*-* } 9 } */
/* { dg-message "also found .\\-\\(id\\)initWithData:\\(id <MyObject, MyCoding>\\)data." "" { target *-*-* } 17 } */
/* { dg-message "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 13 } */
diff --git a/gcc/testsuite/obj-c++.dg/method-16.mm b/gcc/testsuite/obj-c++.dg/method-16.mm
index aceefcdc7b0..d23bf77fd02 100644
--- a/gcc/testsuite/obj-c++.dg/method-16.mm
+++ b/gcc/testsuite/obj-c++.dg/method-16.mm
@@ -24,7 +24,7 @@
void foo(void) {
id obj1, obj2 = 0;
obj2 = [obj1 initWithData: obj2];
- /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 26 } */
+ /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } .-1 } */
/* { dg-message "using .\\-\\(void\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 13 } */
/* { dg-message "also found .\\-\\(id\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 17 } */
/* { dg-message "also found .\\-\\(id\\)initWithData:\\(Object2 \\*\\)data." "" { target *-*-* } 21 } */
diff --git a/gcc/testsuite/obj-c++.dg/method-6.mm b/gcc/testsuite/obj-c++.dg/method-6.mm
index 9cc99995bde..8f60511f788 100644
--- a/gcc/testsuite/obj-c++.dg/method-6.mm
+++ b/gcc/testsuite/obj-c++.dg/method-6.mm
@@ -10,7 +10,7 @@
void foo(NotKnown *n) {
[NotKnown new]; /* { dg-warning ".interface of class .NotKnown. not found" } */
[n nonexistent_method]; /* { dg-warning ".interface of class .NotKnown. not found" } */
- /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } 12 } */
+ /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } .-1 } */
}
/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/obj-c++.dg/method-7.mm b/gcc/testsuite/obj-c++.dg/method-7.mm
index 85abf7d3117..89409143e14 100644
--- a/gcc/testsuite/obj-c++.dg/method-7.mm
+++ b/gcc/testsuite/obj-c++.dg/method-7.mm
@@ -9,12 +9,12 @@ typedef struct NotAClass {
void foo(UnderSpecified *u, NotAClass *n) {
[n nonexistent_method]; /* { dg-warning "invalid receiver type" } */
- /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } 11 } */
+ /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } .-1 } */
[NotAClass nonexistent_method]; /* { dg-error ".NotAClass. is not an Objective\\-C class name or alias" } */
[u nonexistent_method]; /* { dg-warning ".interface of class .UnderSpecified. not found" } */
- /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } 14 } */
+ /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } .-1 } */
[UnderSpecified nonexistent_method]; /* { dg-warning ".interface of class .UnderSpecified. not found" } */
- /* { dg-warning "no .\\+nonexistent_method. method found" "" { target *-*-* } 16 } */
+ /* { dg-warning "no .\\+nonexistent_method. method found" "" { target *-*-* } .-1 } */
}
/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/obj-c++.dg/property/at-property-1.mm b/gcc/testsuite/obj-c++.dg/property/at-property-1.mm
index 1b945bd44ba..7cf650fb502 100644
--- a/gcc/testsuite/obj-c++.dg/property/at-property-1.mm
+++ b/gcc/testsuite/obj-c++.dg/property/at-property-1.mm
@@ -16,5 +16,5 @@
@property (xxx) int g; /* { dg-error "unknown property attribute" } */
@property (readonly,xxx) int h; /* { dg-error "unknown property attribute" } */
@property ( int i; /* { dg-error "expected identifier" } */
- /* { dg-error "expected ... " "" { target *-*-* } 18 } */
+ /* { dg-error "expected ... " "" { target *-*-* } .-1 } */
@end
diff --git a/gcc/testsuite/obj-c++.dg/property/at-property-14.mm b/gcc/testsuite/obj-c++.dg/property/at-property-14.mm
index a9068ba89d7..6a170ac68e8 100644
--- a/gcc/testsuite/obj-c++.dg/property/at-property-14.mm
+++ b/gcc/testsuite/obj-c++.dg/property/at-property-14.mm
@@ -10,11 +10,11 @@
/* Test the warnings on 'assign'. */
@property id property_a; /* { dg-warning "object property .property.a. has no .assign., .retain. or .copy. attribute" } */
- /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } 12 } */
+ /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } .-1 } */
@property (readonly) id property_b; /* No 'assign' warning (assign semantics do not matter if the property is readonly). */
@property id *property_c; /* No 'assign' warning (the type is not an Objective-C object). */
@property Class property_d; /* No 'assign' warning (Classes are static objects so assign semantics do not matter for them). */
@property MyRootClass *property_e; /* { dg-warning "object property .property.e. has no .assign., .retain. or .copy. attribute" } */
- /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } 18 } */
+ /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } .-1 } */
@end
diff --git a/gcc/testsuite/obj-c++.dg/property/at-property-17.mm b/gcc/testsuite/obj-c++.dg/property/at-property-17.mm
index efb62d6f70d..b6ee02c6312 100644
--- a/gcc/testsuite/obj-c++.dg/property/at-property-17.mm
+++ b/gcc/testsuite/obj-c++.dg/property/at-property-17.mm
@@ -95,4 +95,4 @@
@implementation MyClass3 (count3)
@end /* { dg-warning "incomplete implementation" } */
-/* { dg-warning "method definition for .-setCount3:. not found" "" { target *-*-* } 97 } */
+/* { dg-warning "method definition for .-setCount3:. not found" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/obj-c++.dg/property/at-property-21.mm b/gcc/testsuite/obj-c++.dg/property/at-property-21.mm
index d1f54b1cda8..4bcf452aefd 100644
--- a/gcc/testsuite/obj-c++.dg/property/at-property-21.mm
+++ b/gcc/testsuite/obj-c++.dg/property/at-property-21.mm
@@ -14,10 +14,10 @@
/* Test the warnings on 'assign' with protocols. */
@property id <MyProtocol> property_a; /* { dg-warning "object property .property.a. has no .assign., .retain. or .copy. attribute" } */
- /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } 16 } */
+ /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } .-1 } */
@property MyRootClass <MyProtocol> *property_b; /* { dg-warning "object property .property.b. has no .assign., .retain. or .copy. attribute" } */
- /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } 19 } */
+ /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } .-1 } */
@property Class <MyProtocol> property_c; /* No 'assign' warning (Classes are static objects so assign semantics do not matter for them). */
@end
diff --git a/gcc/testsuite/obj-c++.dg/property/at-property-5.mm b/gcc/testsuite/obj-c++.dg/property/at-property-5.mm
index fc618f2bc55..c8eec2f9224 100644
--- a/gcc/testsuite/obj-c++.dg/property/at-property-5.mm
+++ b/gcc/testsuite/obj-c++.dg/property/at-property-5.mm
@@ -18,7 +18,7 @@
/* Test various error messages. */
@property id property_a; /* { dg-warning "object property .property.a. has no .assign., .retain. or .copy. attribute" } */
- /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } 20 } */
+ /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } .-1 } */
@property int property_b = 4; /* { dg-error "expected" } */
@property (retain) int property_c; /* { dg-error ".retain. attribute is only valid for Objective-C objects" } */
@property (copy) int property_d; /* { dg-error ".copy. attribute is only valid for Objective-C objects" } */
diff --git a/gcc/testsuite/obj-c++.dg/property/dotsyntax-4.mm b/gcc/testsuite/obj-c++.dg/property/dotsyntax-4.mm
index f3292ecf391..2c4f4690890 100644
--- a/gcc/testsuite/obj-c++.dg/property/dotsyntax-4.mm
+++ b/gcc/testsuite/obj-c++.dg/property/dotsyntax-4.mm
@@ -37,7 +37,7 @@ int main (void)
MyRootClass.int; /* { dg-error "expected identifier" } */
if (MyRootClass.int) /* { dg-error "expected identifier" } */
- /* { dg-error "expected" "" { target *-*-* } 39 } */
+ /* { dg-error "expected" "" { target *-*-* } .-1 } */
abort ();
return 0;
diff --git a/gcc/testsuite/obj-c++.dg/property/dynamic-3.mm b/gcc/testsuite/obj-c++.dg/property/dynamic-3.mm
index e8a6693b04e..869f40f5cb5 100644
--- a/gcc/testsuite/obj-c++.dg/property/dynamic-3.mm
+++ b/gcc/testsuite/obj-c++.dg/property/dynamic-3.mm
@@ -46,4 +46,4 @@
return self.b;
}
@end /* { dg-warning "incomplete implementation" } */
-/* { dg-warning "method definition for .-setB:. not found" "" { target *-*-* } 48 } */
+/* { dg-warning "method definition for .-setB:. not found" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/obj-c++.dg/property/dynamic-4.mm b/gcc/testsuite/obj-c++.dg/property/dynamic-4.mm
index 84998d6b407..9278ab83722 100644
--- a/gcc/testsuite/obj-c++.dg/property/dynamic-4.mm
+++ b/gcc/testsuite/obj-c++.dg/property/dynamic-4.mm
@@ -41,5 +41,5 @@
return 0;
}
@end /* { dg-warning "incomplete implementation" } */
-/* { dg-warning "method definition for .-setA:. not found" "" { target *-*-* } 43 } */
-/* { dg-warning "class .MyClass2. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } 43 } */
+/* { dg-warning "method definition for .-setA:. not found" "" { target *-*-* } .-1 } */
+/* { dg-warning "class .MyClass2. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/obj-c++.dg/property/property-neg-1.mm b/gcc/testsuite/obj-c++.dg/property/property-neg-1.mm
index cae1a56154d..d54cfddf519 100644
--- a/gcc/testsuite/obj-c++.dg/property/property-neg-1.mm
+++ b/gcc/testsuite/obj-c++.dg/property/property-neg-1.mm
@@ -9,5 +9,5 @@
@implementation Bar
@end /* { dg-warning "incomplete implementation of class .Bar." } */
- /* { dg-warning "method definition for .-setFooBar:. not found" "" { target *-*-* } 11 } */
- /* { dg-warning "method definition for .-fooBar. not found" "" { target *-*-* } 11 } */
+ /* { dg-warning "method definition for .-setFooBar:. not found" "" { target *-*-* } .-1 } */
+ /* { dg-warning "method definition for .-fooBar. not found" "" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/obj-c++.dg/property/property-neg-6.mm b/gcc/testsuite/obj-c++.dg/property/property-neg-6.mm
index 86bb664851c..c4a22eb6d20 100644
--- a/gcc/testsuite/obj-c++.dg/property/property-neg-6.mm
+++ b/gcc/testsuite/obj-c++.dg/property/property-neg-6.mm
@@ -6,4 +6,4 @@
int iVar;
}
@property int FooBar /* { dg-error "expected ';' at end of input" } */
- /* { dg-error "expected '@end' at end of input" "" { target *-*-* } 8 } */
+ /* { dg-error "expected '@end' at end of input" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/obj-c++.dg/property/synthesize-11.mm b/gcc/testsuite/obj-c++.dg/property/synthesize-11.mm
index 25158da761a..3f02112643f 100644
--- a/gcc/testsuite/obj-c++.dg/property/synthesize-11.mm
+++ b/gcc/testsuite/obj-c++.dg/property/synthesize-11.mm
@@ -27,5 +27,5 @@
@synthesize countA; /* { dg-error ".atomic. property .countA. is using bit-field instance variable .countA." } */
@synthesize countB; /* { dg-error "property .countB. is using instance variable .countB. of incompatible type" } */
@end /* { dg-warning "incomplete implementation of class" } */
-/* { dg-message "method definition for ..setCountA.. not found" "" { target *-*-* } 29 } */
-/* { dg-message "method definition for ..countA. not found" "" { target *-*-* } 29 } */
+/* { dg-message "method definition for ..setCountA.. not found" "" { target *-*-* } .-1 } */
+/* { dg-message "method definition for ..countA. not found" "" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/obj-c++.dg/property/synthesize-5.mm b/gcc/testsuite/obj-c++.dg/property/synthesize-5.mm
index 0871b63ee21..0562711fdcb 100644
--- a/gcc/testsuite/obj-c++.dg/property/synthesize-5.mm
+++ b/gcc/testsuite/obj-c++.dg/property/synthesize-5.mm
@@ -13,6 +13,6 @@
@implementation Test
@synthesize v1; /* { dg-error "must be an existing ivar" } */
@end
-/* { dg-warning "incomplete implementation" "" { target *-*-* } 15 } */
-/* { dg-warning "method definition for .-setV1:. not found" "" { target *-*-* } 15 } */
-/* { dg-warning "method definition for .-v1. not found" "" { target *-*-* } 15 } */
+/* { dg-warning "incomplete implementation" "" { target *-*-* } .-1 } */
+/* { dg-warning "method definition for .-setV1:. not found" "" { target *-*-* } .-2 } */
+/* { dg-warning "method definition for .-v1. not found" "" { target *-*-* } .-3 } */
diff --git a/gcc/testsuite/obj-c++.dg/property/synthesize-6.mm b/gcc/testsuite/obj-c++.dg/property/synthesize-6.mm
index 2a078c9b8a8..f5f14050cb5 100644
--- a/gcc/testsuite/obj-c++.dg/property/synthesize-6.mm
+++ b/gcc/testsuite/obj-c++.dg/property/synthesize-6.mm
@@ -25,6 +25,6 @@
@implementation Test2
@synthesize w1; /* { dg-error "ivar .w1. used by .@synthesize. declaration must be an existing ivar" } */
@end
-/* { dg-warning "incomplete implementation" "" { target *-*-* } 27 } */
-/* { dg-message "method definition for .-setW1:. not found" "" { target *-*-* } 27 } */
-/* { dg-message "method definition for .-w1. not found" "" { target *-*-* } 27 } */
+/* { dg-warning "incomplete implementation" "" { target *-*-* } .-1 } */
+/* { dg-message "method definition for .-setW1:. not found" "" { target *-*-* } .-2 } */
+/* { dg-message "method definition for .-w1. not found" "" { target *-*-* } .-3 } */
diff --git a/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm b/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm
index 9f94754ca07..2b9945fc16c 100644
--- a/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm
+++ b/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm
@@ -26,13 +26,13 @@ long foo(void) {
receiver += [receiver anotherValue]; /* { dg-warning "invalid receiver type .long int." } */
receiver += [(Obj *)receiver someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */
-/* { dg-error "invalid conversion" "" { target *-*-* } 28 } */
+/* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */
receiver += [(Obj *)receiver anotherValue];
receiver += [(Obj <Proto> *)receiver someValue];
receiver += [(Obj <Proto> *)receiver anotherValue];
receiver += [objrcvr someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */
-/* { dg-error "invalid conversion" "" { target *-*-* } 34 } */
+/* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */
receiver += [objrcvr anotherValue];
receiver += [(Obj <Proto> *)objrcvr someValue];
@@ -40,7 +40,7 @@ long foo(void) {
receiver += [objrcvr2 someValue];
receiver += [objrcvr2 anotherValue];
receiver += [(Obj *)objrcvr2 someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */
-/* { dg-error "invalid conversion" "" { target *-*-* } 42 } */
+/* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */
receiver += [(Obj *)objrcvr2 anotherValue];
diff --git a/gcc/testsuite/obj-c++.dg/protocol-qualifier-2.mm b/gcc/testsuite/obj-c++.dg/protocol-qualifier-2.mm
index fd25d8ff606..9fb09b5f2bb 100644
--- a/gcc/testsuite/obj-c++.dg/protocol-qualifier-2.mm
+++ b/gcc/testsuite/obj-c++.dg/protocol-qualifier-2.mm
@@ -25,7 +25,7 @@ void test1 (void)
{
[object1 method]; /* Ok */
[object2 method]; /* { dg-warning ".MyClass. may not respond to ..method." } */
- /* { dg-warning "without a matching method" "" { target *-*-* } 27 } */
- /* { dg-warning "will be assumed to return" "" { target *-*-* } 27 } */
- /* { dg-warning "as arguments" "" { target *-*-* } 27 } */
+ /* { dg-warning "without a matching method" "" { target *-*-* } .-1 } */
+ /* { dg-warning "will be assumed to return" "" { target *-*-* } .-2 } */
+ /* { dg-warning "as arguments" "" { target *-*-* } .-3 } */
}
diff --git a/gcc/testsuite/obj-c++.dg/strings/strings-1.mm b/gcc/testsuite/obj-c++.dg/strings/strings-1.mm
index 408392fd5a0..e84aae46a0d 100644
--- a/gcc/testsuite/obj-c++.dg/strings/strings-1.mm
+++ b/gcc/testsuite/obj-c++.dg/strings/strings-1.mm
@@ -29,4 +29,4 @@ id test_invalid7 = @"te" @"s" @@"t"; /* { dg-error "repeated .@. bef
id test_invalid8 = @"te" @@"s" @"t"; /* { dg-error "repeated .@. before Objective-C string" } */
id test_invalid9 = @"te" @"s" @"t" @; /* { dg-error "stray .@. in program" } */
id test_invalidA = @"te" @ st; /* { dg-error "stray .@. in program" } */
- /* { dg-error "expected" "" { target *-*-* } 31 } */
+ /* { dg-error "expected" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/obj-c++.dg/super-class-1.mm b/gcc/testsuite/obj-c++.dg/super-class-1.mm
index 78870369780..f8cccb3d4c8 100644
--- a/gcc/testsuite/obj-c++.dg/super-class-1.mm
+++ b/gcc/testsuite/obj-c++.dg/super-class-1.mm
@@ -26,5 +26,5 @@
+ (int) test_func
{
return [super test_func]; /* { dg-bogus "invalid use of undefined type" } */
-} /* { dg-bogus "forward declaration of" "" { target *-*-* } 28 } */
+} /* { dg-bogus "forward declaration of" "" { target *-*-* } .-1 } */
@end
diff --git a/gcc/testsuite/obj-c++.dg/syntax-error-6.mm b/gcc/testsuite/obj-c++.dg/syntax-error-6.mm
index 36a444f784d..2c8c6f8601d 100644
--- a/gcc/testsuite/obj-c++.dg/syntax-error-6.mm
+++ b/gcc/testsuite/obj-c++.dg/syntax-error-6.mm
@@ -9,7 +9,7 @@ void FOO()
NSButton * mCopyAcrobatCB;
[ [ mCopyAcrobatCB state ] == 0 ] != 1; /* { dg-error "expected identifier before ... token" } */
-/* { dg-error "expected \\\'\\\{\\\' before \\\'!=\\\' token" "" { target *-*-* } 11 } */
-/* { dg-error "lambda expressions only available with" "" { target *-*-* } 11 } */
-/* { dg-error "no match for \\\'operator!=\\\' in" "" { target *-*-* } 11 } */
+/* { dg-error "expected \\\'\\\{\\\' before \\\'!=\\\' token" "" { target *-*-* } .-1 } */
+/* { dg-error "lambda expressions only available with" "" { target *-*-* } .-2 } */
+/* { dg-error "no match for \\\'operator!=\\\' in" "" { target *-*-* } .-3 } */
}
diff --git a/gcc/testsuite/obj-c++.dg/syntax-error-7.mm b/gcc/testsuite/obj-c++.dg/syntax-error-7.mm
index e38c0958cc3..5bdccc7b05f 100644
--- a/gcc/testsuite/obj-c++.dg/syntax-error-7.mm
+++ b/gcc/testsuite/obj-c++.dg/syntax-error-7.mm
@@ -10,4 +10,4 @@
{
}
@end /* { dg-warning "incomplete implementation of class" } */
-/* { dg-warning "method definition for ..someMethod. not found" "" { target *-*-* } 12 } */
+/* { dg-warning "method definition for ..someMethod. not found" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/obj-c++.dg/syntax-error-9.mm b/gcc/testsuite/obj-c++.dg/syntax-error-9.mm
index 97706d5b1aa..352dd34cf94 100644
--- a/gcc/testsuite/obj-c++.dg/syntax-error-9.mm
+++ b/gcc/testsuite/obj-c++.dg/syntax-error-9.mm
@@ -1,3 +1,3 @@
@implementation SaturnDoc /* { dg-warning "cannot find interface declaration" } */
- read: (void*)aStream ggg /* { dg-error "expected .:. at end of input" } */
-/* { dg-error "expected ..end. at end of input" "" { target *-*-* } 2 } */ \ No newline at end of file
+/* { dg-error "expected ..end. at end of input" "" { target *-*-* } .-1 } */ \ No newline at end of file
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-13.mm b/gcc/testsuite/obj-c++.dg/try-catch-13.mm
index 776d57bed60..aaf451e2ce7 100644
--- a/gcc/testsuite/obj-c++.dg/try-catch-13.mm
+++ b/gcc/testsuite/obj-c++.dg/try-catch-13.mm
@@ -21,7 +21,7 @@ extern void some_func (int *);
typeof(i) j = 6;
typeof(q) k = 66;
some_func (&j);
-/* { dg-error "invalid conversion" "" { target *-*-* } 23 } */
+/* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */
/* { dg-message "initializing argument" "" { target *-*-* } 12 } */
some_func (&k);
}
@@ -36,7 +36,7 @@ extern void some_func (int *);
typeof(q) k = 77;
some_func (&k);
some_func (&j);
-/* { dg-error "invalid conversion" "" { target *-*-* } 38 } */
+/* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */
/* The following is disabled as it is already checked above and the testsuites seems
to count multiple different identical errors on the same line only once */
/* dg-message "initializing argument" "" { target *-*-* } 12 */
@@ -51,7 +51,7 @@ extern void some_func (int *);
typeof(q) k = 88;
typeof(i) j = 8;
some_func (&j);
-/* { dg-error "invalid conversion" "" { target *-*-* } 53 } */
+/* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */
/* The following is disabled as it is already checked above and the testsuites seems
to count multiple different identical errors on the same line only once */
/* dg-message "initializing argument" "" { target *-*-* } 12 */
diff --git a/gcc/testsuite/objc.dg/attributes/method-noreturn-1.m b/gcc/testsuite/objc.dg/attributes/method-noreturn-1.m
index 717d6e65e28..a83048bb7ed 100644
--- a/gcc/testsuite/objc.dg/attributes/method-noreturn-1.m
+++ b/gcc/testsuite/objc.dg/attributes/method-noreturn-1.m
@@ -18,11 +18,11 @@
+ (id) method1
{
return self; /* { dg-warning "function declared .noreturn. has a .return. statement" } */
-} /* { dg-warning ".noreturn. function does return" "" { target *-*-* } 20 } */
+} /* { dg-warning ".noreturn. function does return" "" { target *-*-* } .-1 } */
- (id) method2
{
return self; /* { dg-warning "function declared .noreturn. has a .return. statement" } */
-} /* { dg-warning ".noreturn. function does return" "" { target *-*-* } 24 } */
+} /* { dg-warning ".noreturn. function does return" "" { target *-*-* } .-1 } */
+ (id) method3
{
abort ();
diff --git a/gcc/testsuite/objc.dg/bad-receiver-type-2.m b/gcc/testsuite/objc.dg/bad-receiver-type-2.m
index eca8400d503..6a4dff163a8 100644
--- a/gcc/testsuite/objc.dg/bad-receiver-type-2.m
+++ b/gcc/testsuite/objc.dg/bad-receiver-type-2.m
@@ -26,16 +26,16 @@ int main(int argc,char **argv)
[(struct {int a;} *)ip foo]; /* { dg-warning "invalid receiver type" } */
[func1 foo]; /* { dg-warning "invalid receiver type" } */
[struct1.a foo]; /* { dg-warning "invalid receiver type" } */
- /* { dg-warning "cast to pointer from integer" "" { target *-*-* } 28 } */
+ /* { dg-warning "cast to pointer from integer" "" { target *-*-* } .-1 } */
[union1.a foo]; /* { dg-warning "invalid receiver type" } */
- /* { dg-warning "cast to pointer from integer" "" { target *-*-* } 30 } */
+ /* { dg-warning "cast to pointer from integer" "" { target *-*-* } .-1 } */
[struct1 foo]; /* { dg-warning "invalid receiver type" } */
- /* { dg-error "cannot convert" "" { target *-*-* } 32 } */
+ /* { dg-error "cannot convert" "" { target *-*-* } .-1 } */
[union1 foo]; /* { dg-warning "invalid receiver type" } */
- /* { dg-error "cannot convert" "" { target *-*-* } 34 } */
+ /* { dg-error "cannot convert" "" { target *-*-* } .-1 } */
[struct2 foo]; /* { dg-warning "invalid receiver type" } */
- /* { dg-error "cannot convert" "" { target *-*-* } 36 } */
+ /* { dg-error "cannot convert" "" { target *-*-* } .-1 } */
[union2 foo]; /* { dg-warning "invalid receiver type" } */
- /* { dg-error "cannot convert" "" { target *-*-* } 38 } */
+ /* { dg-error "cannot convert" "" { target *-*-* } .-1 } */
[f foo]; /* { dg-warning "invalid receiver type" } */
}
diff --git a/gcc/testsuite/objc.dg/bad-receiver-type.m b/gcc/testsuite/objc.dg/bad-receiver-type.m
index 8ab296257db..062a56c9f62 100644
--- a/gcc/testsuite/objc.dg/bad-receiver-type.m
+++ b/gcc/testsuite/objc.dg/bad-receiver-type.m
@@ -11,5 +11,5 @@ extern int foo();
void baz()
{
[foo test]; /* { dg-warning "invalid receiver type" } */
- /* { dg-error "cannot convert to a pointer type" "" { target *-*-* } 13 } */
+ /* { dg-error "cannot convert to a pointer type" "" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/objc.dg/call-super-2.m b/gcc/testsuite/objc.dg/call-super-2.m
index 10c62527252..af01d445364 100644
--- a/gcc/testsuite/objc.dg/call-super-2.m
+++ b/gcc/testsuite/objc.dg/call-super-2.m
@@ -130,7 +130,7 @@
int i = (size_t)[self instance_func0]; /* { dg-warning ".Derived. may not respond to .\\-instance_func0." } */
i += [(Derived <Func> *)self categ_instance_func2];
i += (size_t)[(TestsuiteObject <Func> *)self categ_instance_func2]; /* { dg-warning ".TestsuiteObject. may not respond to .\\-categ_instance_func2." } */
- /* { dg-warning ".\\-categ_instance_func2. not found in protocol" "" { target *-*-* } 132 } */
+ /* { dg-warning ".\\-categ_instance_func2. not found in protocol" "" { target *-*-* } .-1 } */
i += (size_t)[(id <Func>)self categ_instance_func2]; /* { dg-warning ".\\-categ_instance_func2. not found in protocol" } */
i += [(id)self categ_instance_func2];
return i + (size_t)[super instance_func0]; /* { dg-warning ".TestsuiteObject. may not respond to .\\-instance_func0." } */
diff --git a/gcc/testsuite/objc.dg/class-2.m b/gcc/testsuite/objc.dg/class-2.m
index b98d117f54c..12b47650947 100644
--- a/gcc/testsuite/objc.dg/class-2.m
+++ b/gcc/testsuite/objc.dg/class-2.m
@@ -11,4 +11,4 @@
@end
@implementation class1 : supclass2 /* { dg-error "conflicting super class name" } */
-@end /* { dg-error "previous declaration" "" { target *-*-* } 13 } */
+@end /* { dg-error "previous declaration" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/objc.dg/class-extension-1.m b/gcc/testsuite/objc.dg/class-extension-1.m
index eab59c4137c..5c89a9838cf 100644
--- a/gcc/testsuite/objc.dg/class-extension-1.m
+++ b/gcc/testsuite/objc.dg/class-extension-1.m
@@ -27,4 +27,4 @@
return 20;
}
@end /* { dg-warning "incomplete implementation of class .MyObject." } */
- /* { dg-warning "method definition for .-test3. not found" "" { target *-*-* } 29 } */
+ /* { dg-warning "method definition for .-test3. not found" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/objc.dg/class-extension-2.m b/gcc/testsuite/objc.dg/class-extension-2.m
index 79b126f529a..7f55b601fb3 100644
--- a/gcc/testsuite/objc.dg/class-extension-2.m
+++ b/gcc/testsuite/objc.dg/class-extension-2.m
@@ -22,8 +22,8 @@
@implementation MyObject
@end /* { dg-warning "incomplete implementation of class .MyObject." } */
- /* { dg-warning "method definition for .-test. not found" "" { target *-*-* } 24 } */
- /* { dg-warning "class .MyObject. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } 24 } */
+ /* { dg-warning "method definition for .-test. not found" "" { target *-*-* } .-1 } */
+ /* { dg-warning "class .MyObject. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } .-2 } */
@@ -48,9 +48,9 @@
@implementation MyObject2
@end /* { dg-warning "incomplete implementation of class .MyObject2." } */
- /* { dg-warning "method definition for .-test. not found" "" { target *-*-* } 50 } */
- /* { dg-warning "class .MyObject2. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } 50 } */
- /* { dg-warning "method definition for .-test2. not found" "" { target *-*-* } 50 } */
- /* { dg-warning "class .MyObject2. does not fully implement the .MyProtocol2. protocol" "" { target *-*-* } 50 } */
- /* { dg-warning "method definition for .-test3. not found" "" { target *-*-* } 50 } */
- /* { dg-warning "class .MyObject2. does not fully implement the .MyProtocol3. protocol" "" { target *-*-* } 50 } */
+ /* { 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 } */
diff --git a/gcc/testsuite/objc.dg/class-protocol-1.m b/gcc/testsuite/objc.dg/class-protocol-1.m
index 4dfb3b86708..086201eef52 100644
--- a/gcc/testsuite/objc.dg/class-protocol-1.m
+++ b/gcc/testsuite/objc.dg/class-protocol-1.m
@@ -187,9 +187,9 @@ testForwardeDeclared1(void)
[cls doItInstance7]; /* { dg-warning "no .\\+doItInstance7. method found" } */
[clsP7 doItClass7]; /* { dg-warning "not found in protocol" } */
- /* { dg-warning "no .\\+doItClass7. method found" "" { target *-*-* } 189 } */
+ /* { dg-warning "no .\\+doItClass7. method found" "" { target *-*-* } .-1 } */
[clsP7 doItInstance7]; /* { dg-warning "not found in protocol" } */
- /* { dg-warning "no .\\+doItInstance7. method found" "" { target *-*-* } 191 } */
+ /* { dg-warning "no .\\+doItInstance7. method found" "" { target *-*-* } .-1 } */
[MyClass1 doItClass7]; /* { dg-warning "may not respond" } */
[MyClass1 doItInstance7]; /* { dg-warning "may not respond" } */
diff --git a/gcc/testsuite/objc.dg/desig-init-1.m b/gcc/testsuite/objc.dg/desig-init-1.m
index 187e5483e21..24fe7094eae 100644
--- a/gcc/testsuite/objc.dg/desig-init-1.m
+++ b/gcc/testsuite/objc.dg/desig-init-1.m
@@ -24,7 +24,7 @@
[Cls meth1],
[2 + 1] = 3,
[2 * 2 ... 5] = (size_t)[0 meth4], /* { dg-warning "invalid receiver type" } */
- /* { dg-warning "no .\\-meth4. method found" "" { target *-*-* } 26 } */
+ /* { dg-warning "no .\\-meth4. method found" "" { target *-*-* } .-1 } */
[2] [Cls meth2],
/* Since invalid receivers are treated as 'id' for purposes of message
lookup, we _should_ find a meth2 to call below. */
diff --git a/gcc/testsuite/objc.dg/duplicate-class-1.m b/gcc/testsuite/objc.dg/duplicate-class-1.m
index f86159211b3..30a18ffa5a6 100644
--- a/gcc/testsuite/objc.dg/duplicate-class-1.m
+++ b/gcc/testsuite/objc.dg/duplicate-class-1.m
@@ -27,5 +27,5 @@
return [self test];
}
@end
-/* { dg-warning "incomplete implementation" "" { target *-*-* } 29 } */
-/* { dg-warning "not found" "" { target *-*-* } 29 } */
+/* { dg-warning "incomplete implementation" "" { target *-*-* } .-1 } */
+/* { dg-warning "not found" "" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/objc.dg/exceptions-3.m b/gcc/testsuite/objc.dg/exceptions-3.m
index fe9dbfbfa06..41f7b5c4d1e 100644
--- a/gcc/testsuite/objc.dg/exceptions-3.m
+++ b/gcc/testsuite/objc.dg/exceptions-3.m
@@ -70,7 +70,7 @@ int test (id object)
@try { @throw object; }
@catch (MyObject x) /* { dg-error "@catch parameter is not a known Objective-C class type" } */
- { /* { dg-error "conversion to non-scalar type requested" "" { target *-*-* } 72 } */
+ { /* { dg-error "conversion to non-scalar type requested" "" { target *-*-* } .-1 } */
dummy++;
}
diff --git a/gcc/testsuite/objc.dg/exceptions-4.m b/gcc/testsuite/objc.dg/exceptions-4.m
index fc07e4f420c..51d000eb69e 100644
--- a/gcc/testsuite/objc.dg/exceptions-4.m
+++ b/gcc/testsuite/objc.dg/exceptions-4.m
@@ -44,7 +44,7 @@ int test (id object)
dummy++;
}
@catch (id <MyProtocol x) /* { dg-error "expected ... before .x." } */
- { /* { dg-error "@catch parameter can not be protocol-qualified" "" { target *-*-* } 46 } */
+ { /* { dg-error "@catch parameter can not be protocol-qualified" "" { target *-*-* } .-1 } */
dummy++;
}
@catch MyObject *x /* { dg-error "expected ... before .MyObject." } */
diff --git a/gcc/testsuite/objc.dg/exceptions-5.m b/gcc/testsuite/objc.dg/exceptions-5.m
index d89ad2967c0..e4e5be1e598 100644
--- a/gcc/testsuite/objc.dg/exceptions-5.m
+++ b/gcc/testsuite/objc.dg/exceptions-5.m
@@ -70,7 +70,7 @@ int test (id object)
@try { @throw object; }
@catch (MyObject) /* { dg-error "@catch parameter is not a known Objective-C class type" } */
- { /* { dg-error "conversion to non-scalar type requested" "" { target *-*-* } 72 } */
+ { /* { dg-error "conversion to non-scalar type requested" "" { target *-*-* } .-1 } */
dummy++;
}
diff --git a/gcc/testsuite/objc.dg/foreach-6.m b/gcc/testsuite/objc.dg/foreach-6.m
index b0a927be095..eb4c5009229 100644
--- a/gcc/testsuite/objc.dg/foreach-6.m
+++ b/gcc/testsuite/objc.dg/foreach-6.m
@@ -48,7 +48,7 @@ int main (void)
;
for (12 in array) /* { dg-error "invalid iterating variable in fast enumeration" } */
- ; /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } 50 } */
+ ; /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } .-1 } */
for (object in 12) /* { dg-error "collection in fast enumeration is not an object" } */
;
diff --git a/gcc/testsuite/objc.dg/foreach-7.m b/gcc/testsuite/objc.dg/foreach-7.m
index a82869223b1..7ceff075016 100644
--- a/gcc/testsuite/objc.dg/foreach-7.m
+++ b/gcc/testsuite/objc.dg/foreach-7.m
@@ -40,10 +40,10 @@ int main (void)
id object = nil;
for (typedef int my_typedef in array) /* { dg-error "declaration of non-variable" } */
- ; /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } 42 } */
+ ; /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } .-1 } */
for (function () in nil) /* { dg-error "invalid iterating variable in fast enumeration" } */
- ; /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } 45 } */
+ ; /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } .-1 } */
for (object_function () in nil) /* { dg-error "invalid iterating variable in fast enumeration" } */
;
diff --git a/gcc/testsuite/objc.dg/fsf-nsstring-format-1.m b/gcc/testsuite/objc.dg/fsf-nsstring-format-1.m
index 0921bb33bca..ecbad439acc 100644
--- a/gcc/testsuite/objc.dg/fsf-nsstring-format-1.m
+++ b/gcc/testsuite/objc.dg/fsf-nsstring-format-1.m
@@ -39,6 +39,6 @@ void foo (void)
{
s1 (@"format not checked %d %s", 3, 4);
printf("this one is checked %d %s", 3, 4, 5); /* { dg-warning "format '%s' expects argument of type 'char .', but argument 3 has type 'int'" } */
- /* { dg-warning "too many arguments for format" "" { target *-*-* } 41 } */
+ /* { dg-warning "too many arguments for format" "" { target *-*-* } .-1 } */
printf(s9 (1, "and so is this %d %d %s", 3, 4), 5, 6, 12); /* { dg-warning "format '%s' expects argument of type 'char .', but argument 4 has type 'int'" } */
}
diff --git a/gcc/testsuite/objc.dg/fsf-package-0.m b/gcc/testsuite/objc.dg/fsf-package-0.m
index 7c6ea9a85e7..cad208f03e9 100644
--- a/gcc/testsuite/objc.dg/fsf-package-0.m
+++ b/gcc/testsuite/objc.dg/fsf-package-0.m
@@ -32,5 +32,5 @@ void foo (void)
a->v2 = 1;
a->v3 = [a value] - a->v2; /* { dg-warning ".v3. is @protected" } */
a->v4 = a->v3 - 1; /* { dg-warning ".v4. is @private" } */
- /* { dg-warning ".v3. is @protected" "" { target *-*-* } 34 } */
+ /* { dg-warning ".v3. is @protected" "" { target *-*-* } .-1 } */
}
diff --git a/gcc/testsuite/objc.dg/invalid-type-1.m b/gcc/testsuite/objc.dg/invalid-type-1.m
index b8609f8c831..35e94f7ec4a 100644
--- a/gcc/testsuite/objc.dg/invalid-type-1.m
+++ b/gcc/testsuite/objc.dg/invalid-type-1.m
@@ -21,4 +21,4 @@ AClass <MyProtocol> *object1; /* This is fine. */
Integer <MyProtocol> *object2; /* { dg-error "only Objective-C object types can be qualified with a protocol" } */
Integer <NonExistingProtocol> *object3; /* { dg-error "only Objective-C object types can be qualified with a protocol" } */
-/* { dg-error "cannot find protocol" "" { target *-*-* } 23 } */
+/* { dg-error "cannot find protocol" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/objc.dg/method-11.m b/gcc/testsuite/objc.dg/method-11.m
index ddd0121b0d5..ba027a95ab3 100644
--- a/gcc/testsuite/objc.dg/method-11.m
+++ b/gcc/testsuite/objc.dg/method-11.m
@@ -23,7 +23,7 @@
void foo(void) {
id obj1, obj2 = 0;
obj2 = [obj1 initWithData: obj2];
- /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 25 } */
+ /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } .-1 } */
/* { dg-message "using .\\-\\(void\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 12 } */
/* { dg-message "also found .\\-\\(id\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 16 } */
/* { dg-message "also found .\\-\\(id\\)initWithData:\\(Object2 \\*\\)data." "" { target *-*-* } 20 } */
diff --git a/gcc/testsuite/objc.dg/method-19.m b/gcc/testsuite/objc.dg/method-19.m
index 9cc99995bde..8f60511f788 100644
--- a/gcc/testsuite/objc.dg/method-19.m
+++ b/gcc/testsuite/objc.dg/method-19.m
@@ -10,7 +10,7 @@
void foo(NotKnown *n) {
[NotKnown new]; /* { dg-warning ".interface of class .NotKnown. not found" } */
[n nonexistent_method]; /* { dg-warning ".interface of class .NotKnown. not found" } */
- /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } 12 } */
+ /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } .-1 } */
}
/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/objc.dg/method-2.m b/gcc/testsuite/objc.dg/method-2.m
index 8bf211f8700..b6aa32d4f29 100644
--- a/gcc/testsuite/objc.dg/method-2.m
+++ b/gcc/testsuite/objc.dg/method-2.m
@@ -23,9 +23,9 @@
[MyIntermediate rootInstanceMethod]; /* with the same name. */
[self instanceMethod]; /* { dg-warning ".MyDerived. may not respond to .\\+instanceMethod." } */
- /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 25 } */
- /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 25 } */
- /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 25 } */
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } .-1 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } .-2 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } .-3 } */
[MyDerived instanceMethod]; /* { dg-warning ".MyDerived. may not respond to .\\+instanceMethod." } */
}
@end
diff --git a/gcc/testsuite/objc.dg/method-20.m b/gcc/testsuite/objc.dg/method-20.m
index 722463ce2b6..b2bf99505e0 100644
--- a/gcc/testsuite/objc.dg/method-20.m
+++ b/gcc/testsuite/objc.dg/method-20.m
@@ -5,5 +5,5 @@
@ implementation NGActiveSocket
+ (void) socketPair:(int[m]) _pair {} /* { dg-error "" } */
- /* { dg-warning "" "" { target *-*-* } 7 } */
+ /* { dg-warning "" "" { target *-*-* } .-1 } */
@end
diff --git a/gcc/testsuite/objc.dg/method-5.m b/gcc/testsuite/objc.dg/method-5.m
index 85abf7d3117..89409143e14 100644
--- a/gcc/testsuite/objc.dg/method-5.m
+++ b/gcc/testsuite/objc.dg/method-5.m
@@ -9,12 +9,12 @@ typedef struct NotAClass {
void foo(UnderSpecified *u, NotAClass *n) {
[n nonexistent_method]; /* { dg-warning "invalid receiver type" } */
- /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } 11 } */
+ /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } .-1 } */
[NotAClass nonexistent_method]; /* { dg-error ".NotAClass. is not an Objective\\-C class name or alias" } */
[u nonexistent_method]; /* { dg-warning ".interface of class .UnderSpecified. not found" } */
- /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } 14 } */
+ /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } .-1 } */
[UnderSpecified nonexistent_method]; /* { dg-warning ".interface of class .UnderSpecified. not found" } */
- /* { dg-warning "no .\\+nonexistent_method. method found" "" { target *-*-* } 16 } */
+ /* { dg-warning "no .\\+nonexistent_method. method found" "" { target *-*-* } .-1 } */
}
/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/objc.dg/method-6.m b/gcc/testsuite/objc.dg/method-6.m
index a14c14d6d5c..1c87670d8cc 100644
--- a/gcc/testsuite/objc.dg/method-6.m
+++ b/gcc/testsuite/objc.dg/method-6.m
@@ -31,9 +31,9 @@ void foo(void) {
/* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 22 } */
[receiver starboard]; /* { dg-warning "no .\\+starboard. method found" } */
- /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 33 } */
- /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 33 } */
- /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 33 } */
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } .-1 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } .-2 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } .-3 } */
[Class port]; /* { dg-error ".Class. is not an Objective\\-C class name or alias" } */
}
diff --git a/gcc/testsuite/objc.dg/method-7.m b/gcc/testsuite/objc.dg/method-7.m
index f0ea1d5f8e9..32dad31677d 100644
--- a/gcc/testsuite/objc.dg/method-7.m
+++ b/gcc/testsuite/objc.dg/method-7.m
@@ -18,9 +18,9 @@ id foo(void) {
TestsuiteObject *obj = [[TestsuiteObject alloc] init];
id obj2 = obj;
[obj setWindow:nil]; /* { dg-warning ".TestsuiteObject. may not respond to .\\-setWindow:." } */
- /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 20 } */
- /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 20 } */
- /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 20 } */
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } .-1 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } .-2 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } .-3 } */
[obj2 setWindow:nil]; /* { dg-warning "multiple methods named .\\-setWindow:. found" } */
/* { dg-message "using .\\-\\(void\\)setWindow:\\(TestsuiteObject \\*\\)wdw." "" { target *-*-* } 10 } */
/* { dg-message "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } 14 } */
diff --git a/gcc/testsuite/objc.dg/method-9.m b/gcc/testsuite/objc.dg/method-9.m
index 36f26f0e188..3a6cf874f60 100644
--- a/gcc/testsuite/objc.dg/method-9.m
+++ b/gcc/testsuite/objc.dg/method-9.m
@@ -33,7 +33,7 @@
+ (NTGridDataObject*)dataObject:(id<MyObject, MyCoding>)data
{
NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data];
- /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 35 } */
+ /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } .-1 } */
/* { dg-message "using .\\-\\(id\\)initWithData:\\(TestsuiteObject \\*\\)data." "" { target *-*-* } 11 } */
/* { dg-message "also found .\\-\\(id\\)initWithData:\\(id <MyObject, MyCoding>\\)data." "" { target *-*-* } 19 } */
/* { dg-message "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 15 } */
diff --git a/gcc/testsuite/objc.dg/missing-proto-3.m b/gcc/testsuite/objc.dg/missing-proto-3.m
index 6c610ce35c9..cb7507e9d07 100644
--- a/gcc/testsuite/objc.dg/missing-proto-3.m
+++ b/gcc/testsuite/objc.dg/missing-proto-3.m
@@ -10,7 +10,7 @@
@end
@interface MyClass <UndefinedProtocol, DefinedProtocol>
-/* { dg-error "cannot find protocol declaration for .UndefinedProtocol." "" { target *-*-* } 12 } */
+/* { dg-error "cannot find protocol declaration for .UndefinedProtocol." "" { target *-*-* } .-1 } */
@end
@implementation MyClass
diff --git a/gcc/testsuite/objc.dg/private-1.m b/gcc/testsuite/objc.dg/private-1.m
index a11183c8ea6..7540fc5800c 100644
--- a/gcc/testsuite/objc.dg/private-1.m
+++ b/gcc/testsuite/objc.dg/private-1.m
@@ -35,7 +35,7 @@
{
/* Private variables simply don't exist in the subclass. */
private = 12; /* { dg-error "instance variable" } */
- /* { dg-message "function it appears in" "" { target *-*-* } { 37 } } */
+ /* { dg-message "function it appears in" "" { target *-*-* } .-1 } */
protected = 12; /* Ok */
public = 12; /* Ok */
diff --git a/gcc/testsuite/objc.dg/property/at-property-1.m b/gcc/testsuite/objc.dg/property/at-property-1.m
index 4ff269d0f5a..fa12fa282c6 100644
--- a/gcc/testsuite/objc.dg/property/at-property-1.m
+++ b/gcc/testsuite/objc.dg/property/at-property-1.m
@@ -8,7 +8,7 @@
}
@property; /* { dg-error "expected" } */
@property int; /* { dg-error "expected identifier" } */
- /* { dg-warning "declaration does not declare anything" "" { target *-*-* } 10 } */
+ /* { dg-warning "declaration does not declare anything" "" { target *-*-* } .-1 } */
@property int a;
@property int b, c;
@property () int d; /* { dg-error "expected identifier" } */
diff --git a/gcc/testsuite/objc.dg/property/at-property-14.m b/gcc/testsuite/objc.dg/property/at-property-14.m
index ccf842b7fdf..62ef7fdd8de 100644
--- a/gcc/testsuite/objc.dg/property/at-property-14.m
+++ b/gcc/testsuite/objc.dg/property/at-property-14.m
@@ -10,11 +10,11 @@
/* Test the warnings on 'assign'. */
@property id property_a; /* { dg-warning "object property .property.a. has no .assign., .retain. or .copy. attribute" } */
- /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } 12 } */
+ /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } .-1 } */
@property (readonly) id property_b; /* No 'assign' warning (assign semantics do not matter if the property is readonly). */
@property id *property_c; /* No 'assign' warning (the type is not an Objective-C object). */
@property Class property_d; /* No 'assign' warning (Classes are static objects so assign semantics do not matter for them). */
@property MyRootClass *property_e; /* { dg-warning "object property .property.e. has no .assign., .retain. or .copy. attribute" } */
- /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } 18 } */
+ /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } .-1 } */
@end
diff --git a/gcc/testsuite/objc.dg/property/at-property-17.m b/gcc/testsuite/objc.dg/property/at-property-17.m
index efb62d6f70d..b6ee02c6312 100644
--- a/gcc/testsuite/objc.dg/property/at-property-17.m
+++ b/gcc/testsuite/objc.dg/property/at-property-17.m
@@ -95,4 +95,4 @@
@implementation MyClass3 (count3)
@end /* { dg-warning "incomplete implementation" } */
-/* { dg-warning "method definition for .-setCount3:. not found" "" { target *-*-* } 97 } */
+/* { dg-warning "method definition for .-setCount3:. not found" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/objc.dg/property/at-property-21.m b/gcc/testsuite/objc.dg/property/at-property-21.m
index d1f54b1cda8..4bcf452aefd 100644
--- a/gcc/testsuite/objc.dg/property/at-property-21.m
+++ b/gcc/testsuite/objc.dg/property/at-property-21.m
@@ -14,10 +14,10 @@
/* Test the warnings on 'assign' with protocols. */
@property id <MyProtocol> property_a; /* { dg-warning "object property .property.a. has no .assign., .retain. or .copy. attribute" } */
- /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } 16 } */
+ /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } .-1 } */
@property MyRootClass <MyProtocol> *property_b; /* { dg-warning "object property .property.b. has no .assign., .retain. or .copy. attribute" } */
- /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } 19 } */
+ /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } .-1 } */
@property Class <MyProtocol> property_c; /* No 'assign' warning (Classes are static objects so assign semantics do not matter for them). */
@end
diff --git a/gcc/testsuite/objc.dg/property/at-property-5.m b/gcc/testsuite/objc.dg/property/at-property-5.m
index bd8949b7f58..0e8aaa2acda 100644
--- a/gcc/testsuite/objc.dg/property/at-property-5.m
+++ b/gcc/testsuite/objc.dg/property/at-property-5.m
@@ -18,7 +18,7 @@
/* Test various error messages. */
@property id property_a; /* { dg-warning "object property .property.a. has no .assign., .retain. or .copy. attribute" } */
- /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } 20 } */
+ /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } .-1 } */
@property int property_b = 4; /* { dg-error "expected" } */
@property (retain) int property_c; /* { dg-error ".retain. attribute is only valid for Objective-C objects" } */
@property (copy) int property_d; /* { dg-error ".copy. attribute is only valid for Objective-C objects" } */
diff --git a/gcc/testsuite/objc.dg/property/dynamic-3.m b/gcc/testsuite/objc.dg/property/dynamic-3.m
index e8a6693b04e..869f40f5cb5 100644
--- a/gcc/testsuite/objc.dg/property/dynamic-3.m
+++ b/gcc/testsuite/objc.dg/property/dynamic-3.m
@@ -46,4 +46,4 @@
return self.b;
}
@end /* { dg-warning "incomplete implementation" } */
-/* { dg-warning "method definition for .-setB:. not found" "" { target *-*-* } 48 } */
+/* { dg-warning "method definition for .-setB:. not found" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/objc.dg/property/dynamic-4.m b/gcc/testsuite/objc.dg/property/dynamic-4.m
index 84998d6b407..9278ab83722 100644
--- a/gcc/testsuite/objc.dg/property/dynamic-4.m
+++ b/gcc/testsuite/objc.dg/property/dynamic-4.m
@@ -41,5 +41,5 @@
return 0;
}
@end /* { dg-warning "incomplete implementation" } */
-/* { dg-warning "method definition for .-setA:. not found" "" { target *-*-* } 43 } */
-/* { dg-warning "class .MyClass2. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } 43 } */
+/* { dg-warning "method definition for .-setA:. not found" "" { target *-*-* } .-1 } */
+/* { dg-warning "class .MyClass2. does not fully implement the .MyProtocol. protocol" "" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/objc.dg/property/property-neg-1.m b/gcc/testsuite/objc.dg/property/property-neg-1.m
index cae1a56154d..d54cfddf519 100644
--- a/gcc/testsuite/objc.dg/property/property-neg-1.m
+++ b/gcc/testsuite/objc.dg/property/property-neg-1.m
@@ -9,5 +9,5 @@
@implementation Bar
@end /* { dg-warning "incomplete implementation of class .Bar." } */
- /* { dg-warning "method definition for .-setFooBar:. not found" "" { target *-*-* } 11 } */
- /* { dg-warning "method definition for .-fooBar. not found" "" { target *-*-* } 11 } */
+ /* { dg-warning "method definition for .-setFooBar:. not found" "" { target *-*-* } .-1 } */
+ /* { dg-warning "method definition for .-fooBar. not found" "" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/objc.dg/property/property-neg-6.m b/gcc/testsuite/objc.dg/property/property-neg-6.m
index 7059a56f094..4758e05dc6e 100644
--- a/gcc/testsuite/objc.dg/property/property-neg-6.m
+++ b/gcc/testsuite/objc.dg/property/property-neg-6.m
@@ -6,4 +6,4 @@
int iVar;
}
@property int FooBar /* { dg-error "expected ':', ',', ';', '\}' or '__attribute__' at end of input" } */
-/* { dg-error "expected ..end. at end of input" "" { target *-*-* } 8 } */
+/* { dg-error "expected ..end. at end of input" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/objc.dg/property/synthesize-11.m b/gcc/testsuite/objc.dg/property/synthesize-11.m
index e49d23424b9..a87de342c91 100644
--- a/gcc/testsuite/objc.dg/property/synthesize-11.m
+++ b/gcc/testsuite/objc.dg/property/synthesize-11.m
@@ -27,5 +27,5 @@
@synthesize countA; /* { dg-error ".atomic. property .countA. is using bit-field instance variable .countA." } */
@synthesize countB; /* { dg-error "property .countB. is using instance variable .countB. of incompatible type" } */
@end /* { dg-warning "incomplete implementation of class" } */
-/* { dg-warning "method definition for ..setCountA.. not found" "" { target *-*-* } 29 } */
-/* { dg-warning "method definition for ..countA. not found" "" { target *-*-* } 29 } */
+/* { dg-warning "method definition for ..setCountA.. not found" "" { target *-*-* } .-1 } */
+/* { dg-warning "method definition for ..countA. not found" "" { target *-*-* } .-2 } */
diff --git a/gcc/testsuite/objc.dg/property/synthesize-5.m b/gcc/testsuite/objc.dg/property/synthesize-5.m
index 0871b63ee21..0562711fdcb 100644
--- a/gcc/testsuite/objc.dg/property/synthesize-5.m
+++ b/gcc/testsuite/objc.dg/property/synthesize-5.m
@@ -13,6 +13,6 @@
@implementation Test
@synthesize v1; /* { dg-error "must be an existing ivar" } */
@end
-/* { dg-warning "incomplete implementation" "" { target *-*-* } 15 } */
-/* { dg-warning "method definition for .-setV1:. not found" "" { target *-*-* } 15 } */
-/* { dg-warning "method definition for .-v1. not found" "" { target *-*-* } 15 } */
+/* { dg-warning "incomplete implementation" "" { target *-*-* } .-1 } */
+/* { dg-warning "method definition for .-setV1:. not found" "" { target *-*-* } .-2 } */
+/* { dg-warning "method definition for .-v1. not found" "" { target *-*-* } .-3 } */
diff --git a/gcc/testsuite/objc.dg/property/synthesize-6.m b/gcc/testsuite/objc.dg/property/synthesize-6.m
index 19f7c953491..82336732dd2 100644
--- a/gcc/testsuite/objc.dg/property/synthesize-6.m
+++ b/gcc/testsuite/objc.dg/property/synthesize-6.m
@@ -27,6 +27,6 @@
@implementation Test2
@synthesize w1; /* { dg-error "ivar .w1. used by .@synthesize. declaration must be an existing ivar" } */
@end
-/* { dg-warning "incomplete implementation" "" { target *-*-* } 29 } */
-/* { dg-warning "method definition for .-setW1:. not found" "" { target *-*-* } 29 } */
-/* { dg-warning "method definition for .-w1. not found" "" { target *-*-* } 29 } */
+/* { dg-warning "incomplete implementation" "" { target *-*-* } .-1 } */
+/* { dg-warning "method definition for .-setW1:. not found" "" { target *-*-* } .-2 } */
+/* { dg-warning "method definition for .-w1. not found" "" { target *-*-* } .-3 } */
diff --git a/gcc/testsuite/objc.dg/proto-hier-1.m b/gcc/testsuite/objc.dg/proto-hier-1.m
index 99dcbc56773..fbd00f8d8ae 100644
--- a/gcc/testsuite/objc.dg/proto-hier-1.m
+++ b/gcc/testsuite/objc.dg/proto-hier-1.m
@@ -49,7 +49,7 @@ int foo(void) {
[stupidVar boo];
[stupidVar foo];
[stupidVar anotherMsg]; /* { dg-warning ".\\-anotherMsg. not found in protocol" } */
- /* { dg-warning "no .\\-anotherMsg. method found" "" { target *-*-* } 51 } */
+ /* { dg-warning "no .\\-anotherMsg. method found" "" { target *-*-* } .-1 } */
return 0;
}
diff --git a/gcc/testsuite/objc.dg/proto-lossage-4.m b/gcc/testsuite/objc.dg/proto-lossage-4.m
index 9800d493c78..e72328b3703 100644
--- a/gcc/testsuite/objc.dg/proto-lossage-4.m
+++ b/gcc/testsuite/objc.dg/proto-lossage-4.m
@@ -28,13 +28,13 @@ long foo(void) {
receiver += [receiver anotherValue]; /* { dg-warning "invalid receiver type .intptr_t." } */
receiver += [(Obj *)receiver someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */
-/* { dg-warning "assignment makes integer from pointer without a cast" "" { target *-*-* } 30 } */
+/* { dg-warning "assignment makes integer from pointer without a cast" "" { target *-*-* } .-1 } */
receiver += [(Obj *)receiver anotherValue];
receiver += [(Obj <Proto> *)receiver someValue];
receiver += [(Obj <Proto> *)receiver anotherValue];
receiver += [objrcvr someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */
-/* { dg-warning "assignment makes integer from pointer without a cast" "" { target *-*-* } 36 } */
+/* { dg-warning "assignment makes integer from pointer without a cast" "" { target *-*-* } .-1 } */
receiver += [objrcvr anotherValue];
receiver += [(Obj <Proto> *)objrcvr someValue];
@@ -42,7 +42,7 @@ long foo(void) {
receiver += [objrcvr2 someValue];
receiver += [objrcvr2 anotherValue];
receiver += [(Obj *)objrcvr2 someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */
-/* { dg-warning "assignment makes integer from pointer without a cast" "" { target *-*-* } 44 } */
+/* { dg-warning "assignment makes integer from pointer without a cast" "" { target *-*-* } .-1 } */
receiver += [(Obj *)objrcvr2 anotherValue];
diff --git a/gcc/testsuite/objc.dg/protocol-qualifier-2.m b/gcc/testsuite/objc.dg/protocol-qualifier-2.m
index fd25d8ff606..9fb09b5f2bb 100644
--- a/gcc/testsuite/objc.dg/protocol-qualifier-2.m
+++ b/gcc/testsuite/objc.dg/protocol-qualifier-2.m
@@ -25,7 +25,7 @@ void test1 (void)
{
[object1 method]; /* Ok */
[object2 method]; /* { dg-warning ".MyClass. may not respond to ..method." } */
- /* { dg-warning "without a matching method" "" { target *-*-* } 27 } */
- /* { dg-warning "will be assumed to return" "" { target *-*-* } 27 } */
- /* { dg-warning "as arguments" "" { target *-*-* } 27 } */
+ /* { dg-warning "without a matching method" "" { target *-*-* } .-1 } */
+ /* { dg-warning "will be assumed to return" "" { target *-*-* } .-2 } */
+ /* { dg-warning "as arguments" "" { target *-*-* } .-3 } */
}
diff --git a/gcc/testsuite/objc.dg/strings/strings-1.m b/gcc/testsuite/objc.dg/strings/strings-1.m
index 408392fd5a0..e84aae46a0d 100644
--- a/gcc/testsuite/objc.dg/strings/strings-1.m
+++ b/gcc/testsuite/objc.dg/strings/strings-1.m
@@ -29,4 +29,4 @@ id test_invalid7 = @"te" @"s" @@"t"; /* { dg-error "repeated .@. bef
id test_invalid8 = @"te" @@"s" @"t"; /* { dg-error "repeated .@. before Objective-C string" } */
id test_invalid9 = @"te" @"s" @"t" @; /* { dg-error "stray .@. in program" } */
id test_invalidA = @"te" @ st; /* { dg-error "stray .@. in program" } */
- /* { dg-error "expected" "" { target *-*-* } 31 } */
+ /* { dg-error "expected" "" { target *-*-* } .-1 } */
diff --git a/gcc/testsuite/objc.dg/type-size-1.m b/gcc/testsuite/objc.dg/type-size-1.m
index f2fdae5c382..51f95c7ef66 100644
--- a/gcc/testsuite/objc.dg/type-size-1.m
+++ b/gcc/testsuite/objc.dg/type-size-1.m
@@ -7,9 +7,9 @@ struct unknownStruct;
@interface ArrayTest
{
short unknownSize[unknownValue]; /* { dg-error ".unknownValue. (undeclared|was not declared)" } */
- /* { dg-error "instance variable .unknownSize. has unknown size" "" { target *-*-* } 9 } */
+ /* { dg-error "instance variable .unknownSize. has unknown size" "" { target *-*-* } .-1 } */
struct unknownStruct unknownObj; /* { dg-error "field .unknownObj. has incomplete type" } */
- /* { dg-error "instance variable .unknownObj. has unknown size" "" { target *-*-* } 11 } */
+ /* { dg-error "instance variable .unknownObj. has unknown size" "" { target *-*-* } .-1 } */
long knownSize[3]; /* ok */
char zeroSize[2 - 2]; /* ok (apparently) */
int missingSize[]; /* { dg-error "instance variable .missingSize. has unknown size" } */
diff --git a/gcc/tree-affine.c b/gcc/tree-affine.c
index 30fff67b005..13c477dc7d6 100644
--- a/gcc/tree-affine.c
+++ b/gcc/tree-affine.c
@@ -377,58 +377,28 @@ static tree
add_elt_to_tree (tree expr, tree type, tree elt, const widest_int &scale_in)
{
enum tree_code code;
- tree type1 = type;
- if (POINTER_TYPE_P (type))
- type1 = sizetype;
widest_int scale = wide_int_ext_for_comb (scale_in, type);
- if (scale == -1
- && POINTER_TYPE_P (TREE_TYPE (elt)))
- {
- elt = convert_to_ptrofftype (elt);
- elt = fold_build1 (NEGATE_EXPR, TREE_TYPE (elt), elt);
- scale = 1;
- }
-
+ elt = fold_convert (type, elt);
if (scale == 1)
{
if (!expr)
- {
- if (POINTER_TYPE_P (TREE_TYPE (elt)))
- return elt;
- else
- return fold_convert (type1, elt);
- }
+ return elt;
- if (POINTER_TYPE_P (TREE_TYPE (expr)))
- return fold_build_pointer_plus (expr, elt);
- if (POINTER_TYPE_P (TREE_TYPE (elt)))
- return fold_build_pointer_plus (elt, expr);
- return fold_build2 (PLUS_EXPR, type1,
- expr, fold_convert (type1, elt));
+ return fold_build2 (PLUS_EXPR, type, expr, elt);
}
if (scale == -1)
{
if (!expr)
- return fold_build1 (NEGATE_EXPR, type1,
- fold_convert (type1, elt));
+ return fold_build1 (NEGATE_EXPR, type, elt);
- if (POINTER_TYPE_P (TREE_TYPE (expr)))
- {
- elt = convert_to_ptrofftype (elt);
- elt = fold_build1 (NEGATE_EXPR, TREE_TYPE (elt), elt);
- return fold_build_pointer_plus (expr, elt);
- }
- return fold_build2 (MINUS_EXPR, type1,
- expr, fold_convert (type1, elt));
+ return fold_build2 (MINUS_EXPR, type, expr, elt);
}
- elt = fold_convert (type1, elt);
if (!expr)
- return fold_build2 (MULT_EXPR, type1, elt,
- wide_int_to_tree (type1, scale));
+ return fold_build2 (MULT_EXPR, type, elt, wide_int_to_tree (type, scale));
if (wi::neg_p (scale))
{
@@ -438,15 +408,8 @@ add_elt_to_tree (tree expr, tree type, tree elt, const widest_int &scale_in)
else
code = PLUS_EXPR;
- elt = fold_build2 (MULT_EXPR, type1, elt,
- wide_int_to_tree (type1, scale));
- if (POINTER_TYPE_P (TREE_TYPE (expr)))
- {
- if (code == MINUS_EXPR)
- elt = fold_build1 (NEGATE_EXPR, type1, elt);
- return fold_build_pointer_plus (expr, elt);
- }
- return fold_build2 (code, type1, expr, elt);
+ elt = fold_build2 (MULT_EXPR, type, elt, wide_int_to_tree (type, scale));
+ return fold_build2 (code, type, expr, elt);
}
/* Makes tree from the affine combination COMB. */
@@ -454,17 +417,25 @@ add_elt_to_tree (tree expr, tree type, tree elt, const widest_int &scale_in)
tree
aff_combination_to_tree (aff_tree *comb)
{
- tree type = comb->type;
- tree expr = NULL_TREE;
+ tree type = comb->type, base = NULL_TREE, expr = NULL_TREE;
unsigned i;
widest_int off, sgn;
- tree type1 = type;
- if (POINTER_TYPE_P (type))
- type1 = sizetype;
gcc_assert (comb->n == MAX_AFF_ELTS || comb->rest == NULL_TREE);
- for (i = 0; i < comb->n; i++)
+ i = 0;
+ if (POINTER_TYPE_P (type))
+ {
+ type = sizetype;
+ if (comb->n > 0 && comb->elts[0].coef == 1
+ && POINTER_TYPE_P (TREE_TYPE (comb->elts[0].val)))
+ {
+ base = comb->elts[0].val;
+ ++i;
+ }
+ }
+
+ for (; i < comb->n; i++)
expr = add_elt_to_tree (expr, type, comb->elts[i].val, comb->elts[i].coef);
if (comb->rest)
@@ -482,7 +453,12 @@ aff_combination_to_tree (aff_tree *comb)
off = comb->offset;
sgn = 1;
}
- return add_elt_to_tree (expr, type, wide_int_to_tree (type1, off), sgn);
+ expr = add_elt_to_tree (expr, type, wide_int_to_tree (type, off), sgn);
+
+ if (base)
+ return fold_build_pointer_plus (base, expr);
+ else
+ return fold_convert (comb->type, expr);
}
/* Copies the tree elements of COMB to ensure that they are not shared. */
diff --git a/gcc/tree-core.h b/gcc/tree-core.h
index 2b1759efcb1..a646ecb5c95 100644
--- a/gcc/tree-core.h
+++ b/gcc/tree-core.h
@@ -1511,7 +1511,9 @@ struct GTY(()) tree_type_common {
so we need to store the value 32 (not 31, as we need the zero
as well), hence six bits. */
unsigned align : 6;
- unsigned spare : 25;
+ unsigned typeless_storage : 1;
+ unsigned spare : 24;
+
alias_set_type alias_set;
tree pointer_to;
tree reference_to;
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index d2263bb13e6..22ac57e1f75 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -706,7 +706,7 @@ derive_equivalences_from_bit_ior (tree name,
if (TREE_CODE (name) == SSA_NAME)
{
- tree value = fold_convert (TREE_TYPE (name), integer_zero_node);
+ tree value = build_zero_cst (TREE_TYPE (name));
/* This records the equivalence for the toplevel object. */
record_equality (name, value, const_and_copies);
diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 53feaf3f4f7..90230abe822 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -451,7 +451,8 @@ maybe_trim_memstar_call (ao_ref *ref, sbitmap live, gimple *stmt)
static void
maybe_trim_partially_dead_store (ao_ref *ref, sbitmap live, gimple *stmt)
{
- if (is_gimple_assign (stmt))
+ if (is_gimple_assign (stmt)
+ && TREE_CODE (gimple_assign_lhs (stmt)) != TARGET_MEM_REF)
{
switch (gimple_assign_rhs_code (stmt))
{
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index d5bd0362f25..4fc35fab8cb 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -1171,7 +1171,7 @@ alloc_iv (struct ivopts_data *data, tree base, tree step,
|| contain_complex_addr_expr (expr))
{
aff_tree comb;
- tree_to_aff_combination (expr, TREE_TYPE (base), &comb);
+ tree_to_aff_combination (expr, TREE_TYPE (expr), &comb);
base = fold_convert (TREE_TYPE (base), aff_combination_to_tree (&comb));
}
@@ -3335,41 +3335,20 @@ add_iv_candidate_for_use (struct ivopts_data *data, struct iv_use *use)
}
/* Record common candidate with base_object removed in base. */
- if (iv->base_object != NULL)
+ base = iv->base;
+ STRIP_NOPS (base);
+ if (iv->base_object != NULL && TREE_CODE (base) == POINTER_PLUS_EXPR)
{
- unsigned i;
- aff_tree aff_base;
- tree step, base_object = iv->base_object;
+ tree step = iv->step;
- base = iv->base;
- step = iv->step;
- STRIP_NOPS (base);
STRIP_NOPS (step);
- STRIP_NOPS (base_object);
- tree_to_aff_combination (base, TREE_TYPE (base), &aff_base);
- for (i = 0; i < aff_base.n; i++)
- {
- if (aff_base.elts[i].coef != 1)
- continue;
-
- if (operand_equal_p (aff_base.elts[i].val, base_object, 0))
- break;
- }
- if (i < aff_base.n)
- {
- aff_combination_remove_elt (&aff_base, i);
- base = aff_combination_to_tree (&aff_base);
- basetype = TREE_TYPE (base);
- if (POINTER_TYPE_P (basetype))
- basetype = sizetype;
-
- step = fold_convert (basetype, step);
- record_common_cand (data, base, step, use);
- /* Also record common candidate with offset stripped. */
- base = strip_offset (base, &offset);
- if (offset)
- record_common_cand (data, base, step, use);
- }
+ base = TREE_OPERAND (base, 1);
+ step = fold_convert (sizetype, step);
+ record_common_cand (data, base, step, use);
+ /* Also record common candidate with offset stripped. */
+ base = strip_offset (base, &offset);
+ if (offset)
+ record_common_cand (data, base, step, use);
}
/* At last, add auto-incremental candidates. Make such variables
@@ -7183,7 +7162,7 @@ rewrite_use_nonlinear_expr (struct ivopts_data *data,
struct iv_use *use, struct iv_cand *cand)
{
tree comp;
- tree op, tgt;
+ tree tgt;
gassign *ass;
gimple_stmt_iterator bsi;
@@ -7194,6 +7173,7 @@ rewrite_use_nonlinear_expr (struct ivopts_data *data,
if (cand->pos == IP_ORIGINAL
&& cand->incremented_at == use->stmt)
{
+ tree op = NULL_TREE;
enum tree_code stmt_code;
gcc_assert (is_gimple_assign (use->stmt));
@@ -7213,14 +7193,19 @@ rewrite_use_nonlinear_expr (struct ivopts_data *data,
op = gimple_assign_rhs2 (use->stmt);
else if (gimple_assign_rhs2 (use->stmt) == cand->var_before)
op = gimple_assign_rhs1 (use->stmt);
- else
- op = NULL_TREE;
}
- else
- op = NULL_TREE;
- if (op && expr_invariant_in_loop_p (data->current_loop, op))
- return;
+ if (op != NULL_TREE)
+ {
+ if (expr_invariant_in_loop_p (data->current_loop, op))
+ return;
+ if (TREE_CODE (op) == SSA_NAME)
+ {
+ struct iv *iv = get_iv (data, op);
+ if (iv != NULL && integer_zerop (iv->step))
+ return;
+ }
+ }
}
comp = get_computation (data->current_loop, use, cand);
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index aab6821e792..77736f51153 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -4944,14 +4944,14 @@ find_func_aliases (struct function *fn, gimple *origt)
make_escape_constraint (build_fold_addr_expr (op));
/* The asm may read global memory, so outputs may point to
- any global memory. */
+ any global or escaped memory. */
if (op)
{
auto_vec<ce_s, 2> lhsc;
struct constraint_expr rhsc, *lhsp;
unsigned j;
get_constraint_for (op, &lhsc);
- rhsc.var = nonlocal_id;
+ rhsc.var = escaped_id;
rhsc.offset = 0;
rhsc.type = SCALAR;
FOR_EACH_VEC_ELT (lhsc, j, lhsp)
diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c
index 3496df5deb9..f0099c05032 100644
--- a/gcc/tree-streamer-in.c
+++ b/gcc/tree-streamer-in.c
@@ -376,6 +376,8 @@ unpack_ts_type_common_value_fields (struct bitpack_d *bp, tree expr)
}
else if (TREE_CODE (expr) == ARRAY_TYPE)
TYPE_NONALIASED_COMPONENT (expr) = (unsigned) bp_unpack_value (bp, 1);
+ if (AGGREGATE_TYPE_P (expr))
+ TYPE_TYPELESS_STORAGE (expr) = (unsigned) bp_unpack_value (bp, 1);
TYPE_PRECISION (expr) = bp_unpack_var_len_unsigned (bp);
SET_TYPE_ALIGN (expr, bp_unpack_var_len_unsigned (bp));
#ifdef ACCEL_COMPILER
diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c
index 0ee2abe8f19..5cf90449341 100644
--- a/gcc/tree-streamer-out.c
+++ b/gcc/tree-streamer-out.c
@@ -328,6 +328,8 @@ pack_ts_type_common_value_fields (struct bitpack_d *bp, tree expr)
}
else if (TREE_CODE (expr) == ARRAY_TYPE)
bp_pack_value (bp, TYPE_NONALIASED_COMPONENT (expr), 1);
+ if (AGGREGATE_TYPE_P (expr))
+ bp_pack_value (bp, TYPE_TYPELESS_STORAGE (expr), 1);
bp_pack_var_len_unsigned (bp, TYPE_PRECISION (expr));
bp_pack_var_len_unsigned (bp, TYPE_ALIGN (expr));
}
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 28d9c175dcd..6d802de29a8 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -8756,20 +8756,32 @@ intersect_ranges (enum value_range_type *vr0type,
/* Choose the right gap if the left one is empty. */
if (mineq)
{
- if (TREE_CODE (vr1max) == INTEGER_CST)
- *vr0min = int_const_binop (PLUS_EXPR, vr1max,
- build_int_cst (TREE_TYPE (vr1max), 1));
- else
+ if (TREE_CODE (vr1max) != INTEGER_CST)
*vr0min = vr1max;
+ else if (TYPE_PRECISION (TREE_TYPE (vr1max)) == 1
+ && !TYPE_UNSIGNED (TREE_TYPE (vr1max)))
+ *vr0min
+ = int_const_binop (MINUS_EXPR, vr1max,
+ build_int_cst (TREE_TYPE (vr1max), -1));
+ else
+ *vr0min
+ = int_const_binop (PLUS_EXPR, vr1max,
+ build_int_cst (TREE_TYPE (vr1max), 1));
}
/* Choose the left gap if the right one is empty. */
else if (maxeq)
{
- if (TREE_CODE (vr1min) == INTEGER_CST)
- *vr0max = int_const_binop (MINUS_EXPR, vr1min,
- build_int_cst (TREE_TYPE (vr1min), 1));
- else
+ if (TREE_CODE (vr1min) != INTEGER_CST)
*vr0max = vr1min;
+ else if (TYPE_PRECISION (TREE_TYPE (vr1min)) == 1
+ && !TYPE_UNSIGNED (TREE_TYPE (vr1min)))
+ *vr0max
+ = int_const_binop (PLUS_EXPR, vr1min,
+ build_int_cst (TREE_TYPE (vr1min), -1));
+ else
+ *vr0max
+ = int_const_binop (MINUS_EXPR, vr1min,
+ build_int_cst (TREE_TYPE (vr1min), 1));
}
/* Choose the anti-range if the range is effectively varying. */
else if (vrp_val_is_min (*vr0min)
@@ -8811,22 +8823,34 @@ intersect_ranges (enum value_range_type *vr0type,
if (mineq)
{
*vr0type = VR_RANGE;
- if (TREE_CODE (*vr0max) == INTEGER_CST)
- *vr0min = int_const_binop (PLUS_EXPR, *vr0max,
- build_int_cst (TREE_TYPE (*vr0max), 1));
- else
+ if (TREE_CODE (*vr0max) != INTEGER_CST)
*vr0min = *vr0max;
+ else if (TYPE_PRECISION (TREE_TYPE (*vr0max)) == 1
+ && !TYPE_UNSIGNED (TREE_TYPE (*vr0max)))
+ *vr0min
+ = int_const_binop (MINUS_EXPR, *vr0max,
+ build_int_cst (TREE_TYPE (*vr0max), -1));
+ else
+ *vr0min
+ = int_const_binop (PLUS_EXPR, *vr0max,
+ build_int_cst (TREE_TYPE (*vr0max), 1));
*vr0max = vr1max;
}
/* Choose the left gap if the right is empty. */
else if (maxeq)
{
*vr0type = VR_RANGE;
- if (TREE_CODE (*vr0min) == INTEGER_CST)
- *vr0max = int_const_binop (MINUS_EXPR, *vr0min,
- build_int_cst (TREE_TYPE (*vr0min), 1));
- else
+ if (TREE_CODE (*vr0min) != INTEGER_CST)
*vr0max = *vr0min;
+ else if (TYPE_PRECISION (TREE_TYPE (*vr0min)) == 1
+ && !TYPE_UNSIGNED (TREE_TYPE (*vr0min)))
+ *vr0max
+ = int_const_binop (PLUS_EXPR, *vr0min,
+ build_int_cst (TREE_TYPE (*vr0min), -1));
+ else
+ *vr0max
+ = int_const_binop (MINUS_EXPR, *vr0min,
+ build_int_cst (TREE_TYPE (*vr0min), 1));
*vr0min = vr1min;
}
/* Choose the anti-range if the range is effectively varying. */
diff --git a/gcc/tree.h b/gcc/tree.h
index aa137e4132b..50a674bf0fe 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -2035,6 +2035,13 @@ extern machine_mode element_mode (const_tree t);
#define TYPE_NONALIASED_COMPONENT(NODE) \
(ARRAY_TYPE_CHECK (NODE)->type_common.transparent_aggr_flag)
+/* For an ARRAY_TYPE, a RECORD_TYPE, a UNION_TYPE or a QUAL_UNION_TYPE
+ whether the array is typeless storage or the type contains a member
+ with this flag set. Such types are excempt from type-based alias
+ analysis. */
+#define TYPE_TYPELESS_STORAGE(NODE) \
+ (TREE_CHECK4 (NODE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, ARRAY_TYPE)->type_common.typeless_storage)
+
/* Indicated that objects of this type should be laid out in as
compact a way as possible. */
#define TYPE_PACKED(NODE) (TYPE_CHECK (NODE)->base.u.bits.packed_flag)
diff --git a/gcc/ubsan.c b/gcc/ubsan.c
index 323c1ccdb49..4159cc5f6f9 100644
--- a/gcc/ubsan.c
+++ b/gcc/ubsan.c
@@ -673,7 +673,7 @@ ubsan_expand_bounds_ifn (gimple_stmt_iterator *gsi)
/* Pick up the arguments of the UBSAN_BOUNDS call. */
tree type = TREE_TYPE (TREE_TYPE (gimple_call_arg (stmt, 0)));
tree index = gimple_call_arg (stmt, 1);
- tree orig_index_type = TREE_TYPE (index);
+ tree orig_index = index;
tree bound = gimple_call_arg (stmt, 2);
gimple_stmt_iterator gsi_orig = *gsi;
@@ -700,7 +700,7 @@ ubsan_expand_bounds_ifn (gimple_stmt_iterator *gsi)
tree data
= ubsan_create_data ("__ubsan_out_of_bounds_data", 1, &loc,
ubsan_type_descriptor (type, UBSAN_PRINT_ARRAY),
- ubsan_type_descriptor (orig_index_type),
+ ubsan_type_descriptor (TREE_TYPE (orig_index)),
NULL_TREE, NULL_TREE);
data = build_fold_addr_expr_loc (loc, data);
enum built_in_function bcode
@@ -708,9 +708,9 @@ ubsan_expand_bounds_ifn (gimple_stmt_iterator *gsi)
? BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS
: BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT;
tree fn = builtin_decl_explicit (bcode);
- tree val = force_gimple_operand_gsi (gsi, ubsan_encode_value (index),
- true, NULL_TREE, true,
- GSI_SAME_STMT);
+ tree val
+ = force_gimple_operand_gsi (gsi, ubsan_encode_value (orig_index), true,
+ NULL_TREE, true, GSI_SAME_STMT);
g = gimple_build_call (fn, 2, data, val);
}
gimple_set_location (g, loc);
@@ -1806,7 +1806,11 @@ instrument_object_size (gimple_stmt_iterator *gsi, bool is_lhs)
bool decl_p = DECL_P (inner);
tree base;
if (decl_p)
- base = inner;
+ {
+ if (DECL_REGISTER (inner))
+ return;
+ base = inner;
+ }
else if (TREE_CODE (inner) == MEM_REF)
base = TREE_OPERAND (inner, 0);
else