diff options
author | no-author <no-author@gcc.gnu.org> | 2005-04-21 05:20:58 +0000 |
---|---|---|
committer | no-author <no-author@gcc.gnu.org> | 2005-04-21 05:20:58 +0000 |
commit | a96583a25c34e80d5920be57cc81f05621d4d9fd (patch) | |
tree | bfc8d23a253a399cac513773505c9a99e0dd70b3 /gcc/testsuite | |
parent | 71e2639ee749e7d450936f8c17d3593d7f9e5ce8 (diff) |
This commit was manufactured by cvs2svn to create taggcc_4_0_0_release
'gcc_4_0_0_release'.
git-svn-id: https://gcc.gnu.org/svn/gcc/tags/gcc_4_0_0_release@98492 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
239 files changed, 4865 insertions, 565 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 192a460cdac..c37372560b0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,710 @@ +2005-04-20 Release Manager + + * GCC 4.0.0 released. + +2005-04-18 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/20991 + * g++.dg/opt/pr20991.C: New test. + +2005-04-17 Richard Sandiford <rsandifo@redhat.com> + + * gcc.c-torture/execute/20050410-1.c: New test. + +2005-04-17 Alexandre Oliva <aoliva@redhat.com> + + PR middle-end/20739 + * gcc.dg/tree-ssa/pr20739.c: New test. + +2005-04-16 Mark Mitchell <mark@codesourcery.com> + + PR c++/21025 + * g++.dg/template/sizeof9.C: New test. + +2005-04-14 Ulrich Weigand <uweigand@de.ibm.com> + + PR target/20927 + * gcc.dg/pr20927.c: New test. + +2005-04-14 Alexandre Oliva <aoliva@redhat.com> + Roger Sayle <roger@eyesopen.com> + + PR target/20126 + * gcc.c-torture/execute/20050414-1.c: New. + +2005-04-13 Thomas Koenig <Thomas.Koenig@online.de> + + PR libfortran/20163 + * gfortran.dg/open-options-blanks.f: New test. + +2005-04-12 Ulrich Weigand <uweigand@de.ibm.com> + + PR middle-end/20917 + * gcc.dg/20050409-1.c: New test. + +2005-04-10 Mark Mitchell <mark@codesourcery.com> + + * g++.dg/warn/Wdtor1.C: Declare template in system header with + explicit C++ linkage. + +2005-04-09 Jakub Jelinek <jakub@redhat.com> + + PR target/20795 + * g++.dg/abi/param2.C: New test. + +2005-04-08 Mark Mitchell <mark@codesourcery.com> + + PR c++/20905 + * g++.dg/parse/cond2.C: New test. + +2005-04-08 Mark Mitchell <mark@codesourcery.com> + + PR c++/20145 + * g++.dg/warn/Wdtor1.C: New test. + +2005-04-08 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/17229 + * gfortran.dg/pr17229.f: New test. + +2005-04-07 Steven G. Kargl <kargls@comcast.net> + + * gfortran.dg/tiny_1.f90: New test. + * gfortran.dg/tiny_2.f90: ditto. + +2005-04-07 Thomas Koenig <Thomas.Koenig@online.de> + + * gfortran.dg/eor_1.f90: Fix dg-do run line + * gfortran.dg/open_new.f90: Fix dg-do run line + +2005-03-12 Geoffrey Keating <geoffk@apple.com> + + * gcc.dg/vmx/darwin-abi-3.c: Delete. + +2005-04-06 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> + + * gfortran.dg/pr15754.f90: Change annotations to dg-error. + +2005-04-06 Joseph S. Myers <joseph@codesourcery.com> + + * gcc.dg/weak/weak-12.c, g++.dg/ext/weak2.C: New tests. + +2005-04-06 Joseph S. Myers <joseph@codesourcery.com> + + * gcc.dg/i386-387-7.c, gcc.dg/i386-3dnowA-1.c, + gcc.dg/i386-3dnowA-2.c, gcc.dg/pr12092-1.c: Skip x86 tests for + -m64. + * gcc.dg/loop-3.c, gcc.dg/short-compare-1.c, + gcc.dg/short-compare-2.c, gcc.dg/smod-1.c, + gcc.dg/torture/badshift.c: Don't give 32-bit options for x86 -m64. + +2005-04-06 Mark Mitchell <mark@codesourcery.com> + + PR c++/20212 + * g++.dg/warn/Wunused-11.C: New test. + +2005-04-05 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/20076 + * gcc.dg/builtin-apply4.c: New test. + + PR preprocessor/19475 + * gcc.dg/cpp/macspace1.c: New test. + * gcc.dg/cpp/macspace2.c: New test. + +2005-04-05 Mark Mitchell <mark@codesourcery.com> + + PR c++/20734 + * g++.dg/template/ptrmem13.C: New test. + +2005-04-05 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * gfortran.dg/pr20755.f: Fix bad format. + +2005-04-05 Mark Mitchell <mark@codesourcery.com> + + PR c++/20763 + * g++.dg/ext/attrib21.C: New test. + +2005-04-05 Hans-Peter Nilsson <hp@axis.com> + + PR rtl-optimization/20527 + * gcc.c-torture/execute/pr20527-1.c: New test. + +2005-04-05 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/20755 + * gfortran.dg/pr20755.f: New test. + +2005-04-05 Feng Wang <fengwang@nudt.edu.cn> + + * gfortran.dg/pr15959.f90: New test. + * gfortran.dg/string_pad_trunc.f90: New test. + +2005-04-05 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * gfortran.dg/backspace.f, gfortran.dg/g77_intrinsics_funcs.f, + gfortran.dg/g77_intrinsics_sub.f, gfortran.dg/negative_unit.f, + gfortran.dg/g77/12002.f: Correct dejagnu syntax. + +2005-04-05 Feng Wang <fengwang@nudt.edu.cn> + + * gfortran.dg/pr18025.f90: Change {dg-do run} to { dg-do run }. + +2005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr> + + * gcc.c-torture/compile/20040323-1.c (_rtld_global): Set to 1. + +2005-04-04 Alexandre Oliva <aoliva@redhat.com> + + PR c++/19199 + * g++.dg/expr/lval2.C: New. + +2005-04-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + * gcc.c-torture/compile/20011119-1.c: Require weak and alias support. + * gcc.c-torture/compile/20011119-2.c: Likewise. + * gcc.c-torture/compile/981001-2.c: Likewise. + +2005-04-04 Mark Mitchell <mark@codesourcery.com> + + PR c++/20679 + * g++.dg/template/overload4.C: New test. + +2005-04-04 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/16104 + * gcc.c-torture/execute/20050316-1.c: New test. + +2005-04-04 Nathan Sidwell <nathan@codesourcery.com> + + PR debug/20505 + * g++.dg/debug/const2.C: New. + +2005-04-03 Gabriel Dos Reis <gdr@integrable-solutions.net> + + PR c++/18644 + * g++.old-deja/g++.jason/warning9.C: Adjust. + +2005-04-01 Dale Ranta <dir@lanl.gov> + Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/20068 + PR libfortran/20125 + PR libfortran/20156 + PR libfortran/20471 + * gfortran.dg/backspace.f: New test. + +2005-04-02 Daniel Berlin <dberlin@dberlin.org> + + * gcc.dg/pr19345.c: New test. + +2005-04-02 Alexandre Oliva <aoliva@redhat.com> + + PR tree-optimization/20640 + * gcc.dg/torture/tree-loop-1.c: New. + +2005-04-02 Alexandre Oliva <aoliva@redhat.com> + + PR rtl-optimization/20290 + * gcc.c-torture/execute/loop-ivopts-2.c: New. + +2005-04-01 Joseph S. Myers <joseph@codesourcery.com> + + * gcc.dg/old-style-then-proto-1.c: New test. + +2005-04-01 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * gfortran.fortran-torture/execute/backspace.f90: Check + after backspace and read was incorrect. + +2005-04-01 Jakub Jelinek <jakub@redhat.com> + + PR c++/19406 + * g++.dg/debug/using1.C: New test. + +2005-04-01 Joseph S. Myers <joseph@codesourcery.com> + + PR c/17855 + * gcc.c-torture/compile/struct-non-lval-1.c, + gcc.c-torture/compile/struct-non-lval-2.c, + gcc.c-torture/compile/struct-non-lval-3.c: New tests. + +2005-03-31 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/20660 + * gfortran.dg/negative_unit.f: New test. + +2005-03-31 Ben Elliston <bje@au.ibm.com> + + * README: Update the DejaGnu bug reporting address. + * lib/c-torture.exp: Remove the DejaGnu bug reporting address. + * lib/objc-torture.exp: Likewise. + +2005-03-30 Joseph S. Myers <joseph@codesourcery.com> + + PR c/772 + PR c/17913 + * gcc.dg/stmt-expr-label-1.c, gcc.dg/stmt-expr-label-2.c, + gcc.dg/stmt-expr-label-3.c : New tests. + * gcc.c-torture/execute/medce-2.c: Remove. + +2005-03-30 Joseph S. Myers <joseph@codesourcery.com> + + PR c/20368 + * gcc.dg/pr20368-1.c, gcc.dg/pr20368-2.c, gcc.dg/pr20368-3.c: New + tests. + +2005-03-30 Zdenek Dvorak <dvorakz@suse.cz> + + PR rtl-optimization/20249 + * gcc.dg/20050325-1.c: New test. + +2005-03-30 Alan Modra <amodra@bigpond.net.au> + + * gcc.c-torture/compile/pr20203.c: New test. + +2005-03-29 Alexandre Oliva <aoliva@redhat.com> + + PR rtl-optimization/20532 + * gcc.dg/torture/badshift.c: New. + +2005-03-29 Steven G. Kargl <kargls@comcast.net> + + * gfortran.dg/promotion.f90: New test. + +2005-03-29 Alexandre Oliva <aoliva@redhat.com> + + PR middle-end/20491 + * gcc.dg/torture/asm-subreg-1.c: New test. + +2005-03-29 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/20622 + * gcc.dg/alias-7.c: New test. + +2005-03-29 Eric Botcazou <ebotcazou@libertysurf.fr> + + * gcc.dg/sparc-reg-1.c: New test. + +2005-03-29 Dale Ranta <dir@lanl.gov> + Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/20163 + * gfortran.dg/pr20163-2.f: New test. + +2005-03-27 Mark Mitchell <mark@codesourcery.com> + + * g++.old-deja/g++.warn/compare1.C: Fix typo. + +2005-03-24 Geoffrey Keating <geoffk@apple.com> + + * g++.dg/ext/visibility/pragma-override1.C: Mark as requiring + 'internal' visibility. + * g++.dg/ext/visibility/pragma-override2.C: Likewise. + * g++.dg/ext/visibility/visibility-7.C: Mark as requiring + 'protected' visibility. + * gcc.dg/visibility-7.c: Likewise. + * lib/target-supports.exp (check_visibility_available): Take + a parameter, the kind of visibility to check for. + * lib/target-supports-dg.exp (dg-require-visibility): Pass parameter + to check_visibility_available. + + * g++.dg/expr/cast3.C: New. + +2005-03-25 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/19678 + PR libfortran/19679 + * gfortran.dg/dos_eol.f: New test. + +2005-03-25 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/15332 + * gfortran.dg/pr15332.f: New test. + +2005-03-23 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * gfortran.dg/pr18025.f90: New test. + +2005-03-23 Mark Mitchell <mark@codesourcery.com> + + * g++.old-deja/g++.warn/compare1.C: Run with -Wno-deprecated. + +2005-03-22 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * gfortran.dg/g77_intrinsics_funcs.f: New test. + * gfortran.dg/g77_intrinsics_sub.f: New test. + +2005-03-22 Mark Mitchell <mark@codesourcery.com> + + * g++.dg/opt/max1.C: Run with -Wno-deprecated. + * g++.dg/opt/pr7503-2.C: Likewise. + * g++.dg/opt/pr7503-3.C: Likewise. + * g++.dg/opt/pr7503-4.C: Likewise. + * g++.dg/opt/pr7503-5.C: Likewise. + * g++.dg/warn/minmax.C: New test. + +2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> + + PR c++/19980 + * g++.dg/template/redecl3.C: New test. + +2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> + + PR c++/20499 + * g++.dg/parse/error16.C: Tweak error markers. + +2005-03-22 Jakub Jelinek <jakub@redhat.com> + + PR target/20561 + * gcc.dg/20050321-2.c: New test. + +2005-03-22 Nathan Sidwell <nathan@codesourcery.com> + + PR c++/20465 + PR c++/20381 + * g++.dg/template/ptrmem12.C: New. + +2005-03-22 Paolo Carlini <pcarlini@suse.de> + + PR c++/20461 + * g++.dg/parse/crash24.C: New test. + + PR c++/20536 + * g++.dg/parse/crash25.C: New test. + +2005-03-22 Paolo Carlini <pcarlini@suse.de> + + PR c++/20463 + * g++.dg/template/crash35.C: New test. + +2005-03-21 Roger Sayle <roger@eyesopen.com> + + PR middle-end/20539 + * gcc.c-torture/compile/pr13066-1.c: New test case. + * gcc.c-torture/compile/pr20539-1.c: Likewise. + * g++.dg/opt/pr13066-1.C: Likewise. + +2005-03-21 Paolo Carlini <pcarlini@suse.de> + + PR c++/20147 + * g++.dg/ext/stmtexpr4.C: New test. + +2005-03-20 Joseph S. Myers <joseph@codesourcery.com> + + * gcc.dg/bitfld-14.c, gcc.dg/enum3.c: New tests. + +2005-03-19 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/18525 + * gfortran.dg/nesting_1.f90: New test. + +2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> + + PR c++/20240 + * g++.dg/lookup/using13.C: New test. + +2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> + + PR c++/20333 + * g++.dg/template/crash36.C: New test. + +2005-03-16 Richard Henderson <rth@redhat.com> + + PR middle-end/15700 + * gcc.c-torture/compile/20040323-1.c: Don't xfail for solaris. + (_rtld_global): New. + * gcc.dg/weak/weak-3.c (ffoox1f, ffoox1g): Define. + * gcc.dg/weak/weak-9.c (notf1, notf2, notf3, notf4): Define. + + * gcc.dg/alias-3.c: New. + * gcc.dg/alias-4.c: New. + * gcc.dg/alias-5.c: New. + * gcc.dg/alias-6.c: New. + +2005-03-16 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/20257 + * gfortran.dg/pr20257.f90: New test. + +2005-03-16 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/20480 + * gfortran.dg/pr20480.f90: New test. + +2005-03-15 Feng Wang <fengwang@nudt.edu.cn> + + PR fortran/18827 + * gfortran.dg/assign_2.f90: New test. + * gfortran.dg/assign_3.f90: New test. + * gfortran.dg/assign.f90: New test. + +2005-03-15 Joseph S. Myers <joseph@codesourcery.com> + + * g++.dg/other/cv_func.C, g++.dg/other/offsetof3.C, + g++.dg/parse/error11.C, g++.dg/tc1/dr108.C, + g++.dg/template/local4.C, g++.dg/template/nontype6.C, + g++.dg/warn/deprecated.C: Ensure uniqueness of test assertion + names. + +2005-03-14 Alexandre Oliva <aoliva@redhat.com> + + PR c++/20280 + * g++.dg/tree-ssa/pr20280.C: New. + +2005-03-14 Alexandre Oliva <aoliva@redhat.com> + + * gcc.dg/pr18628.c: New. + +2005-03-14 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/20467 + * gfortran.dg/stfunc_2.f90: New test. + +2005-03-14 Richard Sandiford <rsandifo@redhat.com> + + * gcc.target/mips/fix-vr4130-[1-4].c: New tests. + +2005-03-13 Mark Mitchell <mark@codesourcery.com> + + PR c++/20157 + * g++.dg/template/error18.C: New test. + +2005-03-13 Joseph S. Myers <joseph@codesourcery.com> + + * gcc.dg/anon-struct-6.c, gcc.dg/array-8.c, + gcc.dg/cpp/19940712-1.c, gcc.dg/cpp/19951025-1.c, + gcc.dg/cpp/tr-warn6.c, gcc.dg/deprecated.c, gcc.dg/init-bad-1.c, + gcc.dg/init-bad-2.c, gcc.dg/init-bad-3.c, gcc.dg/m-un-2.c, + gcc.dg/parm-mismatch-1.c, gcc.dg/redecl-1.c: Ensure uniqueness of + test assertion names. + +2003-03-13 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/16907 + * gfortran.dg/real_index_1.f90: New test. + +2005-03-13 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/20323 + * gfortran.dg/spec_expr_1.f90: New test. + +2005-03-12 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/20361 + * gfortran.dg/largeequiv_1.f90: New test. + +2005-03-12 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/20124 + * gfortran.dg/pr20124.f90: New Test + +2005-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + * objc.dg/stabs-1.m (dg-final): Change regexp pattern for hppa SOM. + +2005-03-10 Andrew Pinski <pinskia@physics.uc.edu> + + PR rtl-opt/20412 + * gcc.c-torture/compile/pr20412.c: New test. + +2005-03-10 Jakub Jelinek <jakub@redhat.com> + + PR target/20322 + * gcc.dg/20050307-1.c: New test. + +2005-03-10 Nathan Sidwell <nathan@codesourcery.com> + + PR c++/20375 + * g++.dg/other/stdarg3.C: New. + +2005-03-10 Jakub Jelinek <jakub@redhat.com> + + PR c++/18384, c++/18327 + * g++.dg/init/array19.C: New test. + + PR inline-asm/20314 + * gcc.dg/torture/pr20314-1.c: New test. + * gcc.dg/torture/pr20314-2.c: New test. + +2005-03-09 Ulrich Weigand <uweigand@de.ibm.com> + + * gcc.dg/20050309-1.c: New test. + +2005-03-09 Mark Mitchell <mark@codesourcery.com> + + PR c++/20208 + * g++.dg/template/array13.C: New test. + +2005-03-09 Nathan Sidwell <nathan@codesourcery.com> + + PR c++/20186 + * g++.dg/template/non-dependent12.C: New. + +2005-03-08 Mark Mitchell <mark@codesourcery.com> + + PR c++/20142 + * g++.dg/init/array18.C: New test. + +2005-03-08 Ira Rosen <irar@il.ibm.com> + + * gcc.dg/vect/pr20122.c: New test. + +2005-03-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + * g++.dg/warn/weak1.C: Skip test on hppa*-*-hpux*. + * g++.dg/init/dso_handle1.C, gcc.dg/torture/builtin-noret-1.c, + gcc.dg/torture/builtin-noret-2.c: Require weak support. + +2005-03-07 Mark Mitchell <mark@codesourcery.com> + + * g++.dg/warn/Wnvdtor.C: New test. + +2005-03-07 Richard Sandiford <rsandifo@redhat.com> + + * gcc.dg/torture/pr19683-1.c: New test. + +2005-03-06 Steven G. Kargl <kargls@comcast.net> + + * gfortran.dg/g77/19990313-1.f: Replace tabs with spaces. + * gfortran.dg/g77/19990313-2.f: ditto + * gfortran.dg/g77/19990313-3.f: ditto + * gfortran.dg/g77/19990525-0.f: ditto + * gfortran.dg/g77/19990826-0.f: ditto + * gfortran.dg/g77/19990826-2.f: ditto + * gfortran.dg/g77/19990826-3.f: ditto + * gfortran.dg/g77/20000511-1.f: ditto + * gfortran.dg/g77/20000511-2.f: ditto + * gfortran.dg/g77/970625-2.f: ditto + * gfortran.dg/g77/980310-2.f: ditto + * gfortran.dg/g77/980310-3.f: ditto + * gfortran.dg/g77/980310-8.f: ditto + * gfortran.dg/g77/980519-2.f: ditto + * gfortran.dg/g77/alpha1.f: ditto + * gfortran.dg/g77/claus.f: ditto + * gfortran.dg/g77/erfc.f: ditto + * gfortran.dg/g77/short.f: ditto + * gfortran.fortran-torture/execute/data.f90: ditto + * gfortran.fortran-torture/execute/integer_select.f90: ditto + * gfortran.fortran-torture/execute/integer_select_1.f90: ditto + +2005-03-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + * lib/file-format.exp (gcc_target_object_format): Add check for som + format and hardcode object formats on hppa*-*-hpux*. + * lib/target-supports.exp (check_weak_available): Add check for som + object format. Always return 0 on hppa*-*-hpux10*. + + * gcc.dg/titype-1.c, gcc.dg/uninit-C.c: Don't use TImode if __hppa__ + is defined. + + * objc.dg/stabs-1.m: hppa*64*-*-* doesn't have stabs. + +2005-03-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> + + PR c++/19311 + * g++.dg/template/non-dependent11.C: New test. + +2005-03-05 Steven G. Kargl <kargls@comcast.net> + + * gfortran.dg/pr19936_1.f90: New test. + * gfortran.dg/pr19936_1.f90: ditto. + * gfortran.dg/pr19936_1.f90: ditto. + +2005-03-05 Paul Thomas <prthomas@drfccad.cea.fr> + Steven G. Kargl <kargls@comcast.net> + + * gfortran.dg/PR19754_1.f90: New test. + * gfortran.dg/PR19754_2.f90: ditto. + +2005-03-05 John David Anglin <dave.danglin@nrc-cnrc.gc.ca> + Joseph S. Myers <joseph@codesourcery.com> + + PR c++/19797 + * g++.dg/abi/vague1.C: Remove xfail hppa*-*-hpux*. + +2005-03-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/19673 + * gfortran.dg/func_result_1.f90: New test. + +2005-03-04 David Billinghurst <David.Billinghurst@riotinto.com> + + * gcc.dg/cpp/assert4.c: Fix for cygwin. + +2005-03-02 Mark Mitchell <mark@codesourcery.com> + + PR c++/19916 + * g++.dg/init/ptrmem2.C: New test. + +2005-03-02 Alexandre Oliva <aoliva@redhat.com> + + * g++.dg/overload/using2.C: New. + +2005-03-01 Nathan Sidwell <nathan@codesourcery.com> + + PR c++/20232 + * g++.dg/inherit/covariant12.C: New. + +2005-02-28 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/19479 + * gfortran.dg/bound_1.f90: New test. + +2005-02-28 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/19874 + * gcc.c-torture/execute/20050119-2.c: New test case. + +2005-02-27 Steven G. Kargl <kargl@gcc.gnu.org> + + * gfortran.dg/boz_1.f90: New test. + * gfortran.dg/boz_3.f90: New test. + * gfortran.dg/boz_4.f90: New test. + +2005-02-27 Steven G. Kargl <kargl@gcc.gnu.org> + + * gfortran.dg/ishft.f90: Remove kind suffix from BOZ constant + * gfortran.fortran-torture/execute/intrinsic_mvbits.f90: ditto + +2005-02-27 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/20101 + * gfortran.dg/write_0_pe_format.f90: New test. + +2005-02-27 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> + + * gfortran.dg/e_d_fmt.f90: New test. + +2005-02-27 Jakub Jelinek <jakub@redhat.com> + + PR c++/20206 + * g++.dg/opt/thunk2.C: New test. + * g++.dg/opt/covariant1.C: New test. + +2005-02-27 Andrew Pinski <pinskia@physics.uc.edu> + + * gcc.dg/tree-ssa/inline_asm-2.c: link_error produces + a V_MAY_DEF also. + +2005-02-26 Andrew Pinski <pinskia@physics.uc.edu> + + PR tree-opt/20188 + * gcc.dg/tree-ssa/inline_asm-1.c: New test. + * gcc.dg/tree-ssa/inline_asm-2.c: New test. + * gcc.dg/asm-b.c: New test. + +2005-02-26 Richard Sandiford <rsandifo@redhat.com> + + * gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: New file. + Disable this test on IRIX 6. + +2005-02-25 Diego Novillo <dnovillo@redhat.com> + + PR tree-optimization/20204 + * testsuite/gcc.dg/pr20204.c: New test. + 2005-02-24 Jakub Jelinek <jakub@redhat.com> PR target/20196 @@ -26390,7 +27097,7 @@ Thu Apr 27 15:58:18 MET DST 2000 Jan Hubicka <jh@suse.cz> * gcc.c-torture/compile/labels-2.c: New test. -1999-12-27 Martin von Löwis <loewis@informatik.hu-berlin.de> +1999-12-27 Martin von L�is <loewis@informatik.hu-berlin.de> * gcc.c-torture/execute/991227-1.c: New test. @@ -26398,7 +27105,7 @@ Thu Apr 27 15:58:18 MET DST 2000 Jan Hubicka <jh@suse.cz> * g++.old-deja/g++.pt/instantiate6.C: Remove excess errors XFAIL. -1999-12-21 Martin von Löwis <loewis@informatik.hu-berlin.de> +1999-12-21 Martin von L�is <loewis@informatik.hu-berlin.de> * gcc.c-torture/execute/991221-1.c: New test. diff --git a/gcc/testsuite/README b/gcc/testsuite/README index ae5e3def522..e8476223716 100644 --- a/gcc/testsuite/README +++ b/gcc/testsuite/README @@ -6,7 +6,7 @@ need a current DejaGnu snapshot, which is available from ftp://gcc.gnu.org/pub/gcc/infrastructure, for example. These tests are included "as is". If any of them fails, do not report -a bug. Bug reports for DejaGnu can go to bug-dejagnu@prep.ai.mit.edu. +a bug. Bug reports for DejaGnu can go to bug-dejagnu@gnu.org. Discussion and comments about this testsuite should be sent to gcc@gcc.gnu.org; additions and changes to should go to sent to gcc-patches@gcc.gnu.org. diff --git a/gcc/testsuite/g++.dg/abi/param2.C b/gcc/testsuite/g++.dg/abi/param2.C new file mode 100644 index 00000000000..ed3c0dff132 --- /dev/null +++ b/gcc/testsuite/g++.dg/abi/param2.C @@ -0,0 +1,18 @@ +// PR target/20795 +// Test passing aligned empty aggregate +// { dg-do compile } + +struct S { union {} a; } __attribute__((aligned)); + +S +foo (S arg) +{ + return arg; +} + +void +bar (void) +{ + S arg; + foo (arg); +} diff --git a/gcc/testsuite/g++.dg/abi/vague1.C b/gcc/testsuite/g++.dg/abi/vague1.C index 83be514919a..02feee9e2d4 100644 --- a/gcc/testsuite/g++.dg/abi/vague1.C +++ b/gcc/testsuite/g++.dg/abi/vague1.C @@ -3,8 +3,6 @@ // Disable debug info so we don't get confused by the symbol name there. // { dg-options "-g0" } -// The test fails on hppa*-*-hpux* because the symbol _ZN1AIiE1tE is imported. -// { dg-final { scan-assembler-not "_ZN1AIiE1tE" { xfail hppa*-*-hpux* } } } template <class T> struct A { static const T t = 0; diff --git a/gcc/testsuite/g++.dg/debug/const2.C b/gcc/testsuite/g++.dg/debug/const2.C new file mode 100644 index 00000000000..8e98f8b195e --- /dev/null +++ b/gcc/testsuite/g++.dg/debug/const2.C @@ -0,0 +1,15 @@ +// Copyright (C) 2005 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 1 Apr 2005 <nathan@codesourcery.com> + +// { dg-options "-ggdb2" } +// Origin: ivan <ivanr@syncad.com> +// pinskia@gcc.gnu.org +// Bug 20505: ICE with -ggdb2 + +struct b +{ + static const int d; + virtual bool IsEmpty() const=0; + int e,c; +}; +const int b::d = ((__SIZE_TYPE__)(&((b*)1)->c) - 1); diff --git a/gcc/testsuite/g++.dg/debug/using1.C b/gcc/testsuite/g++.dg/debug/using1.C new file mode 100644 index 00000000000..d3168fc6c1c --- /dev/null +++ b/gcc/testsuite/g++.dg/debug/using1.C @@ -0,0 +1,15 @@ +// PR c++/19406 +// { dg-do compile } + +struct A +{ + virtual int foo(); + double d; +}; + +struct B : public A +{ + A::d; +}; + +B b; diff --git a/gcc/testsuite/g++.dg/expr/cast3.C b/gcc/testsuite/g++.dg/expr/cast3.C new file mode 100644 index 00000000000..2ca56c2698a --- /dev/null +++ b/gcc/testsuite/g++.dg/expr/cast3.C @@ -0,0 +1,22 @@ +// { dg-do compile } + +enum MyState +{ + QUIT = 0, + START, + STOP, + PAUSE +}; + +double GetDouble() +{ + return 1.0; +} + +int main() +{ + MyState the_state; + + the_state = (MyState)GetDouble(); // { dg-bogus "invalid cast" } + return 0; +} diff --git a/gcc/testsuite/g++.dg/expr/lval2.C b/gcc/testsuite/g++.dg/expr/lval2.C new file mode 100644 index 00000000000..5d062f1c628 --- /dev/null +++ b/gcc/testsuite/g++.dg/expr/lval2.C @@ -0,0 +1,27 @@ +// PR c++/19199 + +// { dg-do run } + +// We used to turn the COND_EXPR lvalue into a MIN_EXPR rvalue, and +// then return a reference to a temporary in qMin. + +#include <assert.h> + +enum Foo { A, B }; + +template<typename T> T &qMin(T &a, T &b) +{ + return a < b ? a : b; +} + +int main (int, char **) +{ + Foo f = A; + Foo g = B; + Foo &h = qMin(f, g); + assert (&h == &f || &h == &g); + const Foo &i = qMin((const Foo&)f, (const Foo&)g); + assert (&i == &f || &i == &g); + return 0; +} + diff --git a/gcc/testsuite/g++.dg/ext/attrib21.C b/gcc/testsuite/g++.dg/ext/attrib21.C new file mode 100644 index 00000000000..2fc5800b05e --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/attrib21.C @@ -0,0 +1,17 @@ +// PR c++/20763 + +typedef void *voidp; + +struct S +{ + char a; + voidp __attribute__ ((aligned (16))) b; +}; + +struct T +{ + char a; + void *__attribute__ ((aligned (16))) b; +}; + +int f[sizeof (struct S) != sizeof (struct T) ? -1 : 1]; diff --git a/gcc/testsuite/g++.dg/ext/stmtexpr4.C b/gcc/testsuite/g++.dg/ext/stmtexpr4.C new file mode 100644 index 00000000000..a37c33ae086 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/stmtexpr4.C @@ -0,0 +1,8 @@ +// PR c++/20147 +// { dg-do compile } +// { dg-options "" } + +void foo() +{ + ({x;}); // { dg-error "was not declared" } +} diff --git a/gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C b/gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C index a2c93ebb752..e292df41b4c 100644 --- a/gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C +++ b/gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C @@ -1,6 +1,6 @@ /* Test that #pragma GCC visibility does not override class member specific settings. */ /* { dg-do compile } */ -/* { dg-require-visibility "" } */ +/* { dg-require-visibility "internal" } */ /* { dg-final { scan-assembler "\\.internal.*Foo.methodEv" } } */ #pragma GCC visibility push(hidden) diff --git a/gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C b/gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C index a4bb42c728a..fe6c47fdbf5 100644 --- a/gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C +++ b/gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C @@ -1,6 +1,6 @@ /* Test that #pragma GCC visibility does not override class member specific settings. */ /* { dg-do compile } */ -/* { dg-require-visibility "" } */ +/* { dg-require-visibility "internal" } */ /* { dg-final { scan-assembler "\\.internal.*Foo.methodEv" } } */ #pragma GCC visibility push(hidden) diff --git a/gcc/testsuite/g++.dg/ext/visibility/visibility-7.C b/gcc/testsuite/g++.dg/ext/visibility/visibility-7.C index dbd7010d028..ae4589397b6 100644 --- a/gcc/testsuite/g++.dg/ext/visibility/visibility-7.C +++ b/gcc/testsuite/g++.dg/ext/visibility/visibility-7.C @@ -1,5 +1,5 @@ /* Test warning from conflicting visibility specifications. */ -/* { dg-require-visibility "" } */ +/* { dg-require-visibility "protected" } */ /* { dg-final { scan-hidden "xyzzy" } } */ extern int diff --git a/gcc/testsuite/g++.dg/ext/weak2.C b/gcc/testsuite/g++.dg/ext/weak2.C new file mode 100644 index 00000000000..1bf2ddcb4d6 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/weak2.C @@ -0,0 +1,17 @@ +// Test for #pragma weak with declaration not at file scope. +// { dg-do compile } +// { dg-require-weak "" } +// { dg-options "" } + +// { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?_Z3foov" } } + +#pragma weak _Z3foov + +int +main (void) +{ + extern int foo (void); + if (&foo) + return foo (); + return 0; +} diff --git a/gcc/testsuite/g++.dg/inherit/covariant12.C b/gcc/testsuite/g++.dg/inherit/covariant12.C new file mode 100644 index 00000000000..434082abb0d --- /dev/null +++ b/gcc/testsuite/g++.dg/inherit/covariant12.C @@ -0,0 +1,18 @@ +// Copyright (C) 2004 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 27 Feb 2005<nathan@codesourcery.com> + +// PR 20232: ICE on invalid + +struct T { }; + +struct S; + +struct B +{ + virtual T *Foo (); // { dg-error "overriding" "" } +}; + +struct D : B +{ + virtual S *Foo (); // { dg-error "invalid covariant" "" } +}; diff --git a/gcc/testsuite/g++.dg/init/array18.C b/gcc/testsuite/g++.dg/init/array18.C new file mode 100644 index 00000000000..154d03fcff8 --- /dev/null +++ b/gcc/testsuite/g++.dg/init/array18.C @@ -0,0 +1,22 @@ +// PR c++/20142 +// { dg-do run } + +int n=4; + +struct A +{ + A() {} + A& operator= (const A&) { --n; return *this; } +}; + +struct B +{ + A x[2][2]; +}; + +int main() +{ + B b; + b = b; + return n; +} diff --git a/gcc/testsuite/g++.dg/init/array19.C b/gcc/testsuite/g++.dg/init/array19.C new file mode 100644 index 00000000000..a5f124e21ce --- /dev/null +++ b/gcc/testsuite/g++.dg/init/array19.C @@ -0,0 +1,4 @@ +// { dg-do compile } +// { dg-options "" } +double a[0] = { }; +const double b[0][1] = { }; diff --git a/gcc/testsuite/g++.dg/init/dso_handle1.C b/gcc/testsuite/g++.dg/init/dso_handle1.C index 6578f4fae7e..97f67cad8f4 100644 --- a/gcc/testsuite/g++.dg/init/dso_handle1.C +++ b/gcc/testsuite/g++.dg/init/dso_handle1.C @@ -1,5 +1,6 @@ // PR c++/17042 // { dg-do assemble } +/* { dg-require-weak "" } */ // { dg-options "-fuse-cxa-atexit" } struct A diff --git a/gcc/testsuite/g++.dg/init/ptrmem2.C b/gcc/testsuite/g++.dg/init/ptrmem2.C new file mode 100644 index 00000000000..54b69215bb4 --- /dev/null +++ b/gcc/testsuite/g++.dg/init/ptrmem2.C @@ -0,0 +1,12 @@ +// PR c++/19916 +// { dg-do run } + +struct S { + char k; +}; + +char const volatile S::* const p01 = &S::k; +int main(void) +{ + return 0; +} diff --git a/gcc/testsuite/g++.dg/lookup/using13.C b/gcc/testsuite/g++.dg/lookup/using13.C new file mode 100644 index 00000000000..c102fdcf872 --- /dev/null +++ b/gcc/testsuite/g++.dg/lookup/using13.C @@ -0,0 +1,12 @@ +// { dg-do compile } + +// Origin: Stefan Straßer <sstrasser@systemhaus-gruppe.de> + +// PR c++/20240: + +namespace A { int a; } + +namespace C{ + int a; + using A::a; // { dg-error "already declared" } +} diff --git a/gcc/testsuite/g++.dg/opt/covariant1.C b/gcc/testsuite/g++.dg/opt/covariant1.C new file mode 100644 index 00000000000..e57cf4c6be0 --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/covariant1.C @@ -0,0 +1,47 @@ +// PR c++/20206 +// { dg-do run } +// { dg-options "-O0" } + +void +bar (int x) +{ + asm ("" : : "g" (x)); +} + +struct S { S () {}; virtual ~S () {}; }; +struct T { virtual T *foo (int) {}; }; +struct V : virtual S, virtual T {}; +struct V v; +struct U : public S, public T +{ + bool a; + U () {} + virtual ~U () {} + virtual V *foo (int x) + { + switch (x) + { + case 12: + break; + case 9: + bar (7); + break; + case 10: + bar (12); + break; + case 4: + bar (18); + break; + case 2: + bar (26); + break; + } + return &v; + } +}; +U u; + +int +main () +{ +} diff --git a/gcc/testsuite/g++.dg/opt/max1.C b/gcc/testsuite/g++.dg/opt/max1.C index 61b7021da66..10a6e57d92d 100644 --- a/gcc/testsuite/g++.dg/opt/max1.C +++ b/gcc/testsuite/g++.dg/opt/max1.C @@ -1,7 +1,7 @@ /* PR middle-end/19068 */ /* Test case by Andrew Pinski <pinskia@physics.uc.edu> */ /* { dg-do run } */ -/* { dg-options "-O2" } */ +/* { dg-options "-O2 -Wno-deprecated" } */ extern "C" void abort (void); diff --git a/gcc/testsuite/g++.dg/opt/pr13066-1.C b/gcc/testsuite/g++.dg/opt/pr13066-1.C new file mode 100644 index 00000000000..67f85345676 --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/pr13066-1.C @@ -0,0 +1,22 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ + +class nsIURI; + +struct nsCOMPtr +{ + operator nsIURI*() const + { + return mRawPtr; + } + + nsIURI *mRawPtr; +}; + +void func() +{ + nsCOMPtr u1; + if (!u1 == !u1) + return; +} + diff --git a/gcc/testsuite/g++.dg/opt/pr19108.C b/gcc/testsuite/g++.dg/opt/pr19108.C new file mode 100644 index 00000000000..206a2bc382b --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/pr19108.C @@ -0,0 +1,19 @@ +// PR tree-optimization/19108 +// This used to abort due to not handing RANGE_EXPR in SRA. + +// { dg-do compile } +// { dg-options "-O" } + +struct A +{ + int i[6]; + A () : i() {} +}; + +struct B +{ + A a; + B(const A& x) : a(x) {} +}; + +B b=A(); diff --git a/gcc/testsuite/g++.dg/opt/pr20991.C b/gcc/testsuite/g++.dg/opt/pr20991.C new file mode 100644 index 00000000000..32b3d05c351 --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/pr20991.C @@ -0,0 +1,34 @@ +// PR middle-end/20991 +// { dg-options "-O2" } +// { dg-do compile } + +struct S +{ + virtual inline int foo () const; + virtual inline bool bar () const; + virtual int baz (int) const; +}; + +inline int S::foo () const +{ + return 1; +} + +inline bool S::bar () const +{ + return foo () == 0; +} + +void A () +{ + S s; + if (s.bar ()) + s.foo (); +} + +void B () +{ + S s; + if (s.bar ()) + s.foo (); +} diff --git a/gcc/testsuite/g++.dg/opt/pr7503-2.C b/gcc/testsuite/g++.dg/opt/pr7503-2.C index 68bb143e45e..02ce5988d70 100644 --- a/gcc/testsuite/g++.dg/opt/pr7503-2.C +++ b/gcc/testsuite/g++.dg/opt/pr7503-2.C @@ -1,6 +1,6 @@ // PR c++/7503 // { dg-do run } -// { dg-options "-O2" } +// { dg-options "-O2 -Wno-deprecated" } extern "C" void abort(); diff --git a/gcc/testsuite/g++.dg/opt/pr7503-3.C b/gcc/testsuite/g++.dg/opt/pr7503-3.C index 34d91ddb6c0..4e8de0f207c 100644 --- a/gcc/testsuite/g++.dg/opt/pr7503-3.C +++ b/gcc/testsuite/g++.dg/opt/pr7503-3.C @@ -1,6 +1,6 @@ // PR c++/7503 // { dg-do compile } -// { dg-options "-O2" } +// { dg-options "-O2 -Wno-deprecated" } extern int A, B; diff --git a/gcc/testsuite/g++.dg/opt/pr7503-4.C b/gcc/testsuite/g++.dg/opt/pr7503-4.C index 06ac901229f..7ed70946984 100644 --- a/gcc/testsuite/g++.dg/opt/pr7503-4.C +++ b/gcc/testsuite/g++.dg/opt/pr7503-4.C @@ -1,6 +1,6 @@ // PR c++/7503 // { dg-do run } -// { dg-options "-O2" } +// { dg-options "-O2 -Wno-deprecated" } extern "C" void abort(); diff --git a/gcc/testsuite/g++.dg/opt/pr7503-5.C b/gcc/testsuite/g++.dg/opt/pr7503-5.C index 9e1e719f5c2..236ac93aa3a 100644 --- a/gcc/testsuite/g++.dg/opt/pr7503-5.C +++ b/gcc/testsuite/g++.dg/opt/pr7503-5.C @@ -1,6 +1,6 @@ // PR c++/7503 // { dg-do run } -// { dg-options "-O2" } +// { dg-options "-O2 -Wno-deprecated" } extern "C" void abort(); diff --git a/gcc/testsuite/g++.dg/opt/thunk2.C b/gcc/testsuite/g++.dg/opt/thunk2.C new file mode 100644 index 00000000000..52fcd74bc11 --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/thunk2.C @@ -0,0 +1,44 @@ +// PR c++/20206 +// { dg-do run } +// { dg-options "-O0" } + +void +bar (int x) +{ + asm ("" : : "g" (x)); +} + +struct S { S () {}; virtual ~S () {}; }; +struct T { virtual void foo (int) = 0; }; +struct U : public S, public T +{ + bool a; + U () {} + virtual ~U () {} + virtual void foo (int x) + { + switch (x) + { + case 12: + break; + case 9: + bar (7); + break; + case 10: + bar (12); + break; + case 4: + bar (18); + break; + case 2: + bar (26); + break; + } + } +}; +U u; + +int +main () +{ +} diff --git a/gcc/testsuite/g++.dg/other/cv_func.C b/gcc/testsuite/g++.dg/other/cv_func.C index 6c9ab1bc2f7..4f103824d93 100644 --- a/gcc/testsuite/g++.dg/other/cv_func.C +++ b/gcc/testsuite/g++.dg/other/cv_func.C @@ -4,7 +4,7 @@ typedef int FIC(int) const; typedef int FI(int); FIC f; // { dg-error "qualified" } -// { dg-error "ignoring" "" { target *-*-* } 6 } +// { dg-error "ignoring" "ignoring" { target *-*-* } 6 } struct S { FIC f; // OK @@ -15,7 +15,7 @@ struct S { }; FIC S::*pm = &S::f; const FI S::*pm2 = &S::f; // { dg-error "qualifier" } -// { dg-error "cannot convert" "" { target *-*-* } 17 } +// { dg-error "cannot convert" "cannot convert" { target *-*-* } 17 } const FIC S::*pm3 = &S::f; // { dg-error "qualifier" } int S::f(int) const diff --git a/gcc/testsuite/g++.dg/other/offsetof3.C b/gcc/testsuite/g++.dg/other/offsetof3.C index 7106a3f01ad..1e83af98071 100644 --- a/gcc/testsuite/g++.dg/other/offsetof3.C +++ b/gcc/testsuite/g++.dg/other/offsetof3.C @@ -13,4 +13,4 @@ typedef X* pX; typedef __SIZE_TYPE__ size_t; size_t yoff = size_t(&(pX(0)->y)); /* { dg-warning "invalid access" "" } */ -/* { dg-warning "macro was used incorrectly" "" { target *-*-* } 15 } */ +/* { dg-warning "macro was used incorrectly" "macro" { target *-*-* } 15 } */ diff --git a/gcc/testsuite/g++.dg/other/stdarg3.C b/gcc/testsuite/g++.dg/other/stdarg3.C new file mode 100644 index 00000000000..3d11dffae1f --- /dev/null +++ b/gcc/testsuite/g++.dg/other/stdarg3.C @@ -0,0 +1,16 @@ +// Copyright (C) 2005 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 8 Mar 2005 <nathan@codesourcery.com> + +// PR 20375: ICE +// Origin: Joseph S. Myers <jsm28@gcc.gnu.org> +// { dg-options "-mlp64" { target "ia64-*-*" } } + +union U +{ + void *m[7]; +}; + +struct C; + +void f(struct C *c, float f, union U, ...) +{ } diff --git a/gcc/testsuite/g++.dg/overload/using2.C b/gcc/testsuite/g++.dg/overload/using2.C new file mode 100644 index 00000000000..2ecb5fad6b0 --- /dev/null +++ b/gcc/testsuite/g++.dg/overload/using2.C @@ -0,0 +1,87 @@ +// { dg-do compile } + +// Copyright 2005 Free Software Foundation +// by Alexandre Oliva <aoliva@redhat.com> +// based on https://bugzilla.redhat.com/beta/show_bug.cgi?id=149098 + +// Per the ISO C++ 90 Standard, using declarations before of after a +// declaration of the same function name and prototype should be +// errors (7.3.3/11). However, DR 101's resolution recommends +// accepting such duplicates if they denote the same function, which +// means extern "C" declarations are supposed to match and be +// accepted. + +// This test makes sure we reject or accept regular and using +// declarations regardless of order as appropriate, and that having +// built-in declarations or overloads doesn't affet the outcome. + +namespace std { + extern "C" void exit (int) throw (); // these are built-in (extern "C") + extern "C" void *malloc (__SIZE_TYPE__) throw () __attribute__((malloc)); + + void abort (void) throw (); // these aren't + void _exit (int) throw (); // { dg-error "std::_exit" } + + extern "C" void c1 (void) throw (); + void C1 (void) throw (); // { dg-error "std::C1" } + + extern "C" void c2 (void) throw (); + void C2 (void) throw (); + + extern "C" void c3 (void) throw (); + void C3 (void) throw (); // { dg-error "std::C3" } +} + +namespace other { + extern "C" void c3 (void) throw (); + void C3 (void) throw (); // { dg-error "other::C3" } +} + +using std::exit; +using std::_exit; +using std::c1; +using std::C1; + + extern "C" void exit (int) throw (); + extern "C" void *malloc (__SIZE_TYPE__) throw () __attribute__((malloc)); + + void abort (void) throw (); + void _exit (int) throw (); // { dg-error "conflicts|void _exit" } + + extern "C" void c1 (void) throw (); + void C1 (void) throw (); // { dg-error "conflicts|void C1" } + + extern "C" void c2 (void) throw (); + void C2 (void) throw (); + + int C3 (int) throw (); + +using std::malloc; +using std::abort; // { dg-error "already declared" } +using std::c2; +using std::C2; // { dg-error "already declared" } + +using std::c3; using other::c3; +using std::C3; using other::C3; + + long C3 (long) throw (); + +int main () { + malloc (0); + exit (0); + + _exit (0); // { dg-error "ambiguous" } + abort (); + + c1 (); + C1 (); // { dg-error "ambiguous" } + + c2 (); + C2 (); // one might expect an ambiguous call error here as well, but + // we don't add the using decl if we find it to be in error. + + c3 (); + C3 (); // { dg-error "ambiguous" } + C3 (0); + C3 (0l); +} diff --git a/gcc/testsuite/g++.dg/parse/cond2.C b/gcc/testsuite/g++.dg/parse/cond2.C new file mode 100644 index 00000000000..2dbe42b34f3 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/cond2.C @@ -0,0 +1,14 @@ +// PR c++/20905 + +struct name {}; + +int +f (); + +void +g () +{ + if (int name = f ()) + { + } +} diff --git a/gcc/testsuite/g++.dg/parse/crash24.C b/gcc/testsuite/g++.dg/parse/crash24.C new file mode 100644 index 00000000000..fdc4f1e7c9d --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/crash24.C @@ -0,0 +1,6 @@ +// PR c++/20461 +// { dg-do compile } + +class C; // { dg-error "forward declaration" } + +C::C() : f() {} // { dg-error "invalid use|does not have" } diff --git a/gcc/testsuite/g++.dg/parse/crash25.C b/gcc/testsuite/g++.dg/parse/crash25.C new file mode 100644 index 00000000000..d7f20c62f26 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/crash25.C @@ -0,0 +1,10 @@ +// PR c++/20536 +// Found by Wolfgang Wieser 03/2005. +// { dg-do compile } + +struct yyguts_t +{ + class TestScanner* yyextra_r; // { dg-error "forward declaration" } +}; + +TestScanner::TestScanner() {} // { dg-error "invalid use" } diff --git a/gcc/testsuite/g++.dg/parse/error11.C b/gcc/testsuite/g++.dg/parse/error11.C index 6b3deec178a..0a8e2e4fc3d 100644 --- a/gcc/testsuite/g++.dg/parse/error11.C +++ b/gcc/testsuite/g++.dg/parse/error11.C @@ -50,4 +50,4 @@ template struct Foo<::B>; // { dg-error "cannot begin|alternate spelling" } // On the first error message, an additional note about the use of // -fpermissive should be present -// { dg-error "-fpermissive" "" { target *-*-* } 18 } +// { dg-error "-fpermissive" "-fpermissive" { target *-*-* } 18 } diff --git a/gcc/testsuite/g++.dg/parse/error16.C b/gcc/testsuite/g++.dg/parse/error16.C index afc790e072e..3dc58ad53c0 100644 --- a/gcc/testsuite/g++.dg/parse/error16.C +++ b/gcc/testsuite/g++.dg/parse/error16.C @@ -2,7 +2,7 @@ struct A { - struct B {}; // { dg-error "" } + struct B {}; // { dg-error "previous" } }; -struct A::B{}; // { dg-error "" } +struct A::B{}; // { dg-error "redefinition" } diff --git a/gcc/testsuite/g++.dg/tc1/dr108.C b/gcc/testsuite/g++.dg/tc1/dr108.C index f7848ec74b6..6b567a9fad5 100644 --- a/gcc/testsuite/g++.dg/tc1/dr108.C +++ b/gcc/testsuite/g++.dg/tc1/dr108.C @@ -12,4 +12,4 @@ template <class T> struct S { }; // Additional notes on the same line are allowed -// { dg-error "" "" { target *-*-* } 10 } +// { dg-error "" "additional" { target *-*-* } 10 } diff --git a/gcc/testsuite/g++.dg/template/array13.C b/gcc/testsuite/g++.dg/template/array13.C new file mode 100644 index 00000000000..3bc152ce4f8 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/array13.C @@ -0,0 +1,14 @@ +// PR c++/20208 +// { dg-do run } +// { dg-options "-O2" } + +extern "C" void abort(); + +template <typename T> +inline void *Foo (T arg) { return &arg[0]; } + +int main () { + int bry[2]; + if (Foo<int[2]>(bry) != bry) + abort(); +} diff --git a/gcc/testsuite/g++.dg/template/crash35.C b/gcc/testsuite/g++.dg/template/crash35.C new file mode 100644 index 00000000000..dd8aa2f0906 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/crash35.C @@ -0,0 +1,9 @@ +// PR c++/20463 +// { dg-do compile } + +template <typename T> struct C; // { dg-error "declaration" } + +template <typename T> void C<T>::f() // { dg-error "invalid|template" } +{ + const foo bar; // { dg-error "name a type" } +} diff --git a/gcc/testsuite/g++.dg/template/crash36.C b/gcc/testsuite/g++.dg/template/crash36.C new file mode 100644 index 00000000000..2f0ef921a67 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/crash36.C @@ -0,0 +1,9 @@ +// { dg-do compile } + +// Origin: Ivan Godard <igodard@pacbell.net> +// Andrew Pinski <pinskia@gcc.gnu.org> + +// PR c++/20333: ICE parsing typename without nested-name-specifier + +template<class> struct f {}; +f<int> f2[2] = {typename f<int>()}; // { dg-error "" } diff --git a/gcc/testsuite/g++.dg/template/error18.C b/gcc/testsuite/g++.dg/template/error18.C new file mode 100644 index 00000000000..7b7151a3b7f --- /dev/null +++ b/gcc/testsuite/g++.dg/template/error18.C @@ -0,0 +1,11 @@ +// PR c++/20157 + +template<typename AT> +struct A{ + template<typename T> + void function(T); +}; + +template<> +template<typename ABC,typename DEF> +void A<int>::function(ABC); // { dg-error "match" } diff --git a/gcc/testsuite/g++.dg/template/local4.C b/gcc/testsuite/g++.dg/template/local4.C index 748810b409e..20f8bf29441 100644 --- a/gcc/testsuite/g++.dg/template/local4.C +++ b/gcc/testsuite/g++.dg/template/local4.C @@ -6,6 +6,6 @@ int main () { struct S {}; // We do not simply use "local|match" on line 10 because we want to // make sure that "local" appears. - // { dg-error "local" "" { target *-*-* } 10 } + // { dg-error "local" "local" { target *-*-* } 10 } foo<S> (); // { dg-error "trying|match" } } diff --git a/gcc/testsuite/g++.dg/template/non-dependent11.C b/gcc/testsuite/g++.dg/template/non-dependent11.C new file mode 100644 index 00000000000..dff5b909d95 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/non-dependent11.C @@ -0,0 +1,18 @@ +// { dg-do compile } + +// Origin: Jakub Jelinek <jakub@gcc.gnu.org> +// Wolfgang Bangerth <bangerth@ticam.utexas.edu> + +// PR c++/19311: Non-dependent address to member as function argument. + +template <class R, class T> void foo (R (T::*x) ()); +template <class R, class T, class C> void foo (R (T::*x) (C)); + +template<int> struct I { + int o (); + int o () const; +}; + +template <int> void bar (void) { + foo <int, I<1> > (&I<1>::o); +} diff --git a/gcc/testsuite/g++.dg/template/non-dependent12.C b/gcc/testsuite/g++.dg/template/non-dependent12.C new file mode 100644 index 00000000000..73d7e949766 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/non-dependent12.C @@ -0,0 +1,10 @@ +// Copyright (C) 2005 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 8 Mar 2005 <nathan@codesourcery.com> + +// PR 20186: ICE +// Origin: Jan Dvorak <jan.dvorak@kraxnet.cz> + +template<typename T> void foo(T &t) +{ + int i = static_cast<int>(t); +} diff --git a/gcc/testsuite/g++.dg/template/nontype6.C b/gcc/testsuite/g++.dg/template/nontype6.C index 43470ccdb1d..298ce82591c 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 "if a type is meant" } -// { dg-error "parsed as a non-type" "" { target *-*-* } 15 } +// { dg-error "parsed as a non-type" "non-type" { target *-*-* } 15 } } template void func<float>(void); // { dg-error "instantiated from here" } diff --git a/gcc/testsuite/g++.dg/template/overload4.C b/gcc/testsuite/g++.dg/template/overload4.C new file mode 100644 index 00000000000..1a294eb3c05 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/overload4.C @@ -0,0 +1,20 @@ +// PR c++/20679 + +template <class T> +struct foo +{ + struct bar + { + int m; + }; + + void m() const {} + void m() {} + + bool n() const { return b->m < 42; } + + bar *b; +}; + + + diff --git a/gcc/testsuite/g++.dg/template/ptrmem12.C b/gcc/testsuite/g++.dg/template/ptrmem12.C new file mode 100644 index 00000000000..717b86988cb --- /dev/null +++ b/gcc/testsuite/g++.dg/template/ptrmem12.C @@ -0,0 +1,29 @@ +// Copyright (C) 2005 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 17 Mar 2005 <nathan@codesourcery.com> + +// PR 20465 +// Origin: Matthias Klose <doko@debian.org> +// Andrew Pinski <pinskia@gcc.gnu.org> + +template <class _Ret, class _Tp> +void mem_fun_ref(_Ret (_Tp::*__f)()); + +struct A { + double f(); +}; + +void h () +{ + mem_fun_ref(&A::f); +} + +template <class T> +void f() +{ + mem_fun_ref(&A::f); +} + +void g() +{ + f<int>(); +} diff --git a/gcc/testsuite/g++.dg/template/ptrmem13.C b/gcc/testsuite/g++.dg/template/ptrmem13.C new file mode 100644 index 00000000000..84374ea05fc --- /dev/null +++ b/gcc/testsuite/g++.dg/template/ptrmem13.C @@ -0,0 +1,11 @@ +// PR c++/20734 + +struct A; +void blah(int A::*); +struct A{ + int a; +}; +template<typename T> +void hoho(){ + blah(&A::a); +} diff --git a/gcc/testsuite/g++.dg/template/redecl3.C b/gcc/testsuite/g++.dg/template/redecl3.C new file mode 100644 index 00000000000..029f9e69a5f --- /dev/null +++ b/gcc/testsuite/g++.dg/template/redecl3.C @@ -0,0 +1,7 @@ +// PR c++/19980 +// Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de> + +// { dg-do compile } + +int foo; // { dg-error "previous declaration" } +template<int> void foo() {} // { dg-error "redeclared" } diff --git a/gcc/testsuite/g++.dg/template/sizeof9.C b/gcc/testsuite/g++.dg/template/sizeof9.C new file mode 100644 index 00000000000..8d9ec95ae1f --- /dev/null +++ b/gcc/testsuite/g++.dg/template/sizeof9.C @@ -0,0 +1,6 @@ +// PR c++/21025 + +template<int N> struct X { char x[N]; }; +template<typename T> X<1 + sizeof(T) - sizeof(T)> F(T const &); +template<int N> struct S { int d() { F(1); } }; + diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr20280.C b/gcc/testsuite/g++.dg/tree-ssa/pr20280.C new file mode 100644 index 00000000000..ec4dad70620 --- /dev/null +++ b/gcc/testsuite/g++.dg/tree-ssa/pr20280.C @@ -0,0 +1,63 @@ +// PR c++/20280 + +// { dg-do compile } + +// Gimplification of the COND_EXPR used to fail because it had an +// addressable type, and create_tmp_var rejected that. + +struct A +{ + ~A(); +}; + +struct B : A {}; + +A& foo(); + +void bar(bool b) +{ + (B&) (b ? foo() : foo()); +} + +// Make sure bit-fields and addressable types don't cause crashes. +// These were not in the original bug report. + +// Added by Alexandre Oliva <aoliva@redhat.com> + +// Copyright 2005 Free Software Foundation + +struct X +{ + long i : 32, j, k : 32; +}; + +void g(long&); +void h(const long&); + +void f(X &x, bool b) +{ + (b ? x.i : x.j) = 1; + (b ? x.j : x.k) = 2; + (b ? x.i : x.k) = 3; + + (void)(b ? x.i : x.j); + (void)(b ? x.i : x.k); + (void)(b ? x.j : x.k); + + g (b ? x.i : x.j); // { dg-error "cannot bind bitfield" } + g (b ? x.i : x.k); // { dg-error "cannot bind bitfield" } + g (b ? x.j : x.k); // { dg-error "cannot bind bitfield" } + + // It's not entirely clear whether these should be accepted. The + // conditional expressions are lvalues for sure, and 8.5.3/5 exempts + // lvalues for bit-fields, but it's not clear that conditional + // expressions that are lvalues and that have at least one possible + // result that is a bit-field lvalue meets this condition. + h (b ? x.i : x.j); + h (b ? x.i : x.k); + h (b ? x.j : x.k); + + (long &)(b ? x.i : x.j); // { dg-error "address of bit-field" } + (long &)(b ? x.i : x.k); // { dg-error "address of bit-field" } + (long &)(b ? x.j : x.k); // { dg-error "address of bit-field" } +} diff --git a/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-3.C b/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-3.C new file mode 100644 index 00000000000..b61c9739ea4 --- /dev/null +++ b/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-3.C @@ -0,0 +1,85 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +/* Test check use_block_copy bit propagation in sra element hierarchy. */ + +typedef unsigned char UINT8 ; +typedef unsigned int UINT ; +class C4 +{ +public: + int xy[2]; +}; + +class C3 +{ +public: + inline void + Reset() + { + C4 const mvMax = {0x7fff, 0x7fff}; + + m42(0,mvMax); + m42(1,mvMax); + m43(0); + }; + + inline void m42 (UINT i, C4 mv) + { + mMv[i] = mv; + }; + + + + inline void m43(UINT j) + { + m44 (j); + d41 = j + 1; + }; + +private: + + C4 mMv[2]; + UINT8 d41; + inline void m44 (UINT j) const {}; +}; + +class C2 +{ +private: + bool valid; +}; + +class C1 +{ +public: + void m1(C3 *c); + +private: + const C2 * d1[2]; + void m2(C3 *m); +}; + +void C1::m1 (C3 *r) +{ + C3 x; + m2(&x); +} +void C1::m2(C3 *x) +{ + C3 m3; + int i; + m3.Reset (); + for(i=0; i<2; i++) + { + const C2 * r = d1[i]; + if (r!=__null) + { + C4 const c400 = {0,0}; + m3.m42 (i, c400); + + } + } +} + + + diff --git a/gcc/testsuite/g++.dg/warn/Wdtor1.C b/gcc/testsuite/g++.dg/warn/Wdtor1.C new file mode 100644 index 00000000000..34c8a7edcad --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Wdtor1.C @@ -0,0 +1,22 @@ +// PR c++/20145 +// { dg-options "-Wnon-virtual-dtor" } +# 1 "t.cc" +# 1 "<built-in>" +# 1 "<command line>" +# 1 "t.cc" +# 1 "include/t.h" 1 3 4 +// Declare the template with explicit C++ linkage in case system +// headers have implicit C linkage. +extern "C++" { +template <int> class t +{ + virtual void f(); +}; +} +# 2 "t.cc" 2 + +void f(void) +{ + t<1> h; +} + diff --git a/gcc/testsuite/g++.dg/warn/Wnvdtor.C b/gcc/testsuite/g++.dg/warn/Wnvdtor.C new file mode 100644 index 00000000000..b04fdcbe6b1 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Wnvdtor.C @@ -0,0 +1,10 @@ +// { dg-options "-Wnon-virtual-dtor" } + +extern "Java" +{ + class Foo + { + public: + virtual void bar( void); + }; +} diff --git a/gcc/testsuite/g++.dg/warn/Wunused-11.C b/gcc/testsuite/g++.dg/warn/Wunused-11.C new file mode 100644 index 00000000000..4a151d24547 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Wunused-11.C @@ -0,0 +1,11 @@ +// PR c++/20212 +// { dg-options "-O2 -Wunused -Wextra" } + +template<int> void f(int); +void g(int i) +{ + f<0>(i); +} +template<int> void f(int i __attribute__((unused)) ) +{} + diff --git a/gcc/testsuite/g++.dg/warn/deprecated.C b/gcc/testsuite/g++.dg/warn/deprecated.C index 21b901af4f5..59dc3d67257 100644 --- a/gcc/testsuite/g++.dg/warn/deprecated.C +++ b/gcc/testsuite/g++.dg/warn/deprecated.C @@ -53,10 +53,10 @@ 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" "" { target *-*-* } 55 } */ - /* { dg-warning "'g2' is deprecated" "" { target *-*-* } 55 } */ - /* { dg-warning "'g3' is deprecated" "" { target *-*-* } 55 } */ - return f1(); /* { dg-warning "'f1' 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 } */ + return f1(); /* { dg-warning "'f1' is deprecated" "f1" } */ } int func2(S1 *p) @@ -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" "" { target *-*-* } 73 } */ + /* { dg-warning "'field8' is deprecated" "field8" { target *-*-* } 73 } */ } struct SS1 { diff --git a/gcc/testsuite/g++.dg/warn/minmax.C b/gcc/testsuite/g++.dg/warn/minmax.C new file mode 100644 index 00000000000..7431bfc3c4e --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/minmax.C @@ -0,0 +1,15 @@ +int i, j, k; + +void f() { + i = j <? k; // { dg-warning "deprecated" } + i = j >? k; // { dg-warning "deprecated" } + i <?= j; // { dg-warning "deprecated" } + i >?= j; // { dg-warning "deprecated" } +} + +struct S { + void operator<?(int); // { dg-warning "deprecated" } + void operator>?(int); // { dg-warning "deprecated" } + void operator<?=(int); // { dg-warning "deprecated" } + void operator>?=(int); // { dg-warning "deprecated" } +}; diff --git a/gcc/testsuite/g++.dg/warn/weak1.C b/gcc/testsuite/g++.dg/warn/weak1.C index 84d08fbd479..034716accce 100644 --- a/gcc/testsuite/g++.dg/warn/weak1.C +++ b/gcc/testsuite/g++.dg/warn/weak1.C @@ -1,5 +1,7 @@ +// The PA HP-UX dynamic loader doesn't support unsatisfied weak symbols. // { dg-do run } // { dg-require-weak "" } +// { dg-skip-if "No unsat" { hppa*-*-hpux* } { "*" } { "" } } extern void foo (void) __attribute__ ((weak)); diff --git a/gcc/testsuite/g++.old-deja/g++.jason/warning9.C b/gcc/testsuite/g++.old-deja/g++.jason/warning9.C index 9423ac1269b..775a37ca33d 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/warning9.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/warning9.C @@ -3,12 +3,13 @@ struct A { operator int (); - A& operator= (int); // { dg-warning "" } not used below + A& operator= (int); }; +int main() { A a, b; - a = b; // { dg-warning "" } uses synthesized op= + a = b; } diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog b/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog index cb7d567f659..6972b58b6a7 100644 --- a/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog +++ b/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog @@ -1,3 +1,12 @@ +2005-04-20 Release Manager + + * GCC 4.0.0 released. + +2005-04-04 Alexandre Oliva <aoliva@redhat.com> + + PR c++/19199 + * expr2.C: Fixed. + 2003-06-04 J"orn Rennecke <joern.rennecke@superh.com> * template1.C (bar): Remove xfail marker. diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/expr2.C b/gcc/testsuite/g++.old-deja/g++.oliva/expr2.C index dd364accfa4..1e63c645b6c 100644 --- a/gcc/testsuite/g++.old-deja/g++.oliva/expr2.C +++ b/gcc/testsuite/g++.old-deja/g++.oliva/expr2.C @@ -1,4 +1,4 @@ -// { dg-do run { xfail *-*-* } } +// { dg-do run } // Copyright (C) 2000 Free Software Foundation diff --git a/gcc/testsuite/g++.old-deja/g++.warn/compare1.C b/gcc/testsuite/g++.old-deja/g++.warn/compare1.C index 5407c936057..7a231801bfa 100644 --- a/gcc/testsuite/g++.old-deja/g++.warn/compare1.C +++ b/gcc/testsuite/g++.old-deja/g++.warn/compare1.C @@ -1,5 +1,5 @@ // { dg-do assemble } -// { dg-options "-ansi -pedantic-errors -Wsign-compare" } +// { dg-options "-ansi -pedantic-errors -Wsign-compare -Wno-deprecated" } // Copyright (C) 2001 Free Software Foundation, Inc. // Contributed by Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5/13/2001 diff --git a/gcc/testsuite/gcc.c-torture/compile/20011119-1.c b/gcc/testsuite/gcc.c-torture/compile/20011119-1.c index 2204c11c90b..4057ff0612c 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20011119-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/20011119-1.c @@ -1,3 +1,5 @@ +/* { dg-require-weak "" } */ +/* { dg-require-alias "" } */ extern inline int foo (void) { return 23; } int xxx(void) __asm__("xxx"); int xxx(void) { return 23; } diff --git a/gcc/testsuite/gcc.c-torture/compile/20011119-2.c b/gcc/testsuite/gcc.c-torture/compile/20011119-2.c index ab649b98bc7..3f5a62f10a4 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20011119-2.c +++ b/gcc/testsuite/gcc.c-torture/compile/20011119-2.c @@ -1,3 +1,5 @@ +/* { dg-require-weak "" } */ +/* { dg-require-alias "" } */ extern inline int foo (void) { return 23; } int bar (void) { return foo (); } extern int foo (void) __attribute__ ((weak, alias ("xxx"))); diff --git a/gcc/testsuite/gcc.c-torture/compile/20040323-1.c b/gcc/testsuite/gcc.c-torture/compile/20040323-1.c index a8d924ab0fc..77ddadc9dcd 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20040323-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/20040323-1.c @@ -1,7 +1,7 @@ /* PR middle-end/14694 */ /* { dg-require-alias "" } */ -/* { dg-xfail-if "undefined alias" { "*-*-solaris2.*" } { "*" } { "" } } */ +unsigned int _rtld_global = 1; extern unsigned int _rtld_local __attribute__ ((alias ("_rtld_global"))); unsigned int diff --git a/gcc/testsuite/gcc.c-torture/compile/981001-2.c b/gcc/testsuite/gcc.c-torture/compile/981001-2.c index 9ade1d92aef..f635cbb60e3 100644 --- a/gcc/testsuite/gcc.c-torture/compile/981001-2.c +++ b/gcc/testsuite/gcc.c-torture/compile/981001-2.c @@ -1,3 +1,5 @@ +/* { dg-require-weak "" } */ +/* { dg-require-alias "" } */ #define weak_alias(func, aliasname) \ extern __typeof (func) aliasname __attribute__ ((weak, alias (#func))); diff --git a/gcc/testsuite/gcc.c-torture/compile/pr13066-1.c b/gcc/testsuite/gcc.c-torture/compile/pr13066-1.c new file mode 100644 index 00000000000..c2930f95df6 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr13066-1.c @@ -0,0 +1,10 @@ +void *g, *c; +int a, b; + +int f() +{ + if ((0 == a) != (b || g == c)) + return 1; + return 0; +} + diff --git a/gcc/testsuite/gcc.c-torture/compile/pr20203.c b/gcc/testsuite/gcc.c-torture/compile/pr20203.c new file mode 100644 index 00000000000..1fb2a045d55 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr20203.c @@ -0,0 +1,16 @@ +void *memset (void *, int, unsigned long); + +typedef struct bfd_section +{ + unsigned long size; + unsigned char *contents; +} asection; + +int +_bfd_mips_elf_finish_dynamic_sections (asection *s) +{ + long long dummy_offset; + dummy_offset = s->size - 16; + memset (s->contents + dummy_offset, 0, 16); + return 1; +} diff --git a/gcc/testsuite/gcc.c-torture/compile/pr20412.c b/gcc/testsuite/gcc.c-torture/compile/pr20412.c new file mode 100644 index 00000000000..c0feecf3d43 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr20412.c @@ -0,0 +1,20 @@ +int +foo(void) +{ + int a,b,g; + int i,len; + int stop; + + len = 10; + stop = 0; + for (i=0; i<len; i++) + { + a = bar1() ? 0 : 1; + b = bar2() ? 0 : 1; + g = bar3() ? 0 : 1; + + if (stop = ((a+b) % 2 != g)) break; + } + + return stop; +} diff --git a/gcc/testsuite/gcc.c-torture/compile/pr20539-1.c b/gcc/testsuite/gcc.c-torture/compile/pr20539-1.c new file mode 100644 index 00000000000..f67f06b8816 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr20539-1.c @@ -0,0 +1,10 @@ +char l7_en; +long long l6_data_Z_0th; +int t; +void f() +{ + if (((char )(l6_data_Z_0th>>1 & 1U)) & ((l6_data_Z_0th & 1U) + | !(((char )(l6_data_Z_0th>>35 & 15U))==14U))) + t = 0ULL; +} + diff --git a/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-1.c b/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-1.c new file mode 100644 index 00000000000..0924f5cc02d --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-1.c @@ -0,0 +1,7 @@ +/* Bug c/17855. */ +struct foo {char x, y, z[2];}; +struct foo f(); +void bar(int baz) +{ + f().z[baz] = 1; +} diff --git a/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-2.c b/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-2.c new file mode 100644 index 00000000000..daa0d17492d --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-2.c @@ -0,0 +1,7 @@ +/* Bug c/17855, using conditional expression for non-lvalue. */ +struct foo {char x, y, z[2];}; +struct foo p, q; int r; +void bar(int baz) +{ + (r ? p : q).z[baz] = 1; +} diff --git a/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-3.c b/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-3.c new file mode 100644 index 00000000000..3020194cae0 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-3.c @@ -0,0 +1,7 @@ +/* Bug c/17855, using assignment for non-lvalue. */ +struct foo {char x, y, z[2];}; +struct foo p, q; +void bar(int baz) +{ + (p = q).z[baz] = 1; +} diff --git a/gcc/testsuite/gcc.c-torture/execute/20050119-2.c b/gcc/testsuite/gcc.c-torture/execute/20050119-2.c new file mode 100644 index 00000000000..568109cb2c9 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20050119-2.c @@ -0,0 +1,40 @@ +/* PR middle-end/19874 */ +typedef enum { A, B, C, D } E; + +struct S { + E __attribute__ ((mode (__byte__))) a; + E __attribute__ ((mode (__byte__))) b; + E __attribute__ ((mode (__byte__))) c; + E __attribute__ ((mode (__byte__))) d; +}; + +extern void abort (void); +extern void exit (int); + +E +foo (struct S *s) +{ + if (s->a != s->b) + abort (); + if (s->c != C) + abort (); + return s->d; +} + +int +main (void) +{ + struct S s[2]; + s[0].a = B; + s[0].b = B; + s[0].c = C; + s[0].d = D; + s[1].a = D; + s[1].b = C; + s[1].c = B; + s[1].d = A; + if (foo (s) != D) + abort (); + exit (0); +} + diff --git a/gcc/testsuite/gcc.c-torture/execute/20050316-1.c b/gcc/testsuite/gcc.c-torture/execute/20050316-1.c new file mode 100644 index 00000000000..2a1c6254dfa --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20050316-1.c @@ -0,0 +1,69 @@ +/* PR rtl-optimization/16104 */ + +extern void abort (void); + +typedef int V2SI __attribute__ ((vector_size (8))); +typedef unsigned int V2USI __attribute__ ((vector_size (8))); +typedef short V2HI __attribute__ ((vector_size (4))); +typedef unsigned int V2UHI __attribute__ ((vector_size (4))); + +int +test1 (void) +{ + return (long long) (V2SI) 0LL; +} + +int +test2 (V2SI x) +{ + return (long long) x; +} + +V2SI +test3 (void) +{ + return (V2SI) (long long) (int) (V2HI) 0; +} + +V2SI +test4 (V2HI x) +{ + return (V2SI) (long long) (int) x; +} + +V2SI +test5 (V2USI x) +{ + return (V2SI) x; +} + +int +main (void) +{ + if (sizeof (short) != 2 || sizeof (int) != 4 || sizeof (long long) != 8) + return 0; + + if (test1 () != 0) + abort (); + + V2SI x = { 2, 2 }; + if (test2 (x) != 2) + abort (); + + union { V2SI x; int y[2]; V2USI z; long long l; } u; + u.x = test3 (); + if (u.y[0] != 0 || u.y[1] != 0) + abort (); + + V2HI y = { 4, 4 }; + union { V2SI x; long long y; } v; + v.x = test4 (y); + if (v.y != 0x40004) + abort (); + + V2USI z = { 6, 6 }; + u.x = test5 (z); + if (u.y[0] != 6 || u.y[1] != 6) + abort (); + return 0; +} diff --git a/gcc/testsuite/gcc.c-torture/execute/20050410-1.c b/gcc/testsuite/gcc.c-torture/execute/20050410-1.c new file mode 100644 index 00000000000..c4cd85279a9 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20050410-1.c @@ -0,0 +1,13 @@ +int s = 200; +int __attribute__((noinline)) +foo (void) +{ + return (signed char) (s - 100) - 5; +} +int +main (void) +{ + if (foo () != 95) + abort (); + exit (0); +} diff --git a/gcc/testsuite/gcc.c-torture/execute/20050414-1.c b/gcc/testsuite/gcc.c-torture/execute/20050414-1.c new file mode 100644 index 00000000000..8217280ae1b --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20050414-1.c @@ -0,0 +1,47 @@ +/* PR target/20126 was not really target-specific, but rather a loop's + failure to take into account the possibility that a DEST_ADDR giv + replacement might fail, such as when you attempt to replace a REG + with a PLUS in one of the register_operands of cmpstrqi_rex_1. */ + +extern void abort (void); + +typedef struct { int a; char b[3]; } S; +S c = { 2, "aa" }, d = { 2, "aa" }; + +void * +bar (const void *x, int y, int z) +{ + return (void *) 0; +} + +int +foo (S *x, S *y) +{ + const char *e, *f, *g; + int h; + + h = y->a; + f = y->b; + e = x->b; + + if (h == 1) + return bar (e, *f, x->a) != 0; + + g = e + x->a - h; + while (e <= g) + { + const char *t = e + 1; + if (__builtin_memcmp (e, f, h) == 0) + return 1; + e = t; + } + return 0; +} + +int +main (void) +{ + if (foo (&c, &d) != 1) + abort (); + return 0; +} diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.x b/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.x new file mode 100644 index 00000000000..8e3b5f146f1 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.x @@ -0,0 +1,6 @@ +if [istarget "mips-sgi-irix6*"] { + # IRIX 6 sets the MIPS IV flush to zero bit by default, so this test + # isn't expected to work for n32 and n64 on MIPS IV targets. + return 1 +} +return 0 diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c b/gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c new file mode 100644 index 00000000000..737640bff05 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c @@ -0,0 +1,50 @@ +/* PR rtl-optimization/20290 */ + +/* We used to mis-optimize the second loop in main on at least ppc and + arm, because tree loop would change the loop to something like: + + ivtmp.65 = &l[i]; + ivtmp.16 = 113; + goto <bb 4> (<L4>); + +<L3>:; + *(ivtmp.65 + 4294967292B) = 9; + i = i + 1; + +<L4>:; + ivtmp.16 = ivtmp.16 - 1; + ivtmp.65 = ivtmp.65 + 4B; + if (ivtmp.16 != 0) goto <L3>; + + We used to consider the increment of i as executed in every + iteration, so we'd miscompute the final value. */ + +extern void abort (void); + +void +check (unsigned int *l) +{ + int i; + for (i = 0; i < 288; i++) + if (l[i] != 7 + (i < 256 || i >= 280) + (i >= 144 && i < 256)) + abort (); +} + +int +main (void) +{ + int i; + unsigned int l[288]; + + for (i = 0; i < 144; i++) + l[i] = 8; + for (; i < 256; i++) + l[i] = 9; + for (; i < 280; i++) + l[i] = 7; + for (; i < 288; i++) + l[i] = 8; + check (l); + return 0; +} + diff --git a/gcc/testsuite/gcc.c-torture/execute/medce-2.c b/gcc/testsuite/gcc.c-torture/execute/medce-2.c deleted file mode 100644 index cd83ead2867..00000000000 --- a/gcc/testsuite/gcc.c-torture/execute/medce-2.c +++ /dev/null @@ -1,42 +0,0 @@ - -extern void abort (); - -static int ok = 0; - -int bar(void) -{ - ok |= 1; - return 1; -} - -void bat(void) -{ - ok |= 2; -} - -void baz(void) -{ - ok |= 4; -} - -void foo() -{ - goto lab; - - if (0) - { - if (({lab: bar();})) - bat (); - else - baz (); - } -} - -int main() -{ - foo(); - if (ok != 3) - abort (); - return 0; -} - diff --git a/gcc/testsuite/gcc.c-torture/execute/pr20527-1.c b/gcc/testsuite/gcc.c-torture/execute/pr20527-1.c new file mode 100644 index 00000000000..81162dfebb4 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr20527-1.c @@ -0,0 +1,81 @@ +/* PR rtl-optimization/20527 + Mishandled postincrement. This test-case is derived from the + function BZ2_hbCreateDecodeTables in the file huffman.c from + bzip2-1.0.2, hence requiring the following disclaimer copied here: */ + +/*-- + This file is a part of bzip2 and/or libbzip2, a program and + library for lossless, block-sorting data compression. + + Copyright (C) 1996-2002 Julian R Seward. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + + 3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + + 4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Julian Seward, Cambridge, UK. + jseward@acm.org + bzip2/libbzip2 version 1.0 of 21 March 2000 + + This program is based on (at least) the work of: + Mike Burrows + David Wheeler + Peter Fenwick + Alistair Moffat + Radford Neal + Ian H. Witten + Robert Sedgewick + Jon L. Bentley + + For more information on these sources, see the manual. +--*/ + +void f (long *limit, long *base, long minLen, long maxLen) __attribute__ ((__noinline__)); +void f (long *limit, long *base, long minLen, long maxLen) +{ + long i; + long vec; + vec = 0; + for (i = minLen; i <= maxLen; i++) { + vec += (base[i+1] - base[i]); + limit[i] = vec-1; + } +} +extern void abort (void); +extern void exit (int); +long b[] = {1, 5, 11, 23}; +int main (void) +{ + long l[3]; + f (l, b, 0, 2); + if (l[0] != 3 || l[1] != 9 || l[2] != 21) + abort (); + exit (0); +} diff --git a/gcc/testsuite/gcc.c-torture/execute/pr20601-1.c b/gcc/testsuite/gcc.c-torture/execute/pr20601-1.c new file mode 100644 index 00000000000..7c13c913819 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr20601-1.c @@ -0,0 +1,122 @@ +/* PR tree-optimization/20601 */ +extern void abort (void); +extern void exit (int); + +struct T +{ + char *t1; + char t2[4096]; + char **t3; +}; + +int a[5]; +int b; +char **c; +int d; +char **e; +struct T t; +char *f[16]; +char *g[] = { "a", "-u", "b", "c" }; + +__attribute__ ((__noreturn__)) void +foo (void) +{ + while (1); +} + +__attribute__ ((noinline)) char * +bar (char *x, unsigned int y) +{ + return 0; +} + +static inline char * +baz (char *x, unsigned int y) +{ + if (sizeof (t.t2) != (unsigned int) -1 && y > sizeof (t.t2)) + foo (); + return bar (x, y); +} + +static inline int +setup1 (int x) +{ + char *p; + int rval; + + if (!baz (t.t2, sizeof (t.t2))) + baz (t.t2, sizeof (t.t2)); + + if (x & 0x200) + { + char **h, **i = e; + + ++d; + e = f; + if (t.t1 && *t.t1) + e[0] = t.t1; + else + abort (); + + for (h = e + 1; (*h = *i); ++i, ++h) + ; + } + return 1; +} + +static inline int +setup2 (void) +{ + int j = 1; + + e = c + 1; + d = b - 1; + while (d > 0 && e[0][0] == '-') + { + if (e[0][1] != '\0' && e[0][2] != '\0') + abort (); + + switch (e[0][1]) + { + case 'u': + if (!e[1]) + abort (); + + t.t3 = &e[1]; + d--; + e++; + break; + case 'P': + j |= 0x1000; + break; + case '-': + d--; + e++; + if (j == 1) + j |= 0x600; + return j; + } + d--; + e++; + } + + if (d > 0 && !(j & 1)) + abort (); + + return j; +} + +int +main (void) +{ + int x; + c = g; + b = 4; + x = setup2 (); + t.t1 = "/bin/sh"; + setup1 (x); + /* PRE shouldn't transform x into the constant 0x601 here, it's not legal. */ + if ((x & 0x400) && !a[4]) + abort (); + exit (0); +} diff --git a/gcc/testsuite/gcc.dg/20050307-1.c b/gcc/testsuite/gcc.dg/20050307-1.c new file mode 100644 index 00000000000..0e8dac69a65 --- /dev/null +++ b/gcc/testsuite/gcc.dg/20050307-1.c @@ -0,0 +1,52 @@ +/* PR target/20322 */ + +extern void abort (void); + +typedef unsigned long T; +typedef struct +{ + T a, b; + unsigned char c, d; +} S; + +#define M (sizeof (T) * 4) + +S __attribute__((noinline)) +foo (T x, T y) +{ + S e; + T f[2], g; + + e.b = (x & (~(T) 0 >> M)) * (y & (~(T) 0 >> M)); + e.a = (x >> M) * (y >> M); + + f[0] = (x & (~(T) 0 >> M)) * (y >> M); + f[1] = (x >> M) * (y & (~(T) 0 >> M)); + + g = e.b; + e.b += (f[0] & (~(T) 0 >> M)) << M; + if (e.b < g) + e.a++; + + g = e.b; + e.b += (f[1] & (~(T) 0 >> M)) << M; + if (e.b < g) + e.a++; + + e.a += (f[0] >> M); + e.a += (f[1] >> M); + e.c = 1; + e.d = 0; + + return e; +} + +int +main (void) +{ + T x = 1UL << (M * 2 - 1); + S y = foo (1, x); + if (y.a || y.b != x || y.c != 1 || y.d) + abort (); + return 0; +} diff --git a/gcc/testsuite/gcc.dg/20050309-1.c b/gcc/testsuite/gcc.dg/20050309-1.c new file mode 100644 index 00000000000..413930f86f8 --- /dev/null +++ b/gcc/testsuite/gcc.dg/20050309-1.c @@ -0,0 +1,37 @@ +/* This caused an ICE on s390 due to incorrect secondary + output reloads. */ + +/* { dg-do compile } */ +/* { dg-options "-O2 -fprofile-generate" } */ + +char * +test(char *ret, int *counter, void *schema, + const char* name, const char *namespace, + void *node, int topLevel) +{ + char buf[30]; + int val; + + if (counter == 0) return 0; + if (schema == 0) return 0; + if (name == 0) return 0; + + __builtin_memset (ret, 0, 100); + lookup (schema, name, -1); + val = hash (schema, name, namespace, name, ret); + if (val == 0) return ret; + + if (topLevel != 0) + { + error (1, 0, 0, node, "%s", name); + return 0; + } + + __snprintf_chk (buf, 29, 1, 30, "#eCont %d", ++*counter); + val = hash (schema, name, buf, namespace, ret); + if (val == 0) return ret; + + error (1, 0, 0, node, "%s", name); + return 0; +} + diff --git a/gcc/testsuite/gcc.dg/20050321-1.c b/gcc/testsuite/gcc.dg/20050321-1.c new file mode 100644 index 00000000000..01c68cd5ed9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/20050321-1.c @@ -0,0 +1,26 @@ +/* This caused an ICE on powerpc-linux-gnu due to not + up-to-date life info (PR middle-end/20177). */ + +/* { dg-do compile } */ +/* { dg-options "-O2 -fmodulo-sched" } */ +extern void * malloc (long); + +struct s { + int k; +}; + +int n; +struct s *a1, *(*use)[]; +float (*vector)[]; + +void +foo (float *V) +{ + int i, used = 0; + + vector = malloc (i * sizeof (float)); + while ((*use)[used] != a1) + used += 1; + for (i = 0; i < n; i++) + *V += (*vector)[i]; +} diff --git a/gcc/testsuite/gcc.dg/20050321-2.c b/gcc/testsuite/gcc.dg/20050321-2.c new file mode 100644 index 00000000000..ac3191423b1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/20050321-2.c @@ -0,0 +1,54 @@ +/* This testcase could not assemble on ppc32, because the compiler assumed + the huge ADDR_DIFF_VEC will be emitted into rodata section, yet because + of some notes inserted between jump table's CODE_LABEL and the jump table + it ended up in the .text section and thus shorten_branches couldn't + figure out branch to lab is too far. */ +/* { dg-do link } */ +/* { dg-options "-g1 -fpic" } */ + +#define A(n) \ + case n##1: return n##1 * 131 + 63; \ + case n##3: return n##3 * 1231 + 182; \ + case n##5: return n##5 * 351 + 1; \ + case n##7: return n##7 * 312 + 61; \ + case n##9: return n##9 * 17 - 1; +#define B(n) \ +A(n##0) A(n##1) A(n##2) A(n##3) A(n##4) \ +A(n##5) A(n##6) A(n##7) A(n##8) A(n##9) +#define C(n) \ +B(n##0) B(n##1) B(n##2) B(n##3) B(n##4) \ +B(n##5) B(n##6) B(n##7) B(n##8) B(n##9) +#define D(n) \ +C(n##0) C(n##1) B(n##20) B(n##21) B(n##22) + +int +foo (int x) +{ + { +lab:; + int a = x; + while (a < 60000) + { + int b = a; + { + int c = b; + switch (c) + { + D(1) + default: break; + } + } + a += 10000; + if (a == 4168) + goto lab; + } + } + return x; +} + +int +main (void) +{ + foo (71); + return 0; +} diff --git a/gcc/testsuite/gcc.dg/20050325-1.c b/gcc/testsuite/gcc.dg/20050325-1.c new file mode 100644 index 00000000000..5760e387a22 --- /dev/null +++ b/gcc/testsuite/gcc.dg/20050325-1.c @@ -0,0 +1,19 @@ +/* PR 20249 */ + +/* { dg-do compile } */ +/* { dg-options "-O2 -fprofile-arcs" } */ + +extern int *g (int x, void* y); +extern void fg (long long x, int y); + +static void +ff (int y, long long z) +{ + fg (z, 1); +} + +void +f () +{ + g (42, ff); +} diff --git a/gcc/testsuite/gcc.dg/20050330-1.c b/gcc/testsuite/gcc.dg/20050330-1.c new file mode 100644 index 00000000000..69b5f9dcfe9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/20050330-1.c @@ -0,0 +1,14 @@ +/* This test is a reduced test case for a bug that caused + ICE while bootstrapping with -fmodulo-sched on powerpc-apple-darwin + related to (PR middle-end/20177). */ + +/* { dg-do compile } */ +/* { dg-options "-O2 -fmodulo-sched" } */ + +void +foo ( const char *bytes, int len , char *buf) +{ + int i; + for ( i = 0; i < len; ++i ) + buf[i] = bytes[i]; +} diff --git a/gcc/testsuite/gcc.dg/20050409-1.c b/gcc/testsuite/gcc.dg/20050409-1.c new file mode 100644 index 00000000000..be85f71a6b7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/20050409-1.c @@ -0,0 +1,18 @@ +/* This used to ICE due to a regmove problem on s390. */ + +/* { dg-do compile { target s390*-*-* } } */ +/* { dg-options "-O2" } */ + + +extern void abort (void); +extern void **alloc (void); + +void *test (void) +{ + void **p = alloc (); + if (!p) abort (); + + __builtin_set_thread_pointer (p); + return *p; +} + diff --git a/gcc/testsuite/gcc.dg/alias-3.c b/gcc/testsuite/gcc.dg/alias-3.c new file mode 100644 index 00000000000..3dc25a91c49 --- /dev/null +++ b/gcc/testsuite/gcc.dg/alias-3.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-require-alias "" } */ +/* { dg-options "" } */ + +extern int foo(); + +int baz () { return foo(); } + +static inline int bar () __attribute__ ((alias ("foo"))); /* { dg-error "aliased to" } */ + +int main () { return bar (); } diff --git a/gcc/testsuite/gcc.dg/alias-4.c b/gcc/testsuite/gcc.dg/alias-4.c new file mode 100644 index 00000000000..0a2633932ef --- /dev/null +++ b/gcc/testsuite/gcc.dg/alias-4.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-require-alias "" } */ +/* { dg-options "-O2 -funit-at-a-time" } */ + +extern int foo(); + +int baz () { return foo(); } + +static inline int bar () __attribute__ ((alias ("foo"))); /* { dg-error "aliased to" } */ + +int main () { return bar (); } diff --git a/gcc/testsuite/gcc.dg/alias-5.c b/gcc/testsuite/gcc.dg/alias-5.c new file mode 100644 index 00000000000..56848c9a416 --- /dev/null +++ b/gcc/testsuite/gcc.dg/alias-5.c @@ -0,0 +1,7 @@ +/* { dg-do link } */ +/* { dg-require-alias "" } */ +/* { dg-options "" } */ + +static inline int foo () { return 0; } +static int bar () __attribute__ ((alias ("foo"))); +int main () { return bar (); } diff --git a/gcc/testsuite/gcc.dg/alias-6.c b/gcc/testsuite/gcc.dg/alias-6.c new file mode 100644 index 00000000000..3ba101aa1b4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/alias-6.c @@ -0,0 +1,7 @@ +/* { dg-do link } */ +/* { dg-require-alias "" } */ +/* { dg-options "-O2 -funit-at-a-time" } */ + +static inline int foo () { return 0; } +static int bar () __attribute__ ((alias ("foo"))); +int main () { return bar (); } diff --git a/gcc/testsuite/gcc.dg/alias-7.c b/gcc/testsuite/gcc.dg/alias-7.c new file mode 100644 index 00000000000..697497021f1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/alias-7.c @@ -0,0 +1,16 @@ +/* { dg-do run } */ +/* { dg-require-alias "" } */ +/* { dg-options "-O2" } */ + +extern void abort (void); + +int foo __asm__ ("foo") __attribute__((nocommon)); +extern __typeof (foo) bar __attribute__ ((weak, alias ("foo"))); + +int +main (void) +{ + if (&foo != &bar || foo || bar) + abort (); + return bar; +} diff --git a/gcc/testsuite/gcc.dg/anon-struct-6.c b/gcc/testsuite/gcc.dg/anon-struct-6.c index a2042176c03..ad961c62aea 100644 --- a/gcc/testsuite/gcc.dg/anon-struct-6.c +++ b/gcc/testsuite/gcc.dg/anon-struct-6.c @@ -9,4 +9,4 @@ struct s { const; }; /* { dg-warning "warning: useless type qualifier in empty declaration" "empty" { target *-*-* } 9 } */ -/* { dg-warning "warning: empty declaration" "empty" { target *-*-* } 9 } */ +/* { dg-warning "warning: empty declaration" "empty 2" { target *-*-* } 9 } */ diff --git a/gcc/testsuite/gcc.dg/array-8.c b/gcc/testsuite/gcc.dg/array-8.c index 6d0a211461b..44b757b70df 100644 --- a/gcc/testsuite/gcc.dg/array-8.c +++ b/gcc/testsuite/gcc.dg/array-8.c @@ -43,7 +43,7 @@ g (void) pv[0]; /* { dg-warning "warning: dereferencing 'void \\*' pointer" } */ 0[pv]; /* { dg-warning "warning: dereferencing 'void \\*' pointer" } */ sip[0]; /* { dg-error "error: invalid use of undefined type 'struct si'" } */ - /* { dg-error "error: dereferencing pointer to incomplete type" "" { target *-*-* } 45 } */ + /* { dg-error "error: dereferencing pointer to incomplete type" "incomplete" { target *-*-* } 45 } */ 0[sip]; /* { dg-error "error: invalid use of undefined type 'struct si'" } */ - /* { dg-error "error: dereferencing pointer to incomplete type" "" { target *-*-* } 47 } */ + /* { dg-error "error: dereferencing pointer to incomplete type" "incomplete" { target *-*-* } 47 } */ } diff --git a/gcc/testsuite/gcc.dg/asm-b.c b/gcc/testsuite/gcc.dg/asm-b.c new file mode 100644 index 00000000000..ce68cabe300 --- /dev/null +++ b/gcc/testsuite/gcc.dg/asm-b.c @@ -0,0 +1,39 @@ +/* { dg-do run { target powerpc-*-* i?386-*-* x86_64-*-* } } */ +/* { dg-options "-O1" } */ +/* Test to make sure that inline-asm causes the tree optimizators get the + V_MAY_DEFs and clober memory. */ +/* Test from Jakub Jelinek, modified by Andrew Pinski to work on all powerpc targets. */ +extern void abort (void); + +unsigned short v = 0x0300; + +void +foo (unsigned short *p) +{ + *p = v; +} + +int +bar (void) +{ + unsigned short x; + volatile unsigned short *z; + foo (&x); + const unsigned int y = x; + z = &x; +#if defined (__powerpc__) || defined (__PPC__) || defined (__ppc__) || defined (_POWER) + __asm __volatile ("sthbrx %1,0,%2" : "=m" (*z) : "r" (y), "r" (z)); +#elif defined __i386__ || defined __x86_64__ + __asm __volatile ("movb %b1,1(%2); movb %h1,(%2)" : "=m" (*z) : "r" (y), "r" +(z)); +#endif + return (x & 1) == 0; +} + +int +main (void) +{ + if (bar ()) + abort (); + return 0; +} diff --git a/gcc/testsuite/gcc.dg/bitfld-14.c b/gcc/testsuite/gcc.dg/bitfld-14.c new file mode 100644 index 00000000000..eca0b03def0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/bitfld-14.c @@ -0,0 +1,11 @@ +/* Test for non-integer bit-field widths. */ +/* Origin: Joseph Myers <joseph@codesourcery.com> */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +enum e { E, F }; +struct s { + int a : (void *)4; /* { dg-error "error: bit-field 'a' width not an integer constant" } */ + int b : (enum e)F; + int c : (_Bool)1; +}; diff --git a/gcc/testsuite/gcc.dg/builtin-apply4.c b/gcc/testsuite/gcc.dg/builtin-apply4.c new file mode 100644 index 00000000000..289694e3c1b --- /dev/null +++ b/gcc/testsuite/gcc.dg/builtin-apply4.c @@ -0,0 +1,30 @@ +/* PR tree-optimization/20076 */ +/* { dg-options "-O2" } */ +/* { dg-do run } */ + +extern void abort (void); + +double +foo (int arg) +{ + if (arg != 116) + abort(); + return arg + 1; +} + +inline double +bar (int arg) +{ + foo (arg); + __builtin_return (__builtin_apply ((void (*) ()) foo, + __builtin_apply_args (), 16)); +} + +int +main (int argc, char **argv) +{ + if (bar (116) != 117.0) + abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/cpp/19940712-1.c b/gcc/testsuite/gcc.dg/cpp/19940712-1.c index 5b4ac8b722c..d5ed88973e3 100644 --- a/gcc/testsuite/gcc.dg/cpp/19940712-1.c +++ b/gcc/testsuite/gcc.dg/cpp/19940712-1.c @@ -3,7 +3,7 @@ /* dg.exp doesn't read the header files for magic comments. */ /* { dg-error "unterminated comment" "" { target *-*-* } 4 } */ -/* { dg-error "unterminated comment" "" { target *-*-* } 8 } */ +/* { dg-error "unterminated comment" "header error" { target *-*-* } 8 } */ #include "19940712-1.h" /* { dg-error "" } // In file included from: */ #include "19940712-1a.h" /* { dg-error "" } // In file included from: */ diff --git a/gcc/testsuite/gcc.dg/cpp/19951025-1.c b/gcc/testsuite/gcc.dg/cpp/19951025-1.c index 283b5f53f1a..b817b68c8ae 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" "" { target *-*-* } 4 } */ -/* { dg-error "newline at end" "" { target *-*-* } 4 } */ +/* { dg-error "include expects" "include" { target *-*-* } 4 } */ +/* { dg-error "newline at end" "newline" { target *-*-* } 4 } */ #include /\ diff --git a/gcc/testsuite/gcc.dg/cpp/assert4.c b/gcc/testsuite/gcc.dg/cpp/assert4.c index 99b304f2455..023bb50cdeb 100644 --- a/gcc/testsuite/gcc.dg/cpp/assert4.c +++ b/gcc/testsuite/gcc.dg/cpp/assert4.c @@ -78,7 +78,7 @@ # error #endif -#if defined __unix__ || defined _AIX +#if ( defined __unix__ && !defined __CYGWIN__ ) || defined _AIX # if !#system(unix) # error # endif @@ -118,7 +118,7 @@ # error #endif -#if defined __WINNT__ +#if defined __WINNT__ || defined __CYGWIN__ # if !#system(winnt) # error # endif diff --git a/gcc/testsuite/gcc.dg/cpp/macspace1.c b/gcc/testsuite/gcc.dg/cpp/macspace1.c new file mode 100644 index 00000000000..ddd62c743b9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/macspace1.c @@ -0,0 +1,61 @@ +/* PR preprocessor/19475 */ +/* { dg-do preprocess } */ +/* { dg-options "-std=iso9899:1990 -pedantic-errors -fno-show-column" } */ + +#define a! /* { dg-warning "missing whitespace" } */ +#define b" /* { dg-warning "missing whitespace" } */ +#define c# /* { dg-warning "missing whitespace" } */ +#define d% /* { dg-warning "missing whitespace" } */ +#define e& /* { dg-warning "missing whitespace" } */ +#define f' /* { dg-warning "missing whitespace" } */ +#define g) /* { dg-warning "missing whitespace" } */ +#define h* /* { dg-warning "missing whitespace" } */ +#define i+ /* { dg-warning "missing whitespace" } */ +#define j, /* { dg-warning "missing whitespace" } */ +#define k- /* { dg-warning "missing whitespace" } */ +#define l. /* { dg-warning "missing whitespace" } */ +#define m/ /* { dg-warning "missing whitespace" } */ +#define n: /* { dg-warning "missing whitespace" } */ +#define o; /* { dg-warning "missing whitespace" } */ +#define p< /* { dg-warning "missing whitespace" } */ +#define q= /* { dg-warning "missing whitespace" } */ +#define r> /* { dg-warning "missing whitespace" } */ +#define s? /* { dg-warning "missing whitespace" } */ +#define t[ /* { dg-warning "missing whitespace" } */ +#define u] /* { dg-warning "missing whitespace" } */ +#define v^ /* { dg-warning "missing whitespace" } */ +#define w{ /* { dg-warning "missing whitespace" } */ +#define x| /* { dg-warning "missing whitespace" } */ +#define y} /* { dg-warning "missing whitespace" } */ +#define z~ /* { dg-warning "missing whitespace" } */ +#define A>> /* { dg-warning "missing whitespace" } */ +#define B<< /* { dg-warning "missing whitespace" } */ +#define E&& /* { dg-warning "missing whitespace" } */ +#define F|| /* { dg-warning "missing whitespace" } */ +#define G== /* { dg-warning "missing whitespace" } */ +#define H!= /* { dg-warning "missing whitespace" } */ +#define I>= /* { dg-warning "missing whitespace" } */ +#define J<= /* { dg-warning "missing whitespace" } */ +#define K+= /* { dg-warning "missing whitespace" } */ +#define L-= /* { dg-warning "missing whitespace" } */ +#define M*= /* { dg-warning "missing whitespace" } */ +#define N/= /* { dg-warning "missing whitespace" } */ +#define O%= /* { dg-warning "missing whitespace" } */ +#define P&= /* { dg-warning "missing whitespace" } */ +#define Q|= /* { dg-warning "missing whitespace" } */ +#define R^= /* { dg-warning "missing whitespace" } */ +#define S>>= /* { dg-warning "missing whitespace" } */ +#define T<<= /* { dg-warning "missing whitespace" } */ +#define W... /* { dg-warning "missing whitespace" } */ +#define X++ /* { dg-warning "missing whitespace" } */ +#define Y-- /* { dg-warning "missing whitespace" } */ +#define Z-> /* { dg-warning "missing whitespace" } */ +#define aa:: /* { dg-warning "missing whitespace" } */ +#define ab->* /* { dg-warning "missing whitespace" } */ +#define ac.* /* { dg-warning "missing whitespace" } */ +#define ad\x /* { dg-warning "missing whitespace" } */ +#define ae\\x /* { dg-warning "missing whitespace" } */ +#define af'1' /* { dg-warning "missing whitespace" } */ +#define ag"abc" /* { dg-warning "missing whitespace" } */ + +int dummy; diff --git a/gcc/testsuite/gcc.dg/cpp/macspace2.c b/gcc/testsuite/gcc.dg/cpp/macspace2.c new file mode 100644 index 00000000000..21576fa22fa --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/macspace2.c @@ -0,0 +1,61 @@ +/* PR preprocessor/19475 */ +/* { dg-do preprocess } */ +/* { dg-options "-std=iso9899:1999 -pedantic-errors -fno-show-column" } */ + +#define a! /* { dg-error "requires whitespace" } */ +#define b" /* { dg-error "requires whitespace" } */ +#define c# /* { dg-error "requires whitespace" } */ +#define d% /* { dg-error "requires whitespace" } */ +#define e& /* { dg-error "requires whitespace" } */ +#define f' /* { dg-error "requires whitespace" } */ +#define g) /* { dg-error "requires whitespace" } */ +#define h* /* { dg-error "requires whitespace" } */ +#define i+ /* { dg-error "requires whitespace" } */ +#define j, /* { dg-error "requires whitespace" } */ +#define k- /* { dg-error "requires whitespace" } */ +#define l. /* { dg-error "requires whitespace" } */ +#define m/ /* { dg-error "requires whitespace" } */ +#define n: /* { dg-error "requires whitespace" } */ +#define o; /* { dg-error "requires whitespace" } */ +#define p< /* { dg-error "requires whitespace" } */ +#define q= /* { dg-error "requires whitespace" } */ +#define r> /* { dg-error "requires whitespace" } */ +#define s? /* { dg-error "requires whitespace" } */ +#define t[ /* { dg-error "requires whitespace" } */ +#define u] /* { dg-error "requires whitespace" } */ +#define v^ /* { dg-error "requires whitespace" } */ +#define w{ /* { dg-error "requires whitespace" } */ +#define x| /* { dg-error "requires whitespace" } */ +#define y} /* { dg-error "requires whitespace" } */ +#define z~ /* { dg-error "requires whitespace" } */ +#define A>> /* { dg-error "requires whitespace" } */ +#define B<< /* { dg-error "requires whitespace" } */ +#define E&& /* { dg-error "requires whitespace" } */ +#define F|| /* { dg-error "requires whitespace" } */ +#define G== /* { dg-error "requires whitespace" } */ +#define H!= /* { dg-error "requires whitespace" } */ +#define I>= /* { dg-error "requires whitespace" } */ +#define J<= /* { dg-error "requires whitespace" } */ +#define K+= /* { dg-error "requires whitespace" } */ +#define L-= /* { dg-error "requires whitespace" } */ +#define M*= /* { dg-error "requires whitespace" } */ +#define N/= /* { dg-error "requires whitespace" } */ +#define O%= /* { dg-error "requires whitespace" } */ +#define P&= /* { dg-error "requires whitespace" } */ +#define Q|= /* { dg-error "requires whitespace" } */ +#define R^= /* { dg-error "requires whitespace" } */ +#define S>>= /* { dg-error "requires whitespace" } */ +#define T<<= /* { dg-error "requires whitespace" } */ +#define W... /* { dg-error "requires whitespace" } */ +#define X++ /* { dg-error "requires whitespace" } */ +#define Y-- /* { dg-error "requires whitespace" } */ +#define Z-> /* { dg-error "requires whitespace" } */ +#define aa:: /* { dg-error "requires whitespace" } */ +#define ab->* /* { dg-error "requires whitespace" } */ +#define ac.* /* { dg-error "requires whitespace" } */ +#define ad\x /* { dg-error "requires whitespace" } */ +#define ae\\x /* { dg-error "requires whitespace" } */ +#define af'1' /* { dg-error "requires whitespace" } */ +#define ag"abc" /* { dg-error "requires whitespace" } */ + +int dummy; diff --git a/gcc/testsuite/gcc.dg/cpp/tr-warn6.c b/gcc/testsuite/gcc.dg/cpp/tr-warn6.c index 5c94e4ca14a..e9aa851d041 100644 --- a/gcc/testsuite/gcc.dg/cpp/tr-warn6.c +++ b/gcc/testsuite/gcc.dg/cpp/tr-warn6.c @@ -13,7 +13,7 @@ #define foo7(AA, hello, world, EEE) sdf "A B hello C,world,DhelloE F" fds EEE /* { dg-warning "macro argument \"hello\" would be stringified" "traditional stringification" } */ /* Catch the second warning from the above line. */ -/* { dg-warning "macro argument \"world\" would be stringified" "traditional stringification" { target *-*-* } 13 } */ +/* { dg-warning "macro argument \"world\" would be stringified" "traditional stringification second warning" { target *-*-* } 13 } */ # 19 "sys-header.h" 3 /* We are in system headers now, no -Wtraditional warnings should issue. */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c new file mode 100644 index 00000000000..45e93737283 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c @@ -0,0 +1,13 @@ +/* Test to make sure the mcaro info includes a start file command for the main source */ +/* { dg-do compile */ +/* { dg-options "-g3 -gdwarf-2 -dA -fverbose-asm" } */ +/* { dg-final { scan-assembler "Start new file" } } */ + +#define ADD(x) (M + x) + +int main (void) +{ +#define N 28 +#define M 42 + return ADD(N); +} diff --git a/gcc/testsuite/gcc.dg/deprecated.c b/gcc/testsuite/gcc.dg/deprecated.c index 1e07efe6314..6ca95d42a74 100644 --- a/gcc/testsuite/gcc.dg/deprecated.c +++ b/gcc/testsuite/gcc.dg/deprecated.c @@ -53,10 +53,10 @@ 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" "" { target *-*-* } 55 } */ - /* { dg-warning "'g2' is deprecated" "" { target *-*-* } 55 } */ - /* { dg-warning "'g3' is deprecated" "" { target *-*-* } 55 } */ - return f1(); /* { dg-warning "'f1' 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 } */ + return f1(); /* { dg-warning "'f1' is deprecated" "f1" } */ } int func2(S1 *p) @@ -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" "" { target *-*-* } 73 } */ + /* { dg-warning "'field8' is deprecated" "field8" { target *-*-* } 73 } */ } struct SS1 { diff --git a/gcc/testsuite/gcc.dg/enum3.c b/gcc/testsuite/gcc.dg/enum3.c new file mode 100644 index 00000000000..ba3c1da15e3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/enum3.c @@ -0,0 +1,11 @@ +/* Test for non-integer enum values. */ +/* Origin: Joseph Myers <joseph@codesourcery.com> */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +enum e { E, F }; +enum e2 { + E1 = (void *)4, /* { dg-error "error: enumerator value for 'E1' is not an integer constant" } */ + E2 = (enum e)F, + E3 = (_Bool)1 +}; diff --git a/gcc/testsuite/gcc.dg/i386-387-7.c b/gcc/testsuite/gcc.dg/i386-387-7.c index 210917ad415..1a40cd719d8 100644 --- a/gcc/testsuite/gcc.dg/i386-387-7.c +++ b/gcc/testsuite/gcc.dg/i386-387-7.c @@ -1,5 +1,6 @@ /* Verify that 387 fsincos instruction is generated. */ /* { dg-do compile { target "i?86-*-*" } } */ +/* { dg-require-effective-target ilp32 } */ /* { dg-options "-O -ffast-math -march=i686" } */ /* { dg-final { scan-assembler "fsincos" } } */ diff --git a/gcc/testsuite/gcc.dg/i386-3dnowA-1.c b/gcc/testsuite/gcc.dg/i386-3dnowA-1.c index 2ae1a04d5cb..b5327b3d9ec 100644 --- a/gcc/testsuite/gcc.dg/i386-3dnowA-1.c +++ b/gcc/testsuite/gcc.dg/i386-3dnowA-1.c @@ -1,4 +1,5 @@ /* { dg-do assemble { target i?86-*-* } } */ +/* { dg-require-effective-target ilp32 } */ /* { dg-options "-O2 -Werror-implicit-function-declaration -m3dnow -march=athlon" } */ /* Test that the intrinsics compile with optimization. All of them are diff --git a/gcc/testsuite/gcc.dg/i386-3dnowA-2.c b/gcc/testsuite/gcc.dg/i386-3dnowA-2.c index d8ed6cb4c4d..ea336af4147 100644 --- a/gcc/testsuite/gcc.dg/i386-3dnowA-2.c +++ b/gcc/testsuite/gcc.dg/i386-3dnowA-2.c @@ -1,4 +1,5 @@ /* { dg-do assemble { target i?86-*-* } } */ +/* { dg-require-effective-target ilp32 } */ /* { dg-options "-O0 -Werror-implicit-function-declaration -m3dnow -march=athlon" } */ /* Test that the intrinsics compile without optimization. All of them are diff --git a/gcc/testsuite/gcc.dg/init-bad-1.c b/gcc/testsuite/gcc.dg/init-bad-1.c index 7f20b8cbb0a..1fa1bfb2d82 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 "error: parameter 'a' is initialized" } */ { struct s x = { 0 }; /* { dg-error "error: variable 'x' has initializer but incomplete type" } */ - /* { dg-warning "excess elements|near init" "" { target *-*-* } 12 } */ - /* { dg-error "storage size" "" { target *-*-* } 12 } */ + /* { dg-warning "excess elements|near init" "excess" { target *-*-* } 12 } */ + /* { dg-error "storage size" "size" { target *-*-* } 12 } */ } char s[1] = "x"; @@ -19,27 +19,27 @@ char s1[1] = { "x" }; char t[1] = "xy"; /* { dg-warning "warning: initializer-string for array of chars is too long" } */ char t1[1] = { "xy" }; /* { dg-warning "warning: initializer-string for array of chars is too long" } */ char u[1] = { "x", "x" }; /* { dg-error "error: excess elements in char array initializer" } */ -/* { dg-error "near init" "" { target *-*-* } 21 } */ +/* { dg-error "near init" "near" { target *-*-* } 21 } */ int i = { }; /* { dg-error "error: empty scalar initializer" } */ -/* { dg-error "near init" "" { target *-*-* } 24 } */ +/* { dg-error "near init" "near" { target *-*-* } 24 } */ int j = { 1 }; int k = { 1, 2 }; /* { dg-warning "warning: excess elements in scalar initializer" } */ -/* { dg-warning "near init" "" { target *-*-* } 29 } */ +/* { dg-warning "near init" "near" { target *-*-* } 29 } */ int a1[1] = { [1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */ -/* { dg-error "near init" "" { target *-*-* } 32 } */ +/* { dg-error "near init" "near" { target *-*-* } 32 } */ int a2[1] = { [-1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */ -/* { dg-error "near init" "" { target *-*-* } 34 } */ +/* { dg-error "near init" "near" { target *-*-* } 34 } */ int a3[1] = { [0 ... 1] = 0 }; /* { dg-error "error: array index range in initializer exceeds array bounds" } */ -/* { dg-error "near init" "" { target *-*-* } 36 } */ +/* { dg-error "near init" "near" { target *-*-* } 36 } */ int a4[2] = { [1 ... 0] = 0 }; /* { dg-error "error: empty index range in initializer" } */ -/* { dg-error "near init" "" { target *-*-* } 38 } */ +/* { dg-error "near init" "near" { target *-*-* } 38 } */ int a5[2] = { [0 ... 2] = 0 }; /* { dg-error "error: array index range in initializer exceeds array bounds" } */ -/* { dg-error "near init" "" { target *-*-* } 40 } */ +/* { dg-error "near init" "near" { target *-*-* } 40 } */ int a6[2] = { [-1 ... 1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */ -/* { dg-error "near init" "" { target *-*-* } 42 } */ +/* { dg-error "near init" "near" { target *-*-* } 42 } */ int a7[] = { [-1 ... 1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */ -/* { dg-error "near init" "" { target *-*-* } 44 } */ +/* { dg-error "near init" "near" { target *-*-* } 44 } */ diff --git a/gcc/testsuite/gcc.dg/init-bad-2.c b/gcc/testsuite/gcc.dg/init-bad-2.c index 794cc412db3..23387e500f0 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 "error: parameter 'a' is initialized" } */ { struct s x = { 0 }; /* { dg-error "error: variable 'x' has initializer but incomplete type" } */ - /* { dg-warning "excess elements|near init" "" { target *-*-* } 13 } */ - /* { dg-error "storage size" "" { target *-*-* } 13 } */ + /* { dg-warning "excess elements|near init" "near" { target *-*-* } 13 } */ + /* { dg-error "storage size" "size" { target *-*-* } 13 } */ } char s[1] = "x"; @@ -20,14 +20,14 @@ char s1[1] = { "x" }; char t[1] = "xy"; /* { dg-warning "warning: initializer-string for array of chars is too long" } */ char t1[1] = { "xy" }; /* { dg-warning "warning: initializer-string for array of chars is too long" } */ char u[1] = { "x", "x" }; /* { dg-error "error: excess elements in char array initializer" } */ -/* { dg-error "near init" "" { target *-*-* } 22 } */ +/* { dg-error "near init" "near" { target *-*-* } 22 } */ int j = { 1 }; int k = { 1, 2 }; /* { dg-warning "warning: excess elements in scalar initializer" } */ -/* { dg-warning "near init" "" { target *-*-* } 27 } */ +/* { dg-warning "near init" "near" { target *-*-* } 27 } */ int a1[1] = { [1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */ -/* { dg-error "near init" "" { target *-*-* } 30 } */ +/* { dg-error "near init" "near" { target *-*-* } 30 } */ int a2[1] = { [-1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */ -/* { dg-error "near init" "" { target *-*-* } 32 } */ +/* { dg-error "near init" "near" { target *-*-* } 32 } */ diff --git a/gcc/testsuite/gcc.dg/init-bad-3.c b/gcc/testsuite/gcc.dg/init-bad-3.c index aed3d35a49f..bb149823dc1 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 "error: parameter 'a' is initialized" } */ { struct s x = { 0 }; /* { dg-error "error: variable 'x' has initializer but incomplete type" } */ - /* { dg-error "excess elements|near init" "" { target *-*-* } 13 } */ - /* { dg-error "storage size" "" { target *-*-* } 13 } */ + /* { dg-error "excess elements|near init" "near" { target *-*-* } 13 } */ + /* { dg-error "storage size" "size" { target *-*-* } 13 } */ } char s[1] = "x"; @@ -20,14 +20,14 @@ char s1[1] = { "x" }; char t[1] = "xy"; /* { dg-error "error: initializer-string for array of chars is too long" } */ char t1[1] = { "xy" }; /* { dg-error "error: initializer-string for array of chars is too long" } */ char u[1] = { "x", "x" }; /* { dg-error "error: excess elements in char array initializer" } */ -/* { dg-error "near init" "" { target *-*-* } 22 } */ +/* { dg-error "near init" "near" { target *-*-* } 22 } */ int j = { 1 }; int k = { 1, 2 }; /* { dg-error "error: excess elements in scalar initializer" } */ -/* { dg-error "near init" "" { target *-*-* } 27 } */ +/* { dg-error "near init" "near" { target *-*-* } 27 } */ int a1[1] = { [1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */ -/* { dg-error "near init" "" { target *-*-* } 30 } */ +/* { dg-error "near init" "near" { target *-*-* } 30 } */ int a2[1] = { [-1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */ -/* { dg-error "near init" "" { target *-*-* } 32 } */ +/* { dg-error "near init" "near" { target *-*-* } 32 } */ diff --git a/gcc/testsuite/gcc.dg/loop-3.c b/gcc/testsuite/gcc.dg/loop-3.c index 3cc6643e15d..f7ceaddb899 100644 --- a/gcc/testsuite/gcc.dg/loop-3.c +++ b/gcc/testsuite/gcc.dg/loop-3.c @@ -3,7 +3,7 @@ /* { dg-do compile } */ /* { dg-options "-O3" } */ -/* { dg-options "-O3 -mtune=i386" { target i?86-*-* } } */ +/* { dg-options "-O3 -mtune=i386" { target { i?86-*-* && ilp32 } } } */ #if defined(STACK_SIZE) && (STACK_SIZE < 65536) # define BYTEMEM_SIZE 10000L diff --git a/gcc/testsuite/gcc.dg/m-un-2.c b/gcc/testsuite/gcc.dg/m-un-2.c index d957f868405..0d280bb5793 100644 --- a/gcc/testsuite/gcc.dg/m-un-2.c +++ b/gcc/testsuite/gcc.dg/m-un-2.c @@ -16,7 +16,7 @@ struct vtable mtable = { malloc, free }; /* { dg-warning "missing initializer" "warning regression" { target *-*-* } {18} } */ - /* { dg-warning "initialization for 'mtable._realloc'" "warning regression" { target *-*-* } {18} } */ + /* { dg-warning "initialization for 'mtable._realloc'" "warning regression 2" { target *-*-* } {18} } */ /* With designated initializers, we assume you meant to leave out the initialization of any blank fields. */ diff --git a/gcc/testsuite/gcc.dg/old-style-then-proto-1.c b/gcc/testsuite/gcc.dg/old-style-then-proto-1.c new file mode 100644 index 00000000000..abe02d06378 --- /dev/null +++ b/gcc/testsuite/gcc.dg/old-style-then-proto-1.c @@ -0,0 +1,44 @@ +/* Test for old-style definition followed by prototype declaration. + Mismatched qualifiers used to be wrongly forbidden. */ +/* Origin: Joseph Myers <joseph@codesourcery.com> */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +void f1() {} +void f1(void); /* { dg-warning "warning: prototype for 'f1' follows non-prototype definition" } */ + +void f2() {} /* { dg-error "error: previous definition of 'f2' was here" } */ +void f2(int); /* { dg-error "error: prototype for 'f2' declares more arguments than previous old-style definition" } */ + +void f3(a) int a; {} /* { dg-error "error: previous definition of 'f3' was here" } */ +void f3(void); /* { dg-error "error: prototype for 'f3' declares fewer arguments than previous old-style definition" } */ + +void f4(a) int a; {} +void f4(int); /* { dg-warning "warning: prototype for 'f4' follows non-prototype definition" } */ + +void f5(a) int a; {} /* { dg-error "error: previous definition of 'f5' was here" } */ +void f5(int, int); /* { dg-error "error: prototype for 'f5' declares more arguments than previous old-style definition" } */ + +void f6(a) int a; {} /* { dg-error "error: previous definition of 'f6' was here" } */ +void f6(int, ...); /* { dg-error "error: conflicting types for 'f6'" } */ + +void f7(a, b) int a, b; {} /* { dg-error "error: previous definition of 'f7' was here" } */ +void f7(int); /* { dg-error "error: prototype for 'f7' declares fewer arguments than previous old-style definition" } */ + +void f8(a, b) int a, b; {} /* { dg-error "error: previous definition of 'f8' was here" } */ +void f8(int, ...); /* { dg-error "error: conflicting types for 'f8'" } */ + +void f9(a, b) int a, b; {} +void f9(int, int); /* { dg-warning "warning: prototype for 'f9' follows non-prototype definition" } */ + +void f10(a, b) int a, b; {} /* { dg-error "error: previous definition of 'f10' was here" } */ +void f10(int, long); /* { dg-error "error: prototype for 'f10' declares argument 2 with incompatible type" } */ + +void f11(a, b) int a, b; {} /* { dg-error "error: previous definition of 'f11' was here" } */ +void f11(long, int); /* { dg-error "error: prototype for 'f11' declares argument 1 with incompatible type" } */ + +void f12(a, b) const int a; volatile int b; {} +void f12(volatile int, const int); /* { dg-warning "warning: prototype for 'f12' follows non-prototype definition" } */ + +void f13(a) const int a[2][2]; {} /* { dg-error "error: previous definition of 'f13' was here" } */ +void f13(volatile int [2][2]); /* { dg-error "error: prototype for 'f13' declares argument 1 with incompatible type" } */ diff --git a/gcc/testsuite/gcc.dg/parm-mismatch-1.c b/gcc/testsuite/gcc.dg/parm-mismatch-1.c index 59d9447b2e0..6b82b7be1b2 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-error "error: previous declaration of 'f0' was here" } */ void f0(int, ...); /* { dg-error "error: conflicting types for 'f0'" } */ -/* { dg-error "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "" { target *-*-* } 8 } */ +/* { dg-error "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "note" { target *-*-* } 8 } */ void f1(int, ...); /* { dg-error "error: previous declaration of 'f1' was here" } */ void f1(); /* { dg-error "error: conflicting types for 'f1'" } */ -/* { dg-error "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "" { target *-*-* } 11 } */ +/* { dg-error "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "note" { target *-*-* } 11 } */ void f2(); /* { dg-error "error: previous declaration of 'f2' was here" } */ void f2(char); /* { dg-error "error: conflicting types for 'f2'" } */ -/* { dg-error "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "" { target *-*-* } 14 } */ +/* { dg-error "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "note" { target *-*-* } 14 } */ void f3(char); /* { dg-error "error: previous declaration of 'f3' was here" } */ void f3(); /* { dg-error "error: conflicting types for 'f3'" } */ -/* { dg-error "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "" { target *-*-* } 17 } */ +/* { dg-error "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "note" { target *-*-* } 17 } */ diff --git a/gcc/testsuite/gcc.dg/pr12092-1.c b/gcc/testsuite/gcc.dg/pr12092-1.c index 8f38a4a7f46..1b29452881f 100644 --- a/gcc/testsuite/gcc.dg/pr12092-1.c +++ b/gcc/testsuite/gcc.dg/pr12092-1.c @@ -1,6 +1,7 @@ /* PR rtl-optimization/12092 */ /* Test case reduced by Andrew Pinski <pinskia@physics.uc.edu> */ /* { dg-do compile { target i?86-*-* } } */ +/* { dg-require-effective-target ilp32 } */ /* { dg-options "-O2 -mtune=i486 -march=pentium4 -fprefetch-loop-arrays" } */ void DecodeAC(int index,int *matrix) diff --git a/gcc/testsuite/gcc.dg/pr18628.c b/gcc/testsuite/gcc.dg/pr18628.c new file mode 100644 index 00000000000..d365075b729 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr18628.c @@ -0,0 +1,31 @@ +/* { dg-do link } */ +/* { dg-options "-O2" } */ + +/* PR middle-end/18628 exposed a problem in which cse folded a load + from a jump table into the label that was the target of the branch. + Unfortunately, the indirect jump was moved to a different basic + block, and the LABEL_REF copied to the register wasn't enough to + keep the cfg from optimizing the otherwise-unused label away. So + we ended up with a dangling reference to the label. */ + +int i; + +int main() +{ + for (;;) + { + switch (i) + { + case 0: + case 1: + return 1; + + case 2: + case 3: + return 0; + + case 5: + --i; + } + } +} diff --git a/gcc/testsuite/gcc.dg/pr19345.c b/gcc/testsuite/gcc.dg/pr19345.c new file mode 100644 index 00000000000..40c6de4d836 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr19345.c @@ -0,0 +1,12 @@ +/* We shouldn't crash trying to produce the inlined structure type die debug info. */ +/* { dg-do compile } */ +/* { dg-options "-O1 -g" } */ +inline void bar(char a[], unsigned int l) +{ + asm volatile ("" :: "m" ( *(struct {char x[l]; } *)a)); +} + +void foo(void) +{ + bar (0, 0); +} diff --git a/gcc/testsuite/gcc.dg/pr20204.c b/gcc/testsuite/gcc.dg/pr20204.c new file mode 100644 index 00000000000..ad85af5baa3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr20204.c @@ -0,0 +1,34 @@ +/* { dg-do run { target i?86-*-* } } */ +/* { dg-options "-O2" } */ + +void *x (void *pdst, const void *psrc, unsigned int pn) +{ + register void *return_dst = pdst; + register unsigned char *dst = pdst; + register unsigned const char *src = psrc; + register int n __asm__ ("ebx") = pn; + + if (src < dst && dst < src + n) + { + src += n; + dst += n; + while (n--) + *--dst = *--src; + return return_dst; + } + + while (n >= 16) n--; + + return return_dst; +} +extern void abort (); +extern void exit (int); +char xx[30] = "abc"; +int main (void) +{ + char yy[30] = "aab"; + + if (x (xx + 1, xx, 2) != xx + 1 || memcmp (xx, yy, sizeof (yy)) != 0) + abort (); + exit (0); +} diff --git a/gcc/testsuite/gcc.dg/pr20368-1.c b/gcc/testsuite/gcc.dg/pr20368-1.c new file mode 100644 index 00000000000..a88c7f803b7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr20368-1.c @@ -0,0 +1,12 @@ +/* ICE with -Wstrict-prototypes and typeof an undeclared function. + Bug 20368. */ +/* { dg-do compile } */ +/* { dg-options "-Wstrict-prototypes" } */ + +extern __typeof (f) g; /* { dg-error "error: 'f' undeclared here \\(not in a function\\)" } */ + +int +f (x) + float x; +{ +} diff --git a/gcc/testsuite/gcc.dg/pr20368-2.c b/gcc/testsuite/gcc.dg/pr20368-2.c new file mode 100644 index 00000000000..e3c8396233e --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr20368-2.c @@ -0,0 +1,12 @@ +/* ICE with -Wstrict-prototypes and typeof an undeclared function. + Bug 20368. Test with -Wmissing-prototypes. */ +/* { dg-do compile } */ +/* { dg-options "-Wmissing-prototypes" } */ + +extern __typeof (f) g; /* { dg-error "error: 'f' undeclared here \\(not in a function\\)" } */ + +int +f (x) + float x; +{ +} diff --git a/gcc/testsuite/gcc.dg/pr20368-3.c b/gcc/testsuite/gcc.dg/pr20368-3.c new file mode 100644 index 00000000000..32095999676 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr20368-3.c @@ -0,0 +1,12 @@ +/* ICE with -Wstrict-prototypes and typeof an undeclared function. + Bug 20368. Test with -Wmissing-declarations. */ +/* { dg-do compile } */ +/* { dg-options "-Wmissing-declarations" } */ + +extern __typeof (f) g; /* { dg-error "error: 'f' undeclared here \\(not in a function\\)" } */ + +int +f (x) + float x; +{ +} diff --git a/gcc/testsuite/gcc.dg/pr20927.c b/gcc/testsuite/gcc.dg/pr20927.c new file mode 100644 index 00000000000..55cda33e8c4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr20927.c @@ -0,0 +1,23 @@ +/* This caused an ICE on s390x due to a reload inheritance bug. */ + +/* { dg-do compile { target s390*-*-* } } */ +/* { dg-options "-O2" } */ + +struct point { double x, y; }; +extern void use (struct point); + +void test (struct point *pc, struct point p1) +{ + struct point p0 = *pc; + + if (p0.x == p1.x && p0.y == p1.y) + use (p0); + + asm ("" : : : "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"); + + p1.y -= p0.y; + + use (p0); + use (p1); +} + diff --git a/gcc/testsuite/gcc.dg/redecl-1.c b/gcc/testsuite/gcc.dg/redecl-1.c index 14877667e91..75ce208457c 100644 --- a/gcc/testsuite/gcc.dg/redecl-1.c +++ b/gcc/testsuite/gcc.dg/redecl-1.c @@ -94,7 +94,7 @@ static int test7(int x) void prime8(void) { test8(); /* { dg-warning "previous" "" } */ - /* { dg-warning "implicit" "" { target *-*-* } 96 } */ + /* { dg-warning "implicit" "implicit" { target *-*-* } 96 } */ } static int test8(int x) diff --git a/gcc/testsuite/gcc.dg/short-compare-1.c b/gcc/testsuite/gcc.dg/short-compare-1.c index 6a4e388d179..7ecca243a7c 100644 --- a/gcc/testsuite/gcc.dg/short-compare-1.c +++ b/gcc/testsuite/gcc.dg/short-compare-1.c @@ -3,7 +3,7 @@ /* { dg-do run } */ /* { dg-options "-O" } */ -/* { dg-options "-O -mtune=i686" { target i?86-*-* } } */ +/* { dg-options "-O -mtune=i686" { target { i?86-*-* && ilp32 } } } */ /* { dg-options "-O -m32 -mtune=i686" { target x86_64-*-* } } */ extern void abort(void); diff --git a/gcc/testsuite/gcc.dg/short-compare-2.c b/gcc/testsuite/gcc.dg/short-compare-2.c index 1c5963c5a2f..736e1510e8d 100644 --- a/gcc/testsuite/gcc.dg/short-compare-2.c +++ b/gcc/testsuite/gcc.dg/short-compare-2.c @@ -4,7 +4,7 @@ /* { dg-do run } */ /* { dg-options "-O" } */ -/* { dg-options "-O -mtune=i686" { target i?86-*-* } } */ +/* { dg-options "-O -mtune=i686" { target { i?86-*-* && ilp32 } } } */ /* { dg-options "-O -m32 -mtune=i686" { target x86_64-*-* } } */ extern void abort(); diff --git a/gcc/testsuite/gcc.dg/smod-1.c b/gcc/testsuite/gcc.dg/smod-1.c index 268b43bd2ab..e75978af595 100644 --- a/gcc/testsuite/gcc.dg/smod-1.c +++ b/gcc/testsuite/gcc.dg/smod-1.c @@ -3,7 +3,7 @@ /* { dg-do run } */ /* { dg-options "-std=c99" } */ -/* { dg-options "-std=c99 -mtune=i486" { target i?86-*-* } } */ +/* { dg-options "-std=c99 -mtune=i486" { target { i?86-*-* && ilp32 } } } */ #include <limits.h> diff --git a/gcc/testsuite/gcc.dg/sparc-reg-1.c b/gcc/testsuite/gcc.dg/sparc-reg-1.c new file mode 100644 index 00000000000..860094299a1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/sparc-reg-1.c @@ -0,0 +1,11 @@ +/* PR middle-end/20263 */ + +/* { dg-do assemble { target sparc64-*-* } } */ +/* { dg-options "" } */ + +register void *tp __asm__("%g7"); + +void set_tp(void) +{ + tp = 0; +} diff --git a/gcc/testsuite/gcc.dg/stmt-expr-label-1.c b/gcc/testsuite/gcc.dg/stmt-expr-label-1.c new file mode 100644 index 00000000000..1f52a313918 --- /dev/null +++ b/gcc/testsuite/gcc.dg/stmt-expr-label-1.c @@ -0,0 +1,404 @@ +/* Test for labels in statement expressions: bugs 772 and 17913. + goto statements must not jump into statement expressions. + + This tests all combinations of label and goto locations in a given + function. Each combination is tested twice, once with just that + label and goto and once with many others in order to exercise the + different code paths involved with excess labels. */ + +/* Origin: Joseph Myers <joseph@codesourcery.com> */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +void f0 (void) { goto a; a:({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa0 (void) { p0A:goto p0A; goto a; a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f1 (void) { goto a; ({ a:({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa1 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f2 (void) { goto a; ({ ({a:0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa2 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f3 (void) { goto a; ({ ({0;}); a:({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa3 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f4 (void) { goto a; ({ ({0;}); ({a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa4 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f5 (void) { goto a; ({ ({0;}); ({0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa5 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f6 (void) { goto a; ({ ({0;}); ({0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); 0; } +void fa6 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f7 (void) { goto a; ({ ({0;}); ({0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa7 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f8 (void) { goto a; ({ ({0;}); ({0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa8 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f9 (void) { goto a; ({ ({0;}); ({0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa9 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f10 (void) { goto a; ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa10 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f11 (void) { goto a; ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa11 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f12 (void) { goto a; ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a:0; } +void fa12 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; } +void f13 (void) { a: goto a; ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa13 (void) { a: goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f14 (void) { a:({ goto a; ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa14 (void) { a:({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f15 (void) { ({ goto a; a:({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa15 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f16 (void) { ({ goto a; ({a:0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa16 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f17 (void) { ({ goto a; ({0;}); a:({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa17 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f18 (void) { ({ goto a; ({0;}); ({a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa18 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f19 (void) { ({ goto a; ({0;}); ({0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa19 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f20 (void) { ({ goto a; ({0;}); ({0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); 0; } +void fa20 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f21 (void) { ({ goto a; ({0;}); ({0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa21 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f22 (void) { ({ goto a; ({0;}); ({0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa22 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f23 (void) { ({ goto a; ({0;}); ({0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa23 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f24 (void) { ({ goto a; ({0;}); ({0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa24 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f25 (void) { ({ goto a; ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa25 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f26 (void) { ({ goto a; ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a:0; } +void fa26 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; } +void f27 (void) { ({ a: goto a; ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa27 (void) { P0A:goto P0A;({ a: goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f28 (void) { a:({ ({ goto a; 0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa28 (void) { a:({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f29 (void) { ({ a:({ goto a; 0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa29 (void) { P0A:goto P0A;({ a:({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f30 (void) { ({ ({ goto a; a:0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa30 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f31 (void) { ({ ({ goto a; 0;}); a:({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa31 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f32 (void) { ({ ({ goto a; 0;}); ({a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa32 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f33 (void) { ({ ({ goto a; 0;}); ({0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa33 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f34 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); 0; } +void fa34 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f35 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa35 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f36 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa36 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f37 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa37 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f38 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa38 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f39 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa39 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f40 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a:0; } +void fa40 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; } +void f41 (void) { ({ ({a: goto a; 0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa41 (void) { P0A:goto P0A;({ P01A:goto P01A;({a: goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f42 (void) { a:({ ({0;}); goto a; ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa42 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f43 (void) { ({ a:({0;}); goto a; ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa43 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f44 (void) { ({ ({a:0;}); goto a; ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa44 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f45 (void) { ({ ({0;}); goto a; a:({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa45 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f46 (void) { ({ ({0;}); goto a; ({a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa46 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f47 (void) { ({ ({0;}); goto a; ({0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa47 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f48 (void) { ({ ({0;}); goto a; ({0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); 0; } +void fa48 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f49 (void) { ({ ({0;}); goto a; ({0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa49 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f50 (void) { ({ ({0;}); goto a; ({0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa50 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f51 (void) { ({ ({0;}); goto a; ({0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa51 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f52 (void) { ({ ({0;}); goto a; ({0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa52 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f53 (void) { ({ ({0;}); goto a; ({0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa53 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f54 (void) { ({ ({0;}); goto a; ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a:0; } +void fa54 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; } +void f55 (void) { ({ ({0;}); a: goto a; ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa55 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a: goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f56 (void) { a:({ ({0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa56 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f57 (void) { ({ a:({0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa57 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f58 (void) { ({ ({a:0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa58 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f59 (void) { ({ ({0;}); a:({ goto a; 0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa59 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f60 (void) { ({ ({0;}); ({ goto a; a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa60 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f61 (void) { ({ ({0;}); ({ goto a; 0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa61 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f62 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); 0; } +void fa62 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f63 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa63 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f64 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa64 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f65 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa65 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f66 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa66 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f67 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa67 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f68 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a:0; } +void fa68 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; } +void f69 (void) { ({ ({0;}); ({a: goto a; 0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa69 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a: goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f70 (void) { a:({ ({0;}); ({0;}); goto a; 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa70 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f71 (void) { ({ a:({0;}); ({0;}); goto a; 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa71 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f72 (void) { ({ ({a:0;}); ({0;}); goto a; 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa72 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f73 (void) { ({ ({0;}); a:({0;}); goto a; 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa73 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f74 (void) { ({ ({0;}); ({a:0;}); goto a; 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa74 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f75 (void) { ({ ({0;}); ({0;}); goto a; a:0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa75 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f76 (void) { ({ ({0;}); ({0;}); goto a; 0;}); a:({ ({0;}); ({0;}); 0;}); 0; } +void fa76 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f77 (void) { ({ ({0;}); ({0;}); goto a; 0;}); ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa77 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f78 (void) { ({ ({0;}); ({0;}); goto a; 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa78 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f79 (void) { ({ ({0;}); ({0;}); goto a; 0;}); ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa79 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f80 (void) { ({ ({0;}); ({0;}); goto a; 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa80 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f81 (void) { ({ ({0;}); ({0;}); goto a; 0;}); ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa81 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f82 (void) { ({ ({0;}); ({0;}); goto a; 0;}); ({ ({0;}); ({0;}); 0;}); a:0; } +void fa82 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; } +void f83 (void) { ({ ({0;}); ({0;}); a: goto a; 0;}); ({ ({0;}); ({0;}); 0;}); 0; } +void fa83 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a: goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f84 (void) { a:({ ({0;}); ({0;}); 0;}); goto a; ({ ({0;}); ({0;}); 0;}); 0; } +void fa84 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f85 (void) { ({ a:({0;}); ({0;}); 0;}); goto a; ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa85 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f86 (void) { ({ ({a:0;}); ({0;}); 0;}); goto a; ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa86 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f87 (void) { ({ ({0;}); a:({0;}); 0;}); goto a; ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa87 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f88 (void) { ({ ({0;}); ({a:0;}); 0;}); goto a; ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa88 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f89 (void) { ({ ({0;}); ({0;}); a:0;}); goto a; ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa89 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f90 (void) { ({ ({0;}); ({0;}); 0;}); goto a; a:({ ({0;}); ({0;}); 0;}); 0; } +void fa90 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f91 (void) { ({ ({0;}); ({0;}); 0;}); goto a; ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa91 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f92 (void) { ({ ({0;}); ({0;}); 0;}); goto a; ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa92 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f93 (void) { ({ ({0;}); ({0;}); 0;}); goto a; ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa93 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f94 (void) { ({ ({0;}); ({0;}); 0;}); goto a; ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa94 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f95 (void) { ({ ({0;}); ({0;}); 0;}); goto a; ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa95 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f96 (void) { ({ ({0;}); ({0;}); 0;}); goto a; ({ ({0;}); ({0;}); 0;}); a:0; } +void fa96 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; } +void f97 (void) { ({ ({0;}); ({0;}); 0;}); a: goto a; ({ ({0;}); ({0;}); 0;}); 0; } +void fa97 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a: goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f98 (void) { a:({ ({0;}); ({0;}); 0;}); ({ goto a; ({0;}); ({0;}); 0;}); 0; } +void fa98 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f99 (void) { ({ a:({0;}); ({0;}); 0;}); ({ goto a; ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa99 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f100 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ goto a; ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa100 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f101 (void) { ({ ({0;}); a:({0;}); 0;}); ({ goto a; ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa101 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f102 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ goto a; ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa102 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f103 (void) { ({ ({0;}); ({0;}); a:0;}); ({ goto a; ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa103 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f104 (void) { ({ ({0;}); ({0;}); 0;}); a:({ goto a; ({0;}); ({0;}); 0;}); 0; } +void fa104 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f105 (void) { ({ ({0;}); ({0;}); 0;}); ({ goto a; a:({0;}); ({0;}); 0;}); 0; } +void fa105 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f106 (void) { ({ ({0;}); ({0;}); 0;}); ({ goto a; ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa106 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f107 (void) { ({ ({0;}); ({0;}); 0;}); ({ goto a; ({0;}); a:({0;}); 0;}); 0; } +void fa107 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f108 (void) { ({ ({0;}); ({0;}); 0;}); ({ goto a; ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa108 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f109 (void) { ({ ({0;}); ({0;}); 0;}); ({ goto a; ({0;}); ({0;}); a:0;}); 0; } +void fa109 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f110 (void) { ({ ({0;}); ({0;}); 0;}); ({ goto a; ({0;}); ({0;}); 0;}); a:0; } +void fa110 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; } +void f111 (void) { ({ ({0;}); ({0;}); 0;}); ({ a: goto a; ({0;}); ({0;}); 0;}); 0; } +void fa111 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a: goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f112 (void) { a:({ ({0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); 0; } +void fa112 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f113 (void) { ({ a:({0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa113 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f114 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa114 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f115 (void) { ({ ({0;}); a:({0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa115 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f116 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa116 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f117 (void) { ({ ({0;}); ({0;}); a:0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa117 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f118 (void) { ({ ({0;}); ({0;}); 0;}); a:({ ({ goto a; 0;}); ({0;}); 0;}); 0; } +void fa118 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f119 (void) { ({ ({0;}); ({0;}); 0;}); ({ a:({ goto a; 0;}); ({0;}); 0;}); 0; } +void fa119 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f120 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({ goto a; a:0;}); ({0;}); 0;}); 0; } +void fa120 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f121 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); a:({0;}); 0;}); 0; } +void fa121 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f122 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa122 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f123 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); a:0;}); 0; } +void fa123 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f124 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); a:0; } +void fa124 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; } +void f125 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({a: goto a; 0;}); ({0;}); 0;}); 0; } +void fa125 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a: goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f126 (void) { a:({ ({0;}); ({0;}); 0;}); ({ ({0;}); goto a; ({0;}); 0;}); 0; } +void fa126 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f127 (void) { ({ a:({0;}); ({0;}); 0;}); ({ ({0;}); goto a; ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa127 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f128 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ ({0;}); goto a; ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa128 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f129 (void) { ({ ({0;}); a:({0;}); 0;}); ({ ({0;}); goto a; ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa129 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f130 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ ({0;}); goto a; ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa130 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f131 (void) { ({ ({0;}); ({0;}); a:0;}); ({ ({0;}); goto a; ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa131 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f132 (void) { ({ ({0;}); ({0;}); 0;}); a:({ ({0;}); goto a; ({0;}); 0;}); 0; } +void fa132 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f133 (void) { ({ ({0;}); ({0;}); 0;}); ({ a:({0;}); goto a; ({0;}); 0;}); 0; } +void fa133 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f134 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({a:0;}); goto a; ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa134 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f135 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); goto a; a:({0;}); 0;}); 0; } +void fa135 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f136 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); goto a; ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa136 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f137 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); goto a; ({0;}); a:0;}); 0; } +void fa137 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f138 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); goto a; ({0;}); 0;}); a:0; } +void fa138 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; } +void f139 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); a: goto a; ({0;}); 0;}); 0; } +void fa139 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a: goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f140 (void) { a:({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); 0; } +void fa140 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f141 (void) { ({ a:({0;}); ({0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa141 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f142 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa142 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f143 (void) { ({ ({0;}); a:({0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa143 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f144 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa144 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f145 (void) { ({ ({0;}); ({0;}); a:0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa145 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f146 (void) { ({ ({0;}); ({0;}); 0;}); a:({ ({0;}); ({ goto a; 0;}); 0;}); 0; } +void fa146 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f147 (void) { ({ ({0;}); ({0;}); 0;}); ({ a:({0;}); ({ goto a; 0;}); 0;}); 0; } +void fa147 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f148 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({a:0;}); ({ goto a; 0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa148 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f149 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); a:({ goto a; 0;}); 0;}); 0; } +void fa149 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f150 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({ goto a; a:0;}); 0;}); 0; } +void fa150 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f151 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); a:0;}); 0; } +void fa151 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f152 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); a:0; } +void fa152 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; } +void f153 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({a: goto a; 0;}); 0;}); 0; } +void fa153 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a: goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f154 (void) { a:({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); goto a; 0;}); 0; } +void fa154 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f155 (void) { ({ a:({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa155 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f156 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa156 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f157 (void) { ({ ({0;}); a:({0;}); 0;}); ({ ({0;}); ({0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa157 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f158 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ ({0;}); ({0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa158 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f159 (void) { ({ ({0;}); ({0;}); a:0;}); ({ ({0;}); ({0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa159 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f160 (void) { ({ ({0;}); ({0;}); 0;}); a:({ ({0;}); ({0;}); goto a; 0;}); 0; } +void fa160 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f161 (void) { ({ ({0;}); ({0;}); 0;}); ({ a:({0;}); ({0;}); goto a; 0;}); 0; } +void fa161 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f162 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({a:0;}); ({0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa162 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f163 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); a:({0;}); goto a; 0;}); 0; } +void fa163 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f164 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({a:0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */ +void fa164 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f165 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); goto a; a:0;}); 0; } +void fa165 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; a:0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f166 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); goto a; 0;}); a:0; } +void fa166 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); a:0;P0D:goto P0D; } +void f167 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); a: goto a; 0;}); 0; } +void fa167 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a: goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } +void f168 (void) { a:({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); goto a; 0; } +void fa168 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } +void f169 (void) { ({ a:({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */ +void fa169 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f170 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */ +void fa170 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f171 (void) { ({ ({0;}); a:({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */ +void fa171 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f172 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */ +void fa172 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f173 (void) { ({ ({0;}); ({0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */ +void fa173 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f174 (void) { ({ ({0;}); ({0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); goto a; 0; } +void fa174 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } +void f175 (void) { ({ ({0;}); ({0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */ +void fa175 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f176 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */ +void fa176 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f177 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */ +void fa177 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f178 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */ +void fa178 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f179 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */ +void fa179 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f180 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); goto a; a:0; } +void fa180 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; a:0;P0D:goto P0D; } +void f181 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a: goto a; 0; } +void fa181 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a: goto a; P0C:goto P0C;0;P0D:goto P0D; } +void f182 (void) { a:({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; goto a; } +void fa182 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } +void f183 (void) { ({ a:({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */ +void fa183 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f184 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */ +void fa184 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f185 (void) { ({ ({0;}); a:({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */ +void fa185 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f186 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */ +void fa186 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f187 (void) { ({ ({0;}); ({0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */ +void fa187 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f188 (void) { ({ ({0;}); ({0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); 0; goto a; } +void fa188 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } +void f189 (void) { ({ ({0;}); ({0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */ +void fa189 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f190 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */ +void fa190 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f191 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */ +void fa191 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f192 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */ +void fa192 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f193 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */ +void fa193 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */ +void f194 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a:0; goto a; } +void fa194 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;p0D:goto p0D; goto a; P0D:goto P0D; } +void f195 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0;a: goto a; } +void fa195 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;a: goto a; P0D:goto P0D; } diff --git a/gcc/testsuite/gcc.dg/stmt-expr-label-2.c b/gcc/testsuite/gcc.dg/stmt-expr-label-2.c new file mode 100644 index 00000000000..863d610545c --- /dev/null +++ b/gcc/testsuite/gcc.dg/stmt-expr-label-2.c @@ -0,0 +1,27 @@ +/* Test for labels in statement expressions: bugs 772 and 17913. + switch statements must not jump into statement expressions. */ + +/* Origin: Joseph Myers <joseph@codesourcery.com> */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +void +f (int a) +{ + switch (a) + { + case 0: + case 1: + ({ + case 2: /* { dg-error "error: case label in statement expression not containing enclosing switch statement" } */ + default: /* { dg-error "error: 'default' label in statement expression not containing enclosing switch statement" } */ + switch (a) + { + case 3: + default: + ; + } + 0; + }); + } +} diff --git a/gcc/testsuite/gcc.dg/stmt-expr-label-3.c b/gcc/testsuite/gcc.dg/stmt-expr-label-3.c new file mode 100644 index 00000000000..09258069522 --- /dev/null +++ b/gcc/testsuite/gcc.dg/stmt-expr-label-3.c @@ -0,0 +1,8 @@ +/* Test for labels in statement expressions: bugs 772 and 17913. + Test the particular case of bug 17913. */ + +/* Origin: Joseph Myers <joseph@codesourcery.com> */ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ + +void f(void) { 1 ? 1 : ({ a : 1; 1; }); goto a; } /* { dg-error "error: jump into statement expression" } */ diff --git a/gcc/testsuite/gcc.dg/titype-1.c b/gcc/testsuite/gcc.dg/titype-1.c index d9f9da90756..1d0c570dafa 100644 --- a/gcc/testsuite/gcc.dg/titype-1.c +++ b/gcc/testsuite/gcc.dg/titype-1.c @@ -1,7 +1,7 @@ /* { dg-do run } */ /* Not all platforms support TImode integers. */ -#if defined(__LP64__) +#if defined(__LP64__) && !defined(__hppa__) typedef int TItype __attribute__ ((mode (TI))); #else typedef long TItype; diff --git a/gcc/testsuite/gcc.dg/torture/asm-subreg-1.c b/gcc/testsuite/gcc.dg/torture/asm-subreg-1.c new file mode 100644 index 00000000000..2a539208529 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/asm-subreg-1.c @@ -0,0 +1,14 @@ +/* PR middle-end/20491 */ + +/* { dg-do compile } */ + +/* Combine used to introduce invalid subregs for the asm input, and + we'd crash later on, when removing all subregs. */ + +volatile unsigned short _const_32 [4] = {1,2,3,4}; +void +evas_common_convert_yuv_420p_601_rgba() +{ + __asm__ __volatile__ ("" : : "X" (*_const_32)); +} + diff --git a/gcc/testsuite/gcc.dg/torture/badshift.c b/gcc/testsuite/gcc.dg/torture/badshift.c new file mode 100644 index 00000000000..dec71cfa2d1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/badshift.c @@ -0,0 +1,29 @@ +/* PR rtl-optimization/20532 */ + +/* { dg-do run } */ +/* { dg-options "" } */ +/* { dg-options "-march=i386" { target { i?86-*-* && ilp32 } } } */ + +/* We used to optimize the DImode shift-by-32 to zero because in combine + we turned: + + (v << 31) + (v << 31) + + into: + + (v * (((HOST_WIDE_INT)1 << 31) + ((HOST_WIDE_INT)1 << 31))) + + With a 32-bit HOST_WIDE_INT, the coefficient overflowed to zero. */ + +unsigned long long int badshift(unsigned long long int v) +{ + return v << 31 << 1; +} + +extern void abort (); + +int main() { + if (badshift (1) == 0) + abort (); + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/builtin-noret-1.c b/gcc/testsuite/gcc.dg/torture/builtin-noret-1.c index b8b970e5cb9..d3e97701f2b 100644 --- a/gcc/testsuite/gcc.dg/torture/builtin-noret-1.c +++ b/gcc/testsuite/gcc.dg/torture/builtin-noret-1.c @@ -2,6 +2,7 @@ /* Origin: Joseph Myers <jsm28@cam.ac.uk> */ /* { dg-options "-multiply_defined suppress" { target powerpc-*-darwin* } } */ /* { dg-do link } */ +/* { dg-require-weak "" } */ extern void abort (void); extern void exit (int); diff --git a/gcc/testsuite/gcc.dg/torture/builtin-noret-2.c b/gcc/testsuite/gcc.dg/torture/builtin-noret-2.c index c8c8609f62c..1103e3d8120 100644 --- a/gcc/testsuite/gcc.dg/torture/builtin-noret-2.c +++ b/gcc/testsuite/gcc.dg/torture/builtin-noret-2.c @@ -3,6 +3,7 @@ <zack@codesourcery.com>. */ /* { dg-options "-multiply_defined suppress" { target powerpc-*-darwin* } } */ /* { dg-do link } */ +/* { dg-require-weak "" } */ extern void tabort (void); extern void texit (void); diff --git a/gcc/testsuite/gcc.dg/torture/pr19683-1.c b/gcc/testsuite/gcc.dg/torture/pr19683-1.c new file mode 100644 index 00000000000..4015fb981e9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr19683-1.c @@ -0,0 +1,42 @@ +/* From PR rtl-optimization/19683. On little-endian MIPS targets, + reload would incorrectly inherit the high part of the multiplication + result. */ +/* { dg-do run { target mips*-*-* } } */ + +extern void abort (void); +extern void exit (int); + +#define REPEAT10(X, Y) \ + X(Y##0); X(Y##1); X(Y##2); X(Y##3); X(Y##4); \ + X(Y##5); X(Y##6); X(Y##7); X(Y##8); X(Y##9) + +#define REPEAT30(X) REPEAT10 (X, 0); REPEAT10 (X, 1); REPEAT10 (X, 2) +#define IN(X) unsigned int x##X = ptr[0] +#define OUT(X) ptr[0] = x##X + +union u { unsigned long long ll; unsigned int i[2]; }; + +unsigned int +foo (volatile unsigned int *ptr) +{ + union u u; + int result; + + u.ll = (unsigned long long) ptr[0] * ptr[0]; + REPEAT30 (IN); + REPEAT30 (OUT); + asm ("#" : "=l" (result) : "l" (u.i[1])); + return result; +} + +int +main (void) +{ + unsigned int array[] = { 1000 * 1000 * 1000 }; + union u u; + + u.ll = (unsigned long long) array[0] * array[0]; + if (foo (array) != u.i[1]) + abort (); + exit (0); +} diff --git a/gcc/testsuite/gcc.dg/torture/pr20314-1.c b/gcc/testsuite/gcc.dg/torture/pr20314-1.c new file mode 100644 index 00000000000..8a69c2dcaf5 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr20314-1.c @@ -0,0 +1,56 @@ +/* PR inline-asm/20314 */ +/* { dg-do compile { target i?86-*-* x86_64-*-* powerpc*-*-* ia64-*-* } } */ + +int +f1 (void) +{ + int x = 4, y; + __asm__ volatile ("" : "+r,r" (x), "=r,r" (y) + : "%r,r" (x), "m,r" (8), "r,r" (2)); + return x; +} + +int +f2 (void) +{ + int x = 4, y; + __asm__ volatile ("" : "=r,r" (x), "=r,r" (y) + : "%0,0" (x), "m,r" (8), "r,r" (2)); + return x; +} + +int +f3 (void) +{ + int x = 4, y; + __asm__ volatile ("" : "+r,r" (x), "=r,r" (y) + : "%m,r" (8), "r,r" (2)); + return x; +} + +int +f4 (void) +{ + int x = 4, y; + __asm__ volatile ("" : "+r" (x), "=r" (y) + : "r" (x), "r" (8), "r" (2)); + return x; +} + +int +f5 (void) +{ + int x = 4, y; + __asm__ volatile ("" : "=r" (x), "=r" (y) + : "0" (x), "r" (8), "r" (2)); + return x; +} + +int +f6 (void) +{ + int x = 4, y; + __asm__ volatile ("" : "+r" (x), "=r" (y) + : "r" (8), "r" (2)); + return x; +} diff --git a/gcc/testsuite/gcc.dg/torture/pr20314-2.c b/gcc/testsuite/gcc.dg/torture/pr20314-2.c new file mode 100644 index 00000000000..ad1b8f9724a --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr20314-2.c @@ -0,0 +1,47 @@ +/* PR inline-asm/20314 */ +/* { dg-do compile { target { x86_64-*-* && lp64 } } } */ +/* { dg-do compile { target ia64-*-* powerpc*-*-* } } */ + +int a, b, c, d, e, f, g, h, i, j, k, l; + +void +f1 (void) +{ + __asm__ volatile ("" + : [a] "+r" (a), [b] "+r" (b), [c] "+r" (c), [d] "+r" (d), + [e] "+r" (e), [f] "+r" (f), [g] "+r" (g), [h] "+r" (h), + [i] "+r" (i), [j] "+r" (j), [k] "+r" (k), [l] "+r" (l)); +} + +void +f2 (void) +{ + __asm__ volatile ("" + : [a] "+r,m" (a), [b] "+r,m" (b), [c] "+r,m" (c), [d] "+r,m" (d), + [e] "+r,m" (e), [f] "+r,m" (f), [g] "+r,m" (g), [h] "+r,m" (h), + [i] "+r,m" (i), [j] "+r,m" (j), [k] "+r,m" (k), [l] "+r,m" (l)); +} + +void +f3 (void) +{ + __asm__ volatile ("" + : [a] "=r" (a), [b] "=r" (b), [c] "=r" (c), [d] "=r" (d), + [e] "=r" (e), [f] "=r" (f), [g] "=r" (g), [h] "=r" (h), + [i] "=r" (i), [j] "=r" (j), [k] "=r" (k), [l] "=r" (l) + : "[a]" (a), "[b]" (b), "[c]" (c), "[d]" (d), + "[e]" (e), "[f]" (f), "[g]" (g), "[h]" (h), + "[i]" (i), "[j]" (j), "[k]" (k), "[l]" (l)); +} + +void +f4 (void) +{ + __asm__ volatile ("" + : [a] "=r,m" (a), [b] "=r,m" (b), [c] "=r,m" (c), [d] "=r,m" (d), + [e] "=r,m" (e), [f] "=r,m" (f), [g] "=r,m" (g), [h] "=r,m" (h), + [i] "=r,m" (i), [j] "=r,m" (j), [k] "=r,m" (k), [l] "=r,m" (l) + : "[a],m" (a), "[b],m" (b), "[c],m" (c), "[d],m" (d), + "[e],m" (e), "[f],m" (f), "[g],m" (g), "[h],m" (h), + "[i],m" (i), "[j],m" (j), "[k],m" (k), "[l],m" (l)); +} diff --git a/gcc/testsuite/gcc.dg/torture/tree-loop-1.c b/gcc/testsuite/gcc.dg/torture/tree-loop-1.c new file mode 100644 index 00000000000..1d38691780a --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/tree-loop-1.c @@ -0,0 +1,21 @@ +/* PR tree-optimization/20640 */ + +/* After unrolling the loop, we'd turn some conditional branches into + unconditional ones, but branch redirection would fail to compute + the PHI args for the PHI nodes in the replacement edge + destination, so they'd remain NULL causing crashes later on. */ + +/* { dg-do compile } */ + +static int a = 0; +extern int foo (void); +extern int *bar (void) __attribute__ ((__const__)); + +void +test (int x) +{ + int b = 10; + while (foo () == -1 && *bar () == 4 && b > 0) + --b; + a = x; +} diff --git a/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c b/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c new file mode 100644 index 00000000000..4b241c30ba2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-O1 -fdump-tree-optimized -fdump-tree-alias1-vops" } */ +/* Test to make sure that inline-asm causes a V_MAY_DEF and that we call test_function twice. */ + +char test_function(void ) __attribute__((__pure__)); +char f(char *a) +{ + char b = test_function(); + asm("":"=m"(*a):"r"(b)); + b = test_function(); + return b; +} + +/* test_function should be called twice as the inline-asm changes memory. */ +/* { dg-final { scan-tree-dump-times "test_function" 2 "optimized"} } */ + +/* There should a V_MAY_DEF for the inline-asm. */ +/* { dg-final { scan-tree-dump-times "V_MAY_DEF" 1 "alias1"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c b/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c new file mode 100644 index 00000000000..ef8f9607056 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-O1 -fdump-tree-alias1-vops" } */ +/* Test to make sure that inline-asm causes a V_MAY_DEF. */ + + +void link_error(); +void f(char *a) +{ + int *a1 = (int *)a; + if (*a == 0) + asm("":"=m"(*a1)); + if (*a == 0) + link_error (); +} + +/* There should a V_MAY_DEF for the inline-asm and one for the link_error. */ +/* { dg-final { scan-tree-dump-times "V_MAY_DEF" 2 "alias1"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr20739.c b/gcc/testsuite/gcc.dg/tree-ssa/pr20739.c new file mode 100644 index 00000000000..c1e7b58e385 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr20739.c @@ -0,0 +1,24 @@ +/* PR middle-end/20739 */ + +/* dg-do compile */ +/* dg-options "-O" */ + +/* We used to fail to compile this because gimplification dropped the + conversion that added the const qualifier to the sub-expression + involving baz, and then immediately noticed and reported its + absence. */ + +typedef struct +{ + char chars[5]; +} +baz_t; + +extern baz_t * baz; + +extern void foo (baz_t); +int +bar (const baz_t * ls) +{ + foo (ls == 0 ? *(&baz[0]) : *ls); +} diff --git a/gcc/testsuite/gcc.dg/uninit-C.c b/gcc/testsuite/gcc.dg/uninit-C.c index 45decf33521..741106cb463 100644 --- a/gcc/testsuite/gcc.dg/uninit-C.c +++ b/gcc/testsuite/gcc.dg/uninit-C.c @@ -3,7 +3,7 @@ /* { dg-options "-O -Wuninitialized" } */ /* Not all platforms support TImode integers. */ -#if defined(__LP64__) +#if defined(__LP64__) && !defined(__hppa__) typedef int TItype __attribute__ ((mode (TI))); #else typedef long TItype; diff --git a/gcc/testsuite/gcc.dg/vect/pr20122.c b/gcc/testsuite/gcc.dg/vect/pr20122.c new file mode 100644 index 00000000000..ff6ec75e5ab --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr20122.c @@ -0,0 +1,38 @@ +/* { dg-require-effective-target vect_int } */ + +#include <stdarg.h> +#include "tree-vect.h" + +typedef short ashort __attribute__ ((__aligned__(16))); +ashort Kernshort[24]; +static void VecBug(ashort Kernel[8][24]) __attribute__((noinline)); +static void VecBug(ashort Kernel[8][24]); + +/* Doesn't occur of only inner-loop. */ +static void VecBug(ashort Kernel[8][24]) +{ + int k,i; + for (k = 0; k<8; k++) + for (i = 0; i<24; i++) + Kernshort[i] = Kernel[k][i]; +} + +int main (int argc, char **argv) +{ + check_vect (); + + ashort Kernel[8][24]; + int k,i; + + for (k = 0; k<8; k++) + for (i = 0; i<24; i++) + Kernel[k][i] = 0; + + VecBug(Kernel); + + return 0; +} + + +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */ + diff --git a/gcc/testsuite/gcc.dg/visibility-7.c b/gcc/testsuite/gcc.dg/visibility-7.c index f5e6e9aae5c..aaa8165e3e0 100644 --- a/gcc/testsuite/gcc.dg/visibility-7.c +++ b/gcc/testsuite/gcc.dg/visibility-7.c @@ -1,6 +1,6 @@ /* Test warning from conflicting visibility specifications. */ /* { dg-do compile } */ -/* { dg-require-visibility "" } */ +/* { dg-require-visibility "protected" } */ /* { dg-final { scan-hidden "xyzzy" } } */ extern int diff --git a/gcc/testsuite/gcc.dg/vmx/darwin-abi-3.c b/gcc/testsuite/gcc.dg/vmx/darwin-abi-3.c deleted file mode 100644 index af4d15a0c2d..00000000000 --- a/gcc/testsuite/gcc.dg/vmx/darwin-abi-3.c +++ /dev/null @@ -1,34 +0,0 @@ -/* { dg-do run { target powerpc*-*-darwin* } } */ - -/* This check was originally in test vmx/varargs-4.c. It does not - match the expected behavior according to the PowerPC-64 ELF ABI. */ - -#include <altivec.h> - -extern void abort (void); -extern void exit (int); - -typedef struct n_a -{ - signed char m1; - short m2; - int m3; - double m4; - vector float m5; -} -n_a; - -typedef struct n_a_x -{ - n_a b; - char a; -} -n_a_x; - -int -main () -{ - if (sizeof (n_a_x) - sizeof (n_a) != sizeof (n_a)) - abort (); - exit (0); -} diff --git a/gcc/testsuite/gcc.dg/weak/weak-12.c b/gcc/testsuite/gcc.dg/weak/weak-12.c new file mode 100644 index 00000000000..72cc1445e4b --- /dev/null +++ b/gcc/testsuite/gcc.dg/weak/weak-12.c @@ -0,0 +1,17 @@ +/* Test for #pragma weak with declaration not at file scope. */ +/* { dg-do compile } */ +/* { dg-require-weak "" } */ +/* { dg-options "" } */ + +/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?foo" } } */ + +#pragma weak foo + +int +main (void) +{ + extern int foo (void); + if (&foo) + return foo (); + return 0; +} diff --git a/gcc/testsuite/gcc.dg/weak/weak-3.c b/gcc/testsuite/gcc.dg/weak/weak-3.c index c9448f032cf..2294ebf7b4e 100644 --- a/gcc/testsuite/gcc.dg/weak/weak-3.c +++ b/gcc/testsuite/gcc.dg/weak/weak-3.c @@ -52,18 +52,18 @@ void * foo1e (void) extern void * ffoo1f (void); -extern void * ffoox1f (void); void * foo1f (void) { if (ffoo1f) /* { dg-warning "" } */ ffoo1f (); return 0; } +void * ffoox1f (void) { return (void *)0; } extern void * ffoo1f (void) __attribute__((weak, alias ("ffoox1f"))); /* { dg-warning "weak declaration" "weak declaration" } */ extern void * ffoo1g (void); -extern void * ffoox1g (void); +void * ffoox1g (void) { return (void *)0; } extern void * ffoo1g (void) __attribute__((weak, alias ("ffoox1g"))); void * foo1g (void) { diff --git a/gcc/testsuite/gcc.dg/weak/weak-9.c b/gcc/testsuite/gcc.dg/weak/weak-9.c index 95e8f809f38..abbd0201c46 100644 --- a/gcc/testsuite/gcc.dg/weak/weak-9.c +++ b/gcc/testsuite/gcc.dg/weak/weak-9.c @@ -7,10 +7,11 @@ /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?f2" } } */ /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?f3" } } */ /* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?f4" } } */ -/* { dg-final { scan-assembler "notf1" } } */ -/* { dg-final { scan-assembler "notf2" } } */ -/* { dg-final { scan-assembler "notf3" } } */ -/* { dg-final { scan-assembler "notf4" } } */ + +void notf1() { } +void notf2() { } +void notf3() { } +void notf4() { } void f1() __attribute__((weak, alias("notf1"))); void f2() __attribute__((alias("notf2"), weak)); diff --git a/gcc/testsuite/gcc.dg/winline-6.c b/gcc/testsuite/gcc.dg/winline-6.c index 7ce7481a3ef..dd8d3a81b08 100644 --- a/gcc/testsuite/gcc.dg/winline-6.c +++ b/gcc/testsuite/gcc.dg/winline-6.c @@ -17,5 +17,5 @@ inline int q(void) } inline int t (void) { - return q (); /* { dg-warning "called from here" } */ + return q () + 1; /* { dg-warning "called from here" } */ } diff --git a/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c b/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c new file mode 100644 index 00000000000..d6d2a5ad7f3 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c @@ -0,0 +1,9 @@ +/* { dg-do compile { target mips*-*-* } } */ +/* { dg-skip-if "" { mips-sgi-irix* } { "-mabi=32" } { "" } } */ +/* { dg-options "-mfix-vr4130 -march=vr4130" } */ +#if _MIPS_ARCH_VR4130 && !__mips16 +int foo (void) { int r; asm ("# foo" : "=h" (r)); return r; } +#else +asm ("#\tmacchi\t"); +#endif +/* { dg-final { scan-assembler "\tmacchi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c b/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c new file mode 100644 index 00000000000..dcb48998425 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c @@ -0,0 +1,9 @@ +/* { dg-do compile { target mips*-*-* } } */ +/* { dg-skip-if "" { mips-sgi-irix* } { "-mabi=32" } { "" } } */ +/* { dg-options "-mfix-vr4130 -march=vr4130" } */ +#if _MIPS_ARCH_VR4130 && !__mips16 +int foo (void) { int r; asm ("# foo" : "=l" (r)); return r; } +#else +asm ("#\tmacc\t"); +#endif +/* { dg-final { scan-assembler "\tmacc\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c b/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c new file mode 100644 index 00000000000..ff258bab897 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c @@ -0,0 +1,9 @@ +/* { dg-do compile { target mips*-*-* } } */ +/* { dg-skip-if "" { mips-sgi-irix* } { "-mabi=32" } { "" } } */ +/* { dg-options "-mfix-vr4130 -march=vr4130" } */ +#if _MIPS_ARCH_VR4130 && !__mips16 && __mips64 +long long foo (void) { long long r; asm ("# foo" : "=h" (r)); return r; } +#else +asm ("#\tdmacchi\t"); +#endif +/* { dg-final { scan-assembler "\tdmacchi\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c b/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c new file mode 100644 index 00000000000..acb2d0807f3 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c @@ -0,0 +1,9 @@ +/* { dg-do compile { target mips*-*-* } } */ +/* { dg-skip-if "" { mips-sgi-irix* } { "-mabi=32" } { "" } } */ +/* { dg-options "-mfix-vr4130 -march=vr4130" } */ +#if _MIPS_ARCH_VR4130 && !__mips16 && __mips64 +long long foo (void) { long long r; asm ("# foo" : "=l" (r)); return r; } +#else +asm ("#\tdmacc\t"); +#endif +/* { dg-final { scan-assembler "\tdmacc\t" } } */ diff --git a/gcc/testsuite/gfortran.dg/PR19754_1.f90 b/gcc/testsuite/gfortran.dg/PR19754_1.f90 new file mode 100644 index 00000000000..b554d1094c5 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/PR19754_1.f90 @@ -0,0 +1,9 @@ +! { dg-do compile } +! Test of fix to PR19754 +program PR19754_1 + real x(3,3),y(2,2) + x = 1. + y = 2. + x = x + y ! { dg-error "Shapes for operands at" } +end program PR19754_1 + diff --git a/gcc/testsuite/gfortran.dg/PR19754_2.f90 b/gcc/testsuite/gfortran.dg/PR19754_2.f90 new file mode 100644 index 00000000000..9b71bd02ba0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/PR19754_2.f90 @@ -0,0 +1,22 @@ +! { dg-do run } +! Test of Steve Kargl's fix to PR19754 +! This exercises bugs that the original patch caused +! +program PR19754_2 + real a(2,2), b(2,2),c(2,2),d(2,2) + integer i(2,2),j(2,2),k(2,2) + a = 1. ; b = 2. ; i = 4 + c = b - floor( a / b ) ! this caused an ICE + d = b - real(floor( a / b )) + if (any (c/=d)) call abort () + j = aint(b) - floor( a / b ) ! this caused an ICE + if (any(real(j)/=d)) call abort () + c = i + if (any(real(i)/=c)) call abort () + c = i + b ! this caused an ICE + d = real(i) + b + if (any(c/=d)) call abort () + j = i + aint (a) + k = i + a ! this caused an ICE + if (any(j/=k)) call abort () +end program PR19754_2 diff --git a/gcc/testsuite/gfortran.dg/assign.f90 b/gcc/testsuite/gfortran.dg/assign.f90 new file mode 100644 index 00000000000..516a3d7632a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/assign.f90 @@ -0,0 +1,8 @@ +! { dg-do run } +! Program to test ASSIGNing a label to common variable. PR18827. + program test + integer i + common i + assign 2000 to i ! { dg-warning "Obsolete: ASSIGN statement" } +2000 continue + end diff --git a/gcc/testsuite/gfortran.dg/assign_2.f90 b/gcc/testsuite/gfortran.dg/assign_2.f90 new file mode 100644 index 00000000000..4119cd94f58 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/assign_2.f90 @@ -0,0 +1,11 @@ +! { dg-do compile } +! Option passed to avoid excess errors from obsolete warning +! { dg-options "-w" } +! PR18827 + integer i,j + common /foo/ i,j + assign 1000 to j + j = 5 + goto j + 1000 continue + end diff --git a/gcc/testsuite/gfortran.dg/assign_3.f90 b/gcc/testsuite/gfortran.dg/assign_3.f90 new file mode 100644 index 00000000000..a43b10c11b1 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/assign_3.f90 @@ -0,0 +1,11 @@ +! { dg-do compile } +! Option passed to avoid excess errors from obsolete warning +! { dg-options "-w" } +! PR18827 + integer i,j + equivalence (i,j) + assign 1000 to i + write (*, j) ! { dg-error "not been assigned a format label" } + goto j ! { dg-error "not been assigned a target label" } + 1000 continue + end diff --git a/gcc/testsuite/gfortran.dg/backspace.f b/gcc/testsuite/gfortran.dg/backspace.f new file mode 100644 index 00000000000..c3ec0c41756 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/backspace.f @@ -0,0 +1,82 @@ +! This file is all about BACKSPACE +! { dg-do run } + + integer i, n, nr + real x(10), y(10) + +! PR libfortran/20068 + open (20, status='scratch') + write (20,*) 1 + write (20,*) 2 + write (20,*) 3 + rewind (20) + read (20,*) i + if (i .ne. 1) call abort + write (*,*) ' ' + backspace (20) + read (20,*) i + if (i .ne. 1) call abort + close (20) + +! PR libfortran/20125 + open (20, status='scratch') + write (20,*) 7 + backspace (20) + read (20,*) i + if (i .ne. 7) call abort + close (20) + + open (20, status='scratch', form='unformatted') + write (20) 8 + backspace (20) + read (20) i + if (i .ne. 8) call abort + close (20) + +! PR libfortran/20471 + do n = 1, 10 + x(n) = sqrt(real(n)) + end do + open (3, form='unformatted', status='scratch') + write (3) (x(n),n=1,10) + backspace (3) + rewind (3) + read (3) (y(n),n=1,10) + + do n = 1, 10 + if (abs(x(n)-y(n)) > 0.00001) call abort + end do + close (3) + +! PR libfortran/20156 + open (3, form='unformatted', status='scratch') + do i = 1, 5 + x(1) = i + write (3) n, (x(n),n=1,10) + end do + nr = 0 + rewind (3) + 20 continue + read (3,end=30,err=90) n, (x(n),n=1,10) + nr = nr + 1 + goto 20 + 30 continue + if (nr .ne. 5) call abort + + do i = 1, nr+1 + backspace (3) + end do + + do i = 1, nr + read(3,end=70,err=90) n, (x(n),n=1,10) + if (abs(x(1) - i) .gt. 0.001) call abort + end do + close (3) + stop + + 70 continue + call abort + 90 continue + call abort + + end diff --git a/gcc/testsuite/gfortran.dg/bound_1.f90 b/gcc/testsuite/gfortran.dg/bound_1.f90 new file mode 100644 index 00000000000..ce872bb0af5 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/bound_1.f90 @@ -0,0 +1,20 @@ +! { dg-do run } + implicit none + + type test_type + integer, dimension(5) :: a + end type test_type + + type (test_type), target :: tt(2) + integer i + + i = ubound(tt(1)%a, 1) + if (i/=5) call abort() + i = lbound(tt(1)%a, 1) + if (i/=1) call abort() + + i = ubound(tt, 1) + if (i/=2) call abort() + i = lbound(tt, 1) + if (i/=1) call abort() +end diff --git a/gcc/testsuite/gfortran.dg/boz_1.f90 b/gcc/testsuite/gfortran.dg/boz_1.f90 new file mode 100644 index 00000000000..abf02d36043 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/boz_1.f90 @@ -0,0 +1,38 @@ +! { dg-do run } +! Test the boz handling +program boz + + implicit none + + integer(1), parameter :: b1 = b'00000001' + integer(2), parameter :: b2 = b'0101010110101010' + integer(4), parameter :: b4 = b'01110000111100001111000011110000' + integer(8), parameter :: & + & b8 = b'0111000011110000111100001111000011110000111100001111000011110000' + + integer(1), parameter :: o1 = o'12' + integer(2), parameter :: o2 = o'4321' + integer(4), parameter :: o4 = o'43210765' + integer(8), parameter :: o8 = o'1234567076543210' + + integer(1), parameter :: z1 = z'a' + integer(2), parameter :: z2 = z'ab' + integer(4), parameter :: z4 = z'dead' + integer(8), parameter :: z8 = z'deadbeef' + + if (z1 /= 10_1) call abort + if (z2 /= 171_2) call abort + if (z4 /= 57005_4) call abort + if (z8 /= 3735928559_8) call abort + + if (b1 /= 1_1) call abort + if (b2 /= 21930_2) call abort + if (b4 /= 1894838512_4) call abort + if (b8 /= 8138269444283625712_8) call abort + + if (o1 /= 10_1) call abort + if (o2 /= 2257_2) call abort + if (o4 /= 9245173_4) call abort + if (o8 /= 45954958542472_8) call abort + +end program boz diff --git a/gcc/testsuite/gfortran.dg/boz_3.f90 b/gcc/testsuite/gfortran.dg/boz_3.f90 new file mode 100644 index 00000000000..96184deb7df --- /dev/null +++ b/gcc/testsuite/gfortran.dg/boz_3.f90 @@ -0,0 +1,34 @@ +! { dg-do run } +! Test that the BOZ constant on the RHS, which are of different KIND than +! the LHS, are correctly converted. +! +program boz + + implicit none + + integer(1), parameter :: b1 = b'000000000001111' + integer(2), parameter :: b2 = b'00000000000000000111000011110000' + integer(4), parameter :: & + & b4 = b'0000000000000000000000000000000001110000111100001111000011110000' + + integer(1), parameter :: o1 = o'0012' + integer(2), parameter :: o2 = o'0004321' + integer(4), parameter :: o4 = o'0000000043210765' + + integer(1), parameter :: z1 = z'0a' + integer(2), parameter :: z2 = z'00ab' + integer(4), parameter :: z4 = z'0000dead' + + if (b1 /= 15_1) call abort + if (b2 /= 28912_2) call abort + if (b4 /= 1894838512_4) call abort + + if (o1 /= 10_1) call abort + if (o2 /= 2257_2) call abort + if (o4 /= 9245173_4) call abort + + if (z1 /= 10_1) call abort + if (z2 /= 171_2) call abort + if (z4 /= 57005_4) call abort + +end program boz diff --git a/gcc/testsuite/gfortran.dg/boz_4.f90 b/gcc/testsuite/gfortran.dg/boz_4.f90 new file mode 100644 index 00000000000..d016df22c49 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/boz_4.f90 @@ -0,0 +1,29 @@ +! { dg-do compile } +! Test that the conversion of a BOZ constant that is too large for the +! integer variable is caught by the compiler. +program boz + + implicit none + + integer(1), parameter :: & + & b1 = b'0101010110101010' ! { dg-error "overflow converting" } + integer(2), parameter :: & + & b2 = b'01110000111100001111000011110000' ! { dg-error "overflow converting" } + integer(4), parameter :: & + & b4 = b'0111000011110000111100001111000011110000111100001111000011110000' ! { dg-error "overflow converting" } + + integer(1), parameter :: & + & o1 = o'1234567076543210' ! { dg-error "overflow converting" } + integer(2), parameter :: & + & o2 = o'1234567076543210' ! { dg-error "overflow converting" } + integer(4), parameter :: & + & o4 = o'1234567076543210' ! { dg-error "overflow converting" } + + integer(1), parameter :: & + & z1 = z'deadbeef' ! { dg-error "overflow converting" } + integer(2), parameter :: & + & z2 = z'deadbeef' ! { dg-error "overflow converting" } + integer(4), parameter :: & + & z4 = z'deadbeeffeed' ! { dg-error "overflow converting" } + +end program boz diff --git a/gcc/testsuite/gfortran.dg/dos_eol.f b/gcc/testsuite/gfortran.dg/dos_eol.f new file mode 100644 index 00000000000..3a22a14b143 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dos_eol.f @@ -0,0 +1,19 @@ +! PR libfortran/19678 and PR libfortran/19679 +! { dg-do run } + integer i, j + + open (10,status='scratch') + write (10,'(2A)') '1', achar(13) + rewind (10) + read (10,*) i + if (i .ne. 1) call abort + close (10) + + open (10,status='scratch') + write (10,'(2A)') ' 1', achar(13) + write (10,'(2A)') ' 2', achar(13) + rewind (10) + read (10,'(I4)') i + read (10,'(I5)') j + if ((i .ne. 1) .or. (j .ne. 2)) call abort + end diff --git a/gcc/testsuite/gfortran.dg/e_d_fmt.f90 b/gcc/testsuite/gfortran.dg/e_d_fmt.f90 new file mode 100644 index 00000000000..1abfa6105ea --- /dev/null +++ b/gcc/testsuite/gfortran.dg/e_d_fmt.f90 @@ -0,0 +1,13 @@ +! { dg-do run } +! Verify that the D format uses 'D' as the exponent character. +! " " " E " " 'E' " " " " +CHARACTER*10 c1, c2 +REAL*8 r +r = 1.0 +write(c1,"(e9.2)") r +write(c2,"(d9.2)") r + +if (trim(adjustl(c1)) .ne. "0.10E+01") call abort() +if (trim(adjustl(c2)) .ne. "0.10D+01") call abort() + +END diff --git a/gcc/testsuite/gfortran.dg/eor_1.f90 b/gcc/testsuite/gfortran.dg/eor_1.f90 index c61a0b7c87f..dd3b5e98f70 100644 --- a/gcc/testsuite/gfortran.dg/eor_1.f90 +++ b/gcc/testsuite/gfortran.dg/eor_1.f90 @@ -1,4 +1,4 @@ -! { dg do-run } +! { dg-do run } ! PR 19451: The test for advance='NO' with eor used to be reversed. program main character*2 c diff --git a/gcc/testsuite/gfortran.dg/func_result_1.f90 b/gcc/testsuite/gfortran.dg/func_result_1.f90 new file mode 100644 index 00000000000..ce3c2e4e685 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/func_result_1.f90 @@ -0,0 +1,19 @@ +! { dg-do run } +! From PR 19673 : We didn't dereference the the result from POINTER +! functions with a RESULT clause +program ret_ptr + if (foo(99) /= bar(99)) call abort () +contains + function foo (arg) result(ptr) + integer :: arg + integer, pointer :: ptr + allocate (ptr) + ptr = arg + end function foo + function bar (arg) + integer :: arg + integer, pointer :: bar + allocate (bar) + bar = arg + end function bar +end program ret_ptr diff --git a/gcc/testsuite/gfortran.dg/g77/12002.f b/gcc/testsuite/gfortran.dg/g77/12002.f index 609573f4a62..0cb29c7549e 100644 --- a/gcc/testsuite/gfortran.dg/g77/12002.f +++ b/gcc/testsuite/gfortran.dg/g77/12002.f @@ -1,5 +1,5 @@ C PR middle-end/12002 -C {dg-do compile } +C { dg-do compile } COMPLEX TE1 TE1=-2. TE1=TE1+TE1 diff --git a/gcc/testsuite/gfortran.dg/g77/19990313-1.f b/gcc/testsuite/gfortran.dg/g77/19990313-1.f index b229bb40f20..db4be77334f 100644 --- a/gcc/testsuite/gfortran.dg/g77/19990313-1.f +++ b/gcc/testsuite/gfortran.dg/g77/19990313-1.f @@ -1,6 +1,6 @@ c { dg-do run } integer *8 foo, bar - double precision r + double precision r data r/4d10/ foo = 4d10 bar = r diff --git a/gcc/testsuite/gfortran.dg/g77/19990313-2.f b/gcc/testsuite/gfortran.dg/g77/19990313-2.f index 5dac2d0ed40..edd5afd8188 100644 --- a/gcc/testsuite/gfortran.dg/g77/19990313-2.f +++ b/gcc/testsuite/gfortran.dg/g77/19990313-2.f @@ -1,6 +1,6 @@ c { dg-do run } integer *8 foo, bar - complex c + complex c data c/(4e10,0)/ foo = 4e10 bar = c diff --git a/gcc/testsuite/gfortran.dg/g77/19990313-3.f b/gcc/testsuite/gfortran.dg/g77/19990313-3.f index c7489f6870a..c14beb92e71 100644 --- a/gcc/testsuite/gfortran.dg/g77/19990313-3.f +++ b/gcc/testsuite/gfortran.dg/g77/19990313-3.f @@ -1,6 +1,6 @@ c { dg-do run } integer *8 foo, bar - double complex c + double complex c data c/(4d10,0)/ foo = 4d10 bar = c diff --git a/gcc/testsuite/gfortran.dg/g77/19990525-0.f b/gcc/testsuite/gfortran.dg/g77/19990525-0.f index 0baa802b66a..589fb8ebfd1 100644 --- a/gcc/testsuite/gfortran.dg/g77/19990525-0.f +++ b/gcc/testsuite/gfortran.dg/g77/19990525-0.f @@ -15,24 +15,24 @@ c { dg-do compile } * * Run the following through g77: * - subroutine a - character*2 string1 - character*2 string2 - character*4 string3 - string1 = 's1' - string2 = 's2' + subroutine a + character*2 string1 + character*2 string2 + character*4 string3 + string1 = 's1' + string2 = 's2' c c the next 2 lines are ok. - string3 = (string1 // string2) - call b(string1//string2) + string3 = (string1 // string2) + call b(string1//string2) c c this line gives gcc/f/com.c:10660: failed assertion `hook' - call b((string1//string2)) - end + call b((string1//string2)) + end * * the output from: * -* /usr/local/egcs-19990418/bin/g77 --verbose -c D.f +* /usr/local/egcs-19990418/bin/g77 --verbose -c D.f * * is: * diff --git a/gcc/testsuite/gfortran.dg/g77/19990826-0.f b/gcc/testsuite/gfortran.dg/g77/19990826-0.f index 054f9abf552..bc471f0bf1a 100644 --- a/gcc/testsuite/gfortran.dg/g77/19990826-0.f +++ b/gcc/testsuite/gfortran.dg/g77/19990826-0.f @@ -16,5 +16,5 @@ c { dg-do run } * It seems to work fine if I change it to the generic NINT(). Probably * a name pollution problem in the new C library, but it seems bad. no? -* Thanks, -* Rick Niles. +* Thanks, +* Rick Niles. diff --git a/gcc/testsuite/gfortran.dg/g77/19990826-2.f b/gcc/testsuite/gfortran.dg/g77/19990826-2.f index 8f0f0c18eb4..b8384f8d25a 100644 --- a/gcc/testsuite/gfortran.dg/g77/19990826-2.f +++ b/gcc/testsuite/gfortran.dg/g77/19990826-2.f @@ -1,7 +1,7 @@ c { dg-do run } * From: "Billinghurst, David (RTD)" <David.Billinghurst@riotinto.com.au> * Subject: RE: single precision complex bug in g77 - was Testing g77 with LA -* PACK 3.0 +* PACK 3.0 * Date: Thu, 8 Jul 1999 00:55:11 +0100 * X-UIDL: b00d9d8081a36fef561b827d255dd4a5 diff --git a/gcc/testsuite/gfortran.dg/g77/19990826-3.f b/gcc/testsuite/gfortran.dg/g77/19990826-3.f index aeaf4439996..dba24becb4c 100644 --- a/gcc/testsuite/gfortran.dg/g77/19990826-3.f +++ b/gcc/testsuite/gfortran.dg/g77/19990826-3.f @@ -28,294 +28,293 @@ c { dg-do compile } * See <URL:http://egcs.cygnus.com/faq.html#bugreport> for instructions. C* PCAPOP - SUBROUTINE PCAPOP(M1,M2,L1,L2,NMEM,N1,N2,IB,IBB,K3,TF,TS,TC,TTO) - DIMENSION NVA(6),C(6),I(6) + SUBROUTINE PCAPOP(M1,M2,L1,L2,NMEM,N1,N2,IB,IBB,K3,TF,TS,TC,TTO) + DIMENSION NVA(6),C(6),I(6) C C CALCUL DES PARAMETRES OPTIMAUX N1 N2 IB IBB C - TACC=.035 - TTRANS=.000004 - RAD=.000001 - RMI=.000001 - RMU=.0000015 - RDI=.000003 - RTE=.000003 - REQ=.000005 - VY1=3*RTE+RDI+8*REQ+3*(RAD+RMI+RMU) - VY2=REQ+2*RAD - AR2=M2*(2*(REQ+RMI)+3*RMU+M1*(2*RAD+REQ)) + TACC=.035 + TTRANS=.000004 + RAD=.000001 + RMI=.000001 + RMU=.0000015 + RDI=.000003 + RTE=.000003 + REQ=.000005 + VY1=3*RTE+RDI+8*REQ+3*(RAD+RMI+RMU) + VY2=REQ+2*RAD + AR2=M2*(2*(REQ+RMI)+3*RMU+M1*(2*RAD+REQ)) C VARIATION DE L1,L2, C - TTOTOP=1.E+10 - N1CO=0 - N2CO=0 - IBCO=0 - IBBCO=0 - K3CO=0 - TESOP=0. - TCOP=0. - TFOP=0. - INUN=7 - INDE=7 - IF(M1.LT.128)INUN=6 - IF(M1.LT.64)INUN=5 - IF(M1.LT.32)INUN=4 - IF(M2.LT.128)INDE=6 - IF(M2.LT.64)INDE=5 - IF(M2.LT.32)INDE=4 - DO 3 NUN =3,INUN - DO 3 NDE=3,INDE - N10=2**NUN - N20=2**NDE - NDIF=(N10-N20) - NDIF=IABS(NDIF) + TTOTOP=1.E+10 + N1CO=0 + N2CO=0 + IBCO=0 + IBBCO=0 + K3CO=0 + TESOP=0. + TCOP=0. + TFOP=0. + INUN=7 + INDE=7 + IF(M1.LT.128)INUN=6 + IF(M1.LT.64)INUN=5 + IF(M1.LT.32)INUN=4 + IF(M2.LT.128)INDE=6 + IF(M2.LT.64)INDE=5 + IF(M2.LT.32)INDE=4 + DO 3 NUN =3,INUN + DO 3 NDE=3,INDE + N10=2**NUN + N20=2**NDE + NDIF=(N10-N20) + NDIF=IABS(NDIF) C POUR AVOIR CES RESULTATS FAIRE TOURNER LE PROGRAMME VEFFT1 - TCFFTU=0. - IF(N10.EQ.128.AND.N20.EQ.128)TCFFTU=3.35 - IF(N10.EQ.64.AND.N20.EQ.64)TCFFTU=.70 - IF(N10.EQ.32.AND.N20.EQ.32)TCFFTU=.138 - IF(N10.EQ.16.AND.N20.EQ.16)TCFFTU=.0332 - IF(N10.EQ.8.AND.N20.EQ.8)TCFFTU=.00688 - IF(NDIF.EQ.64)TCFFTU=1.566 - IF(NDIF.EQ.96)TCFFTU=.709 - IF(NDIF.EQ.112)TCFFTU=.349 - IF(NDIF.EQ.120)TCFFTU=.160 - IF(NDIF.EQ.32)TCFFTU=.315 - IF(NDIF.EQ.48)TCFFTU=.154 - IF(NDIF.EQ.56)TCFFTU=.07 - IF(NDIF.EQ.16)TCFFTU=.067 - IF(NDIF.EQ.24)TCFFTU=.030 - IF(NDIF.EQ.8)TCFFTU=.016 - N30=N10-L1+1 - N40=N20-L2+1 - WW=VY1+N30*VY2 - NDOU=2*N10*N20 - IF((N10.LT.L1).OR.(N20.LT.L2)) GOTO 3 - NB=NMEM-NDOU-N20*(L1-1) - NVC=2*N10*(N20-1)+M1 - IF(NB.LT.(NVC)) GOTO 3 - CALL VALENT(M1,N30,K1) - CALL VALENT(M2,N40,K2) - IS=K1/2 - IF((2*IS).NE.K1)K1=K1+1 - TFF=TCFFTU*K1*K2 - CALL VALENT(M2,N40,JOFI) - IF(NB.GE.(K1*N20*N30+2*N20*(L1-1))) GOTO 4 - TIOOP=1.E+10 - IC=1 + TCFFTU=0. + IF(N10.EQ.128.AND.N20.EQ.128)TCFFTU=3.35 + IF(N10.EQ.64.AND.N20.EQ.64)TCFFTU=.70 + IF(N10.EQ.32.AND.N20.EQ.32)TCFFTU=.138 + IF(N10.EQ.16.AND.N20.EQ.16)TCFFTU=.0332 + IF(N10.EQ.8.AND.N20.EQ.8)TCFFTU=.00688 + IF(NDIF.EQ.64)TCFFTU=1.566 + IF(NDIF.EQ.96)TCFFTU=.709 + IF(NDIF.EQ.112)TCFFTU=.349 + IF(NDIF.EQ.120)TCFFTU=.160 + IF(NDIF.EQ.32)TCFFTU=.315 + IF(NDIF.EQ.48)TCFFTU=.154 + IF(NDIF.EQ.56)TCFFTU=.07 + IF(NDIF.EQ.16)TCFFTU=.067 + IF(NDIF.EQ.24)TCFFTU=.030 + IF(NDIF.EQ.8)TCFFTU=.016 + N30=N10-L1+1 + N40=N20-L2+1 + WW=VY1+N30*VY2 + NDOU=2*N10*N20 + IF((N10.LT.L1).OR.(N20.LT.L2)) GOTO 3 + NB=NMEM-NDOU-N20*(L1-1) + NVC=2*N10*(N20-1)+M1 + IF(NB.LT.(NVC)) GOTO 3 + CALL VALENT(M1,N30,K1) + CALL VALENT(M2,N40,K2) + IS=K1/2 + IF((2*IS).NE.K1)K1=K1+1 + TFF=TCFFTU*K1*K2 + CALL VALENT(M2,N40,JOFI) + IF(NB.GE.(K1*N20*N30+2*N20*(L1-1))) GOTO 4 + TIOOP=1.E+10 + IC=1 18 IB1=2*IC - MAX=(NB-2*N20*(L1-1))/(N20*N30) - IN=MAX/2 - IF(MAX.NE.2*IN) MAX=MAX-1 - K3=K1/IB1 - IBB1=K1-K3*IB1 - IOFI=M1/(IB1*N30) - IRZ=0 - IF(IOFI*IB1*N30.EQ.M1) GOTO1234 - IRZ=1 - IOFI=IOFI+1 - IF(IBB1.EQ.0) GOTO 1234 - IF(M1.EQ.((IOFI-1)*IB1*N30+IBB1*N30)) GOTO 1233 - IRZ=2 - GOTO 1234 + MAX=(NB-2*N20*(L1-1))/(N20*N30) + IN=MAX/2 + IF(MAX.NE.2*IN) MAX=MAX-1 + K3=K1/IB1 + IBB1=K1-K3*IB1 + IOFI=M1/(IB1*N30) + IRZ=0 + IF(IOFI*IB1*N30.EQ.M1) GOTO1234 + IRZ=1 + IOFI=IOFI+1 + IF(IBB1.EQ.0) GOTO 1234 + IF(M1.EQ.((IOFI-1)*IB1*N30+IBB1*N30)) GOTO 1233 + IRZ=2 + GOTO 1234 1233 IRZ=3 1234 IBX1=IBB1 - IF(IBX1.EQ.0)IBX1=IB1 - AR1=M2*(2*(RAD+RMI+RMU+REQ)+(M1-(IOFI-1)*IB1*N30)*2*(REQ+RAD)) + IF(IBX1.EQ.0)IBX1=IB1 + AR1=M2*(2*(RAD+RMI+RMU+REQ)+(M1-(IOFI-1)*IB1*N30)*2*(REQ+RAD)) %+M2*(3*(REQ+RMU+RAD)+4*RMI+(M1-(IOFI-1)*IB1*N30)*(2*RAD+REQ) %+(IOFI-1)*IB1*N30*(2*RMI+REQ+RAD)) - AR5=(JOFI-1)*(N20-L2)*(M1-(IOFI-1)*IB1*N30)*(2*(RAD+RMU)+REQ) + AR5=(JOFI-1)*(N20-L2)*(M1-(IOFI-1)*IB1*N30)*(2*(RAD+RMU)+REQ) %*IOFI+(M2-(JOFI-1)*N40+L2-2)*(M1-(IOFI-1)*IB1*N30)*(2*(RAD+RMU %)+REQ)*IOFI - WQ=((IOFI-1)*IB1+IBX1)*JOFI*WW - AT1=N20*WQ - AT2=N40*WQ - QW=JOFI*(VY1+VY2*IB1*N30) - AT3=IOFI*N40*QW - AT4=(IOFI-1)*N40*QW - AT5=JOFI*((IOFI-1)*N40*(IB1/IBX1)*(VY1+IBX1*N30*VY2) + WQ=((IOFI-1)*IB1+IBX1)*JOFI*WW + AT1=N20*WQ + AT2=N40*WQ + QW=JOFI*(VY1+VY2*IB1*N30) + AT3=IOFI*N40*QW + AT4=(IOFI-1)*N40*QW + AT5=JOFI*((IOFI-1)*N40*(IB1/IBX1)*(VY1+IBX1*N30*VY2) %+N40*((IB1/IBX1)*(IOFI-1)+1)*(VY1+IBX1*N30*VY2)) - AT6=JOFI*((IOFI-1)*N40*(IB1/2)*(VY1+2*N30*VY2)+N40*( + AT6=JOFI*((IOFI-1)*N40*(IB1/2)*(VY1+2*N30*VY2)+N40*( %IB1*(IOFI-1)/2+IBX1/2)*(VY1+2*N30*VY2)) - T1=JOFI*N20*(L1-1)*REQ - T2=M1*(L2-1)*REQ - T3=JOFI*N20*IBX1*N30*(RAD+REQ) - T4=JOFI*((IOFI-1)*IB1*N30*N20*(2*RMI+REQ)+IBX1*N30*N20*(2*RMI+R + T1=JOFI*N20*(L1-1)*REQ + T2=M1*(L2-1)*REQ + T3=JOFI*N20*IBX1*N30*(RAD+REQ) + T4=JOFI*((IOFI-1)*IB1*N30*N20*(2*RMI+REQ)+IBX1*N30*N20*(2*RMI+R %EQ)) - T5=JOFI*((IOFI-1)*IB1/2+IBX1/2)*N20*N30*(2*RAD+REQ) - T6=2*JOFI*(((IOFI-1)*IB1+IBX1)*N20)*((5*(RMI+RMU)+4*RAD + T5=JOFI*((IOFI-1)*IB1/2+IBX1/2)*N20*N30*(2*RAD+REQ) + T6=2*JOFI*(((IOFI-1)*IB1+IBX1)*N20)*((5*(RMI+RMU)+4*RAD %)+(L1-1)*(2*RAD+REQ)+N30*(2*RAD+REQ)) - T7=JOFI*2*((IOFI-1)*IB1+IBX1)*(L1-1)*(2*RAD+REQ) - T8=JOFI*N10*N20*((IOFI-1)*IB1/2+IBX1/2)*(3*REQ+9*RAD+4*RMU+RMI) - T9=N10*N20*JOFI*((IOFI-1)*IB1/2+IBX1/2)*(REQ+RMI)+M1*M2*(REQ+R + T7=JOFI*2*((IOFI-1)*IB1+IBX1)*(L1-1)*(2*RAD+REQ) + T8=JOFI*N10*N20*((IOFI-1)*IB1/2+IBX1/2)*(3*REQ+9*RAD+4*RMU+RMI) + T9=N10*N20*JOFI*((IOFI-1)*IB1/2+IBX1/2)*(REQ+RMI)+M1*M2*(REQ+R %DI+2*RAD) - T10=JOFI*((IOFI-1)*IB1/2+IBX1/2)*2*(3*RMU+2*(RMI+RAD)+N40*(3*RMI + T10=JOFI*((IOFI-1)*IB1/2+IBX1/2)*2*(3*RMU+2*(RMI+RAD)+N40*(3*RMI %+4*RMU+3*(RAD+REQ)+N30*(2*RAD+REQ))) - POI=JOFI - IF(POI.LE.2)POI=2 - TNRAN=(N40+(POI-2)*N20+(M2-(JOFI-1)*N40+L2-1))*(RMI+RMU+RAD + POI=JOFI + IF(POI.LE.2)POI=2 + TNRAN=(N40+(POI-2)*N20+(M2-(JOFI-1)*N40+L2-1))*(RMI+RMU+RAD %+REQ+N30*(2*RAD+2*REQ)*(IB1*(IOFI-1)+IBX1)) - IF(TNRAN.LT.0.)TNRAN=0. - TCPU=T1+T2+T3+T4+T5+T6+T7+T8+T9+T10+TNRAN - NVA(1)=N40 - NVA(2)=N40 - NVA(3)=N20 - NVA(4)=N20 - NVA(5)=M2-(JOFI-1)*N40 - NVA(6)=NVA(5) - C(1)=FLOAT(IB1*N30)/FLOAT(M1) - C(2)=FLOAT(M1-(IOFI-1)*IB1*N30)/FLOAT(M1) - C(3)=C(1) - C(4)=C(2) - C(5)=C(1) - C(6)=C(2) - K=1 - P1=FLOAT(NB)/FLOAT(M1) + IF(TNRAN.LT.0.)TNRAN=0. + TCPU=T1+T2+T3+T4+T5+T6+T7+T8+T9+T10+TNRAN + NVA(1)=N40 + NVA(2)=N40 + NVA(3)=N20 + NVA(4)=N20 + NVA(5)=M2-(JOFI-1)*N40 + NVA(6)=NVA(5) + C(1)=FLOAT(IB1*N30)/FLOAT(M1) + C(2)=FLOAT(M1-(IOFI-1)*IB1*N30)/FLOAT(M1) + C(3)=C(1) + C(4)=C(2) + C(5)=C(1) + C(6)=C(2) + K=1 + P1=FLOAT(NB)/FLOAT(M1) 10 IP1=P1 - I(K)=1 - IF(IP1.GE.NVA(K)) GOTO 7 - P2=P1 - IP2=P2 + I(K)=1 + IF(IP1.GE.NVA(K)) GOTO 7 + P2=P1 + IP2=P2 8 P2=P2-FLOAT(IP2)*C(K) - IP2=P2 - IF(IP2.EQ.0) GOTO 3 - IP1=IP1+IP2 - I(K)=I(K)+1 - IF(IP1.GE.NVA(K))GOTO 7 - GOTO 8 + IP2=P2 + IF(IP2.EQ.0) GOTO 3 + IP1=IP1+IP2 + I(K)=I(K)+1 + IF(IP1.GE.NVA(K))GOTO 7 + GOTO 8 7 IF(K.EQ.6) GOTO 11 - K=K+1 - GOTO 10 + K=K+1 + GOTO 10 11 IP1=0 - IP2=0 - IP3=0 - POFI=JOFI - IF(POFI.LE.2)POFI=2 - TIOL=(I(2)+(IOFI-1)*I(1)+(POFI-2)*(IOFI-1)*I(3)+(POFI- + IP2=0 + IP3=0 + POFI=JOFI + IF(POFI.LE.2)POFI=2 + TIOL=(I(2)+(IOFI-1)*I(1)+(POFI-2)*(IOFI-1)*I(3)+(POFI- %2)*I(4)+(IOFI-1)*I(5)+I(6))*TACC+(IOFI*M1*N40+(POFI-2)*IOFI* %M1*N20+(M2-(JOFI-1)*N40+L2-1)*M1*IOFI)*TTRANS - IF(IBB1.EQ.0) GOTO 33 - IF(IB1.EQ.IBB1) GOTO 33 - IF(IBB1.EQ.2)GOTO 34 - IP3=1 - INL=NMEM/((IOFI-1)*IB1*N30+IBB1*N30) + IF(IBB1.EQ.0) GOTO 33 + IF(IB1.EQ.IBB1) GOTO 33 + IF(IBB1.EQ.2)GOTO 34 + IP3=1 + INL=NMEM/((IOFI-1)*IB1*N30+IBB1*N30) 55 IF(INL.GT.N40)INL=N40 - GOTO 35 + GOTO 35 33 IF(IB1.GT.2) GOTO 36 - IF((M1-(IOFI-1)*IB1*N30).GE.N30) GOTO 36 + IF((M1-(IOFI-1)*IB1*N30).GE.N30) GOTO 36 34 IP1=1 - INL=NMEM/(2*M1-(IOFI-1)*IB1*N30) - GOTO 55 + INL=NMEM/(2*M1-(IOFI-1)*IB1*N30) + GOTO 55 36 IP2=1 - INL=NMEM/(IOFI*IB1*N30) - IF(INL.GT.N40)INL=N40 + INL=NMEM/(IOFI*IB1*N30) + IF(INL.GT.N40)INL=N40 35 CALL VALENT(N40,INL,KN1) - CALL VALENT(M2-(JOFI-1)*N40,INL,KN2) - CALL VALENT(INL*IBB1,IB1,KN3) - CALL VALENT((N40-(KN1-1)*INL)*IBB1,IB1,KN4) - IF((IP1+IP2+IP3).NE.1) CALL ERMESF(14) - TIO1=0. - IF(IP3.EQ.1)TIO1=N30*M2*TTRANS*(IB1*(IOFI-1)+IBB1) - IF(IP1.EQ.1)TIO1=M1*M2*TTRANS - IF(IP2.EQ.1) TIO1=(IB1*N30*M2*IOFI*TTRANS) - TTIO=2.*TIO1+(KN1*IOFI*(JOFI-1)+KN2*IOFI+(KN1-1)*( + CALL VALENT(M2-(JOFI-1)*N40,INL,KN2) + CALL VALENT(INL*IBB1,IB1,KN3) + CALL VALENT((N40-(KN1-1)*INL)*IBB1,IB1,KN4) + IF((IP1+IP2+IP3).NE.1) CALL ERMESF(14) + TIO1=0. + IF(IP3.EQ.1)TIO1=N30*M2*TTRANS*(IB1*(IOFI-1)+IBB1) + IF(IP1.EQ.1)TIO1=M1*M2*TTRANS + IF(IP2.EQ.1) TIO1=(IB1*N30*M2*IOFI*TTRANS) + TTIO=2.*TIO1+(KN1*IOFI*(JOFI-1)+KN2*IOFI+(KN1-1)*( %JOFI-1)+IOFI*(JOFI-1)+KN2-1.+IOFI+(KN1*(JOFI-1)+KN2))*TACC %+M1*M2*TTRANS+TIOL - IF((IP1.EQ.1).AND.(IRZ.EQ.0))TCPU=TCPU+AT1+AT2+AT3 - IF((IP1.EQ.1).AND.(IRZ.NE.0))TCPU=TCPU+AT1+AT2+AT4+AR1 - IF((IP2.EQ.1).AND.(IRZ.EQ.0))TCPU=TCPU+AT1+AT2+AT3 - IF((IP2.EQ.1).AND.(IRZ.NE.0))TCPU=TCPU+AT1+AT2+AT3+AR2 - IFOIS=IB1/IBX1 - IF((IP3.EQ.1).AND.(IFOIS*IBX1.EQ.IB1))TCPU=TCPU+AT1+AT2+AT5+AR2 - IF((IP3.EQ.1).AND.(IFOIS*IBX1.NE.IB1))TCPU=TCPU+AT1+AT2+AT6+AR2 - IF((IP1.EQ.1).AND.(IRZ.EQ.1))TCPU=TCPU+AR5 - IF((IP1.EQ.1).AND.(IRZ.EQ.2))TCPU=TCPU+AR5 - TTIOG=TTIO+TCPU - IF(TTIOG.LE.0.) GOTO 99 - IF(TTIOG.GE.TIOOP) GOTO 99 - IBOP=IB1 - IBBOP=IBB1 - K3OP=K3 - TIOOP=TTIOG - TIOOP1=TTIO - TIOOP2=TCPU + IF((IP1.EQ.1).AND.(IRZ.EQ.0))TCPU=TCPU+AT1+AT2+AT3 + IF((IP1.EQ.1).AND.(IRZ.NE.0))TCPU=TCPU+AT1+AT2+AT4+AR1 + IF((IP2.EQ.1).AND.(IRZ.EQ.0))TCPU=TCPU+AT1+AT2+AT3 + IF((IP2.EQ.1).AND.(IRZ.NE.0))TCPU=TCPU+AT1+AT2+AT3+AR2 + IFOIS=IB1/IBX1 + IF((IP3.EQ.1).AND.(IFOIS*IBX1.EQ.IB1))TCPU=TCPU+AT1+AT2+AT5+AR2 + IF((IP3.EQ.1).AND.(IFOIS*IBX1.NE.IB1))TCPU=TCPU+AT1+AT2+AT6+AR2 + IF((IP1.EQ.1).AND.(IRZ.EQ.1))TCPU=TCPU+AR5 + IF((IP1.EQ.1).AND.(IRZ.EQ.2))TCPU=TCPU+AR5 + TTIOG=TTIO+TCPU + IF(TTIOG.LE.0.) GOTO 99 + IF(TTIOG.GE.TIOOP) GOTO 99 + IBOP=IB1 + IBBOP=IBB1 + K3OP=K3 + TIOOP=TTIOG + TIOOP1=TTIO + TIOOP2=TCPU 99 IF(IB1.GE.MAX)GOTO17 - IC=IC+1 - GOTO 18 + IC=IC+1 + GOTO 18 4 T1=JOFI*N20*(L1-1)*REQ - T2=M1*(L2-1)*REQ - T3=JOFI*N20*N30*(RAD+REQ)*K1 - T4=JOFI*(K1*N30*N20*(2*RMI+REQ)) - T5=JOFI*N20*N30*(2*RAD+REQ)*K1/2 - T6=2*JOFI*(K1*N20)*((5*RMI+RMU)+4*RAD+(L1-1)*(2*RAD+REQ)+N30*2* + T2=M1*(L2-1)*REQ + T3=JOFI*N20*N30*(RAD+REQ)*K1 + T4=JOFI*(K1*N30*N20*(2*RMI+REQ)) + T5=JOFI*N20*N30*(2*RAD+REQ)*K1/2 + T6=2*JOFI*(K1*N20)*((5*RMI+RMU)+4*RAD+(L1-1)*(2*RAD+REQ)+N30*2* %RAD+REQ) - T7=JOFI*2*K1*(L1-1)*(2*RAD+REQ) - T9=JOFI*N10*N20*K1*(REQ+RMI)/2+M1*M2*(REQ+RDI+2*RAD) - T8=JOFI*N10*N20*K1*(3*REQ+9*RAD+4*RMU+RMI)/2 - T10=JOFI*K1*(3*RMU+2*(RMI+RAD)+N40*(3*RMI + T7=JOFI*2*K1*(L1-1)*(2*RAD+REQ) + T9=JOFI*N10*N20*K1*(REQ+RMI)/2+M1*M2*(REQ+RDI+2*RAD) + T8=JOFI*N10*N20*K1*(3*REQ+9*RAD+4*RMU+RMI)/2 + T10=JOFI*K1*(3*RMU+2*(RMI+RAD)+N40*(3*RMI %+4*RMU+3*(RAD+REQ)+N30*(2*RAD+REQ))) - PIO=JOFI - IF(PIO.LE.2)PIO=2 - TNR=(N40+(PIO-2)*N20+(M2-(JOFI-1)*N40+L2-1))*(RMU+RMI+RAD+REQ+ + PIO=JOFI + IF(PIO.LE.2)PIO=2 + TNR=(N40+(PIO-2)*N20+(M2-(JOFI-1)*N40+L2-1))*(RMU+RMI+RAD+REQ+ %N30*(2*RAD+2*REQ)*K1) - IF(TNR.LE.0.)TNR=0. - BT1=JOFI*N20*WW*K1 - BT2=JOFI*N40*WW*K1 - BT3=JOFI*N40*(VY1+K1*N30*VY2) - BR1=M2*(2*(RAD+RMI+RMU+REQ)+(M1*2*(REQ+RAD)))+M2*(3*( + IF(TNR.LE.0.)TNR=0. + BT1=JOFI*N20*WW*K1 + BT2=JOFI*N40*WW*K1 + BT3=JOFI*N40*(VY1+K1*N30*VY2) + BR1=M2*(2*(RAD+RMI+RMU+REQ)+(M1*2*(REQ+RAD)))+M2*(3*( $REQ+RAD+RMU)+4*(RMI)+M1*(2*(RAD)+REQ)) - BR2=M2*(2*(REQ+RMI)+3*RMU+M1*(2*RAD+REQ)) - TCPU=T1+T2+T3+T4+T5+T6+T7+T8+T9+T10 - TCPU=TCPU+TNR+BT1+BT2 - LIOF=M1/(N30) - IRZ=0 - IF(LIOF*N30.EQ.M1) GOTO 2344 - IRZ=1 + BR2=M2*(2*(REQ+RMI)+3*RMU+M1*(2*RAD+REQ)) + TCPU=T1+T2+T3+T4+T5+T6+T7+T8+T9+T10 + TCPU=TCPU+TNR+BT1+BT2 + LIOF=M1/(N30) + IRZ=0 + IF(LIOF*N30.EQ.M1) GOTO 2344 + IRZ=1 2344 IF(IRZ.EQ.0)TCPU=TCPU+BT3 - IF(IRZ.NE.0)TCPU=TCPU+BT3+BR2 - TIOOP=2.*FLOAT(M1)*FLOAT(M2)*TTRANS+2.*FLOAT(K2)*TACC+TCPU - IBOP=1 - IBBOP=0 - K3OP=1 - TIOOP2=TCPU - TIOOP1=TIOOP-TCPU + IF(IRZ.NE.0)TCPU=TCPU+BT3+BR2 + TIOOP=2.*FLOAT(M1)*FLOAT(M2)*TTRANS+2.*FLOAT(K2)*TACC+TCPU + IBOP=1 + IBBOP=0 + K3OP=1 + TIOOP2=TCPU + TIOOP1=TIOOP-TCPU 17 TTOT=TIOOP+TFF - IF(TTOT.LE.0.) GOTO 3 - IF(TTOT.GE.TTOTOP)GOTO3 - N1CO=N10 - N2CO=N20 - IBCO=IBOP - IBBCO=IBBOP - K3CO=K3OP - TTOTOP=TTOT - TESOP=TIOOP1 - TCOP=TIOOP2 - TFOP=TFF + IF(TTOT.LE.0.) GOTO 3 + IF(TTOT.GE.TTOTOP)GOTO3 + N1CO=N10 + N2CO=N20 + IBCO=IBOP + IBBCO=IBBOP + K3CO=K3OP + TTOTOP=TTOT + TESOP=TIOOP1 + TCOP=TIOOP2 + TFOP=TFF 3 CONTINUE -C - N1=N1CO - N2=N2CO - TTO=TTOTOP - IB=IBCO - IBB=IBBCO - K3=K3CO - TC=TCOP - TS=TESOP - TF=TFOP - TT=TCOP+TFOP - TWER=TTO-TT - IF(N1.EQ.0.OR.N2.EQ.0) CALL OUTSTR(0,'PAS DE PLACE MEMOIRE SUFFISA + N1=N1CO + N2=N2CO + TTO=TTOTOP + IB=IBCO + IBB=IBBCO + K3=K3CO + TC=TCOP + TS=TESOP + TF=TFOP + TT=TCOP+TFOP + TWER=TTO-TT + IF(N1.EQ.0.OR.N2.EQ.0) CALL OUTSTR(0,'PAS DE PLACE MEMOIRE SUFFISA $NTE POUR UNE MISE EN OEUVRE PAR BLOCS$') - IF(IB.NE.1)RETURN - IHJ=(M1/(N1-L1+1)) - IF(IHJ*(N1-L1+1).NE.M1)IHJ=IHJ+1 - IHJ1=IHJ/2 - IF(IHJ1*2.NE.IHJ)GOTO7778 - IB=IHJ - IBB=0 - RETURN -7778 IB=IHJ+1 - IBB=0 - RETURN - END + IF(IB.NE.1)RETURN + IHJ=(M1/(N1-L1+1)) + IF(IHJ*(N1-L1+1).NE.M1)IHJ=IHJ+1 + IHJ1=IHJ/2 + IF(IHJ1*2.NE.IHJ)GOTO7778 + IB=IHJ + IBB=0 + RETURN +7778 IB=IHJ+1 + IBB=0 + RETURN + END diff --git a/gcc/testsuite/gfortran.dg/g77/20000511-1.f b/gcc/testsuite/gfortran.dg/g77/20000511-1.f index fca4bf94080..261b6a0e27c 100644 --- a/gcc/testsuite/gfortran.dg/g77/20000511-1.f +++ b/gcc/testsuite/gfortran.dg/g77/20000511-1.f @@ -14,9 +14,9 @@ C -ffast-math ICE provoked by this conditional C C code for both increments equal to 1 C - do i= 1,n - sy(i)= sy(i)+sa*sx(i) - enddo - endif + do i= 1,n + sy(i)= sy(i)+sa*sx(i) + enddo + endif return end diff --git a/gcc/testsuite/gfortran.dg/g77/20000511-2.f b/gcc/testsuite/gfortran.dg/g77/20000511-2.f index b3a3ca3dfd4..1ae24ae5b87 100644 --- a/gcc/testsuite/gfortran.dg/g77/20000511-2.f +++ b/gcc/testsuite/gfortran.dg/g77/20000511-2.f @@ -47,16 +47,16 @@ C Multiply by inv(L). C do j= 1,n-1 C the following min() intrinsic provokes this bug - lm= min(kl,n-j) - jp= ipiv(j) - t= work(jp) - if(jp.ne.j)then + lm= min(kl,n-j) + jp= ipiv(j) + t= work(jp) + if(jp.ne.j)then C but only when combined with this if block - work(jp)= work(j) - work(j)= t - endif + work(jp)= work(j) + work(j)= t + endif C and this subroutine call - call saxpy(lm,-t,ab(kd+1,j),1,work(j+1),1) - enddo + call saxpy(lm,-t,ab(kd+1,j),1,work(j+1),1) + enddo return end diff --git a/gcc/testsuite/gfortran.dg/g77/970625-2.f b/gcc/testsuite/gfortran.dg/g77/970625-2.f index 53a4b23cc5d..c77a2b5f310 100644 --- a/gcc/testsuite/gfortran.dg/g77/970625-2.f +++ b/gcc/testsuite/gfortran.dg/g77/970625-2.f @@ -5,7 +5,7 @@ * Subject: Re: testing 970624. * In-Reply-To: <199706251027.GAA07892@churchy.gnu.ai.mit.edu> * References: <199706251018.MAA21538@nu> -* <199706251027.GAA07892@churchy.gnu.ai.mit.edu> +* <199706251027.GAA07892@churchy.gnu.ai.mit.edu> * X-Mailer: VM 6.30 under Emacs 19.34.1 * Content-Type: text/plain; charset=US-ASCII * @@ -24,7 +24,7 @@ * * Regards, * -- -* ===== R.Hooft@EuroMail.com http://www.Sander.EMBL-Heidelberg.DE/rob/ == +* ===== R.Hooft@EuroMail.com http://www.Sander.EMBL-Heidelberg.DE/rob/ == * ==== In need of protein modeling? http://www.Sander.EMBL-Heidelberg.DE/whatif/ * Validation of protein structures? http://biotech.EMBL-Heidelberg.DE:8400/ ==== * == PGPid 0xFA19277D == Use Linux! Free Software Rules The World! ============= diff --git a/gcc/testsuite/gfortran.dg/g77/980310-2.f b/gcc/testsuite/gfortran.dg/g77/980310-2.f index 829706a9e62..1ed5efc5960 100644 --- a/gcc/testsuite/gfortran.dg/g77/980310-2.f +++ b/gcc/testsuite/gfortran.dg/g77/980310-2.f @@ -33,12 +33,12 @@ C doesn't exist in the g77 runtime) C C RND - Return a random integer mod n C - INTEGER FUNCTION RND (N) - IMPLICIT INTEGER (A-Z) - REAL RAND - COMMON /SEED/ RNSEED + INTEGER FUNCTION RND (N) + IMPLICIT INTEGER (A-Z) + REAL RAND + COMMON /SEED/ RNSEED - RND = RAND(RNSEED)*FLOAT(N) - RETURN + RND = RAND(RNSEED)*FLOAT(N) + RETURN - END + END diff --git a/gcc/testsuite/gfortran.dg/g77/980310-3.f b/gcc/testsuite/gfortran.dg/g77/980310-3.f index e7e9523558a..56560237859 100644 --- a/gcc/testsuite/gfortran.dg/g77/980310-3.f +++ b/gcc/testsuite/gfortran.dg/g77/980310-3.f @@ -1,9 +1,9 @@ c { dg-do compile } c -c This demonstrates a problem with g77 and pic on x86 where -c egcs 1.0.1 and earlier will generate bogus assembler output. -c unfortunately, gas accepts the bogus acssembler output and -c generates code that almost works. +c This demonstrates a problem with g77 and pic on x86 where +c egcs 1.0.1 and earlier will generate bogus assembler output. +c unfortunately, gas accepts the bogus acssembler output and +c generates code that almost works. c diff --git a/gcc/testsuite/gfortran.dg/g77/980310-8.f b/gcc/testsuite/gfortran.dg/g77/980310-8.f index bafb470d340..c20f2d72082 100644 --- a/gcc/testsuite/gfortran.dg/g77/980310-8.f +++ b/gcc/testsuite/gfortran.dg/g77/980310-8.f @@ -4,19 +4,20 @@ C Subject: egcs-g77 and array indexing C Reply-To: etseidl@jutland.ca.sandia.gov C Date: Wed, 26 Nov 1997 10:38:27 -0800 C From: Edward Seidl <etseidl@jutland.ca.sandia.gov> -C -C I have some horrible spaghetti code I'm trying compile with egcs-g77, -C but it's puking on code like the example below. I have no idea if it's -C legal fortran or not, and I'm in no position to change it. All I do know -C is it compiles with a number of other compilers, including f2c and -C g77-0.5.19.1/gcc-2.7.2.1. When I try to compile with egcs-2.90.18 971122 -C I get the following (on both i686-pc-linux-gnu and alphaev56-unknown-linux-gnu): -C -C foo.f: In subroutine `foobar': -C foo.f:11: -C subroutine foobar(norb,nnorb) -C ^ -C Array `norb' at (^) is too large to handle +C +C I have some horrible spaghetti code I'm trying compile with egcs-g77, +C but it's puking on code like the example below. I have no idea if it's +C legal fortran or not, and I'm in no position to change it. All I do know +C is it compiles with a number of other compilers, including f2c and +C g77-0.5.19.1/gcc-2.7.2.1. When I try to compile with egcs-2.90.18 971122 +C I get the following (on both i686-pc-linux-gnu and +C alphaev56-unknown-linux-gnu): +C +Cfoo.f: In subroutine `foobar': +Cfoo.f:11: +C subroutine foobar(norb,nnorb) +C ^ +CArray `norb' at (^) is too large to handle program foo implicit integer(A-Z) diff --git a/gcc/testsuite/gfortran.dg/g77/980519-2.f b/gcc/testsuite/gfortran.dg/g77/980519-2.f index 50b517fbd0c..3134a00b5cd 100644 --- a/gcc/testsuite/gfortran.dg/g77/980519-2.f +++ b/gcc/testsuite/gfortran.dg/g77/980519-2.f @@ -40,10 +40,10 @@ c Next declaration added on transfer to gfortran testsuite common /Idim/ nlay, nlayz common /Idim/ n_work common /Idim/ nb_calls - - real Xsp, Ysp, Xrcv, Yrcv - real in( jT_f-hd_T : jT_l ) - + + real Xsp, Ysp, Xrcv, Yrcv + real in( jT_f-hd_T : jT_l ) + in( jT_f-hd_T ) = Xsp in( jT_f-hd_T + 1 ) = Ysp in( jT_f-hd_T + 2 ) = Xrcv diff --git a/gcc/testsuite/gfortran.dg/g77/alpha1.f b/gcc/testsuite/gfortran.dg/g77/alpha1.f index 5b33840f8c6..e8b8ed7cafd 100644 --- a/gcc/testsuite/gfortran.dg/g77/alpha1.f +++ b/gcc/testsuite/gfortran.dg/g77/alpha1.f @@ -19,8 +19,8 @@ C at this point! ! !if { [ishost "i\[34567\]86-*-*"] } { ! if { [istarget "mmix-knuth-mmixware"] -! || [istarget "powerpc-*-*"] } { -! set torture_compile_xfail [istarget] +! || [istarget "powerpc-*-*"] } { +! set torture_compile_xfail [istarget] ! } !} ! diff --git a/gcc/testsuite/gfortran.dg/g77/claus.f b/gcc/testsuite/gfortran.dg/g77/claus.f index 63b9be254c9..391d1cb9a85 100644 --- a/gcc/testsuite/gfortran.dg/g77/claus.f +++ b/gcc/testsuite/gfortran.dg/g77/claus.f @@ -7,8 +7,8 @@ c { dg-do run } k=1 n=2 ind=k-n+2 - if (ind /= 1) call abort - if (ab(ind) /= 1) call abort - if (k-n+2 /= 1) call abort - if (ab(k-n+2) /= 1) call abort + if (ind /= 1) call abort + if (ab(ind) /= 1) call abort + if (k-n+2 /= 1) call abort + if (ab(k-n+2) /= 1) call abort END diff --git a/gcc/testsuite/gfortran.dg/g77/erfc.f b/gcc/testsuite/gfortran.dg/g77/erfc.f index 0ab0aee8c1c..f8aae199d51 100644 --- a/gcc/testsuite/gfortran.dg/g77/erfc.f +++ b/gcc/testsuite/gfortran.dg/g77/erfc.f @@ -1,32 +1,32 @@ c { dg-do run } c============================================== test.f - real x, y - real*8 x1, y1 - x=0. - y = erfc(x) - if (y .ne. 1.) call abort + real x, y + real*8 x1, y1 + x=0. + y = erfc(x) + if (y .ne. 1.) call abort - x=1.1 - y = erfc(x) - if (abs(y - .1197949) .ge. 1.e-6) call abort + x=1.1 + y = erfc(x) + if (abs(y - .1197949) .ge. 1.e-6) call abort -* modified from x=10, y .gt. 1.5e-44 to avoid lack of -mieee on Alphas. - x=8 - y = erfc(x) - if (y .gt. 1.2e-28) call abort +c modified from x=10, y .gt. 1.5e-44 to avoid lack of -mieee on Alphas. + x=8 + y = erfc(x) + if (y .gt. 1.2e-28) call abort - x1=0. - y1 = erfc(x1) - if (y1 .ne. 1.) call abort + x1=0. + y1 = erfc(x1) + if (y1 .ne. 1.) call abort - x1=1.1d0 - y1 = erfc(x1) - if (abs(y1 - .1197949d0) .ge. 1.d-6) call abort + x1=1.1d0 + y1 = erfc(x1) + if (abs(y1 - .1197949d0) .ge. 1.d-6) call abort - x1=10 - y1 = erfc(x1) - if (y1 .gt. 1.5d-44) call abort - end + x1=10 + y1 = erfc(x1) + if (y1 .gt. 1.5d-44) call abort + end c================================================= !output: ! 0. 1.875 diff --git a/gcc/testsuite/gfortran.dg/g77/short.f b/gcc/testsuite/gfortran.dg/g77/short.f index 3f0e12217ad..e9a18a1315b 100644 --- a/gcc/testsuite/gfortran.dg/g77/short.f +++ b/gcc/testsuite/gfortran.dg/g77/short.f @@ -38,16 +38,16 @@ c a four-way average of rhobar c another four-way average of rhobar do 270 k=0,N - rtmp1 = z(2,2,k) - rtmp2 = z(1,2,k) - rtmp3 = z(2,1,k) - rtmp4 = z(1,1,k) - yzin2(k) = 0.25 * + rtmp1 = z(2,2,k) + rtmp2 = z(1,2,k) + rtmp3 = z(2,1,k) + rtmp4 = z(1,1,k) + yzin2(k) = 0.25 * & ( rtmp1 + rtmp2 + rtmp3 + rtmp4 ) 270 continue do k=0,N - if (yzin1(k) .ne. yzin2(k)) call abort + if (yzin1(k) .ne. yzin2(k)) call abort enddo if (yzin1(0) .ne. -1371.) call abort if (yzin1(1) .ne. -685.5) call abort diff --git a/gcc/testsuite/gfortran.dg/g77_intrinsics_funcs.f b/gcc/testsuite/gfortran.dg/g77_intrinsics_funcs.f new file mode 100644 index 00000000000..a2c37b03fdc --- /dev/null +++ b/gcc/testsuite/gfortran.dg/g77_intrinsics_funcs.f @@ -0,0 +1,51 @@ +! { dg-do compile } +! Testing g77 intrinsics as subroutines + integer*8 i8 + integer*4 i4 + integer i + character*80 c + + i8 = time () + i4 = time () + i8 = time8 () + i4 = time8 () + + i8 = hostnm (c) + i4 = hostnm (c) + i = hostnm (c) + + i8 = ierrno () + i4 = ierrno () + i = ierrno () + + i8 = kill (i8, i8) + i8 = kill (i8, i4) + i8 = kill (i4, i8) + i8 = kill (i4, i4) + i4 = kill (i8, i8) + i4 = kill (i8, i4) + i4 = kill (i4, i8) + i4 = kill (i4, i4) + + i8 = link ('foo', 'bar') + i4 = link ('foo', 'bar') + i = link ('foo', 'bar') + + i8 = rename ('foo', 'bar') + i4 = rename ('foo', 'bar') + i = rename ('foo', 'bar') + + i8 = symlnk ('foo', 'bar') + i4 = symlnk ('foo', 'bar') + i = symlnk ('foo', 'bar') + +! Cleaning our mess + call unlink ('bar') + +! This should be the last test, unless you want garbage everywhere in +! your filesystem. + i8 = chdir ('..') + i4 = chdir ('..') + i = chdir ('..') + + end diff --git a/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f b/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f new file mode 100644 index 00000000000..1d797f75a28 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f @@ -0,0 +1,82 @@ +! { dg-do compile } +! Testing g77 intrinsics as subroutines + integer*8 i8, j8 + integer*4 i4, j4 + integer i, j + character*80 c + + call gerror (c) + call getlog (c) + + call hostnm (c, status = i8) + call hostnm (c, i8) + call hostnm (c, status = i4) + call hostnm (c, i4) + call hostnm (c, status = i) + call hostnm (c, i) + call hostnm (c) + + call kill (i8, i8, status = i8) + call kill (i8, i8, i8) + call kill (i4, i8, i8) + call kill (i8, i4, i8) + call kill (i8, i8, i4) + call kill (i4, i4, i8) + call kill (i4, i8, i4) + call kill (i8, i4, i4) + call kill (i4, i4, i4) + call kill (i, i, i) + call kill (i8, i8) + call kill (i4, i8) + call kill (i8, i4) + call kill (i4, i4) + call kill (i, i) + + call link ('foo', 'bar', status = i8) + call link ('foo', 'bar', status = i4) + call link ('foo', 'bar', status = i) + call link ('foo', 'bar', i8) + call link ('foo', 'bar', i4) + call link ('foo', 'bar', i) + call link ('foo', 'bar') + + call perror (c) + + call rename ('foo', 'bar', status = i8) + call rename ('foo', 'bar', status = i4) + call rename ('foo', 'bar', status = i) + call rename ('foo', 'bar', i8) + call rename ('foo', 'bar', i4) + call rename ('foo', 'bar', i) + call rename ('foo', 'bar') + + i = 1 + i4 = 1 + i8 = 1 + call sleep (i) + call sleep (i4) + call sleep (i8) + call sleep (-1) + + call symlnk ('foo', 'bar', status = i8) + call symlnk ('foo', 'bar', status = i4) + call symlnk ('foo', 'bar', status = i) + call symlnk ('foo', 'bar', i8) + call symlnk ('foo', 'bar', i4) + call symlnk ('foo', 'bar', i) + call symlnk ('foo', 'bar') + +! Cleaning our mess + call unlink ('bar') + +! This should be the last test, unless you want garbage everywhere in +! your filesystem. + call chdir ('..', status = i8) + call chdir ('..', i8) + call chdir ('..', status = i4) + call chdir ('..', i4) + call chdir ('..', status = i) + call chdir ('..', i) + call chdir ('..') + + end diff --git a/gcc/testsuite/gfortran.dg/ishft.f90 b/gcc/testsuite/gfortran.dg/ishft.f90 index d8ca3a7de73..88edd30efdd 100644 --- a/gcc/testsuite/gfortran.dg/ishft.f90 +++ b/gcc/testsuite/gfortran.dg/ishft.f90 @@ -25,7 +25,7 @@ if (ishft (1_8, 0) /= 1) call abort if (ishft (1_8, 1) /= 2) call abort if (ishft (3_8, 1) /= 6) call abort if (ishft (-1_8, 1) /= -2) call abort -if (ishft (-1_8, -60) /= z'F'_8) call abort ! { dg-warning "" "" } +if (ishft (-1_8, -60) /= z'F') call abort if (ishftc (1_1, 0) /= 1) call abort if (ishftc (1_1, 1) /= 2) call abort diff --git a/gcc/testsuite/gfortran.dg/largeequiv_1.f90 b/gcc/testsuite/gfortran.dg/largeequiv_1.f90 new file mode 100644 index 00000000000..39b1f815938 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/largeequiv_1.f90 @@ -0,0 +1,13 @@ +! { dg-do run } +! PR 20361 : We didn't check if a large equivalence actually fit on +! the stack, and therefore segfaulted at execution time +subroutine test +integer i(1000000), j +equivalence (i(50), j) + +j = 1 +if (i(50) /= j) call abort() +end subroutine test + +call test +end diff --git a/gcc/testsuite/gfortran.dg/negative_unit.f b/gcc/testsuite/gfortran.dg/negative_unit.f new file mode 100644 index 00000000000..fd0100a14de --- /dev/null +++ b/gcc/testsuite/gfortran.dg/negative_unit.f @@ -0,0 +1,22 @@ +! { dg-do run } +! +! PR libfortran/20660 and other bugs (not filed in bugzilla) relating +! to negative units +! +! Bugs submitted by Walt Brainerd + integer i + logical l + + i = 0 +! gfortran created a 'fort.-1' file and wrote "Hello" in it + write (unit=-1, fmt=*, iostat=i) "Hello" + if (i <= 0) call abort + + i = 0 + open (unit=-11, file="xxx", iostat=i) + if (i <= 0) call abort + + inquire (unit=-42, exist=l) + if (l) call abort + + end diff --git a/gcc/testsuite/gfortran.dg/nesting_1.f90 b/gcc/testsuite/gfortran.dg/nesting_1.f90 new file mode 100644 index 00000000000..51ebfd999a8 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/nesting_1.f90 @@ -0,0 +1,18 @@ +! PR 18525 +! we used to incorrectly refer to n from a when resolving the call to +! c from b +! { dg-do run } +subroutine a(n) +call b(n+1) +contains + subroutine b(n) + call c(n) + end subroutine b + + subroutine c(m) + if (m/=1) call abort + end subroutine c +end subroutine a + +call a(0) +end diff --git a/gcc/testsuite/gfortran.dg/open-options-blanks.f b/gcc/testsuite/gfortran.dg/open-options-blanks.f new file mode 100644 index 00000000000..8f5faa41629 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/open-options-blanks.f @@ -0,0 +1,7 @@ +! { dg-do run } +! PR 20163, first half: Trailing blanks on an option to +! open used to cause an error + CHARACTER*8 ST + ST = 'SCRATCH ' + OPEN(UNIT=10,STATUS=ST) + END diff --git a/gcc/testsuite/gfortran.dg/open_new.f90 b/gcc/testsuite/gfortran.dg/open_new.f90 index 9e9c9512776..3b8e95ae944 100644 --- a/gcc/testsuite/gfortran.dg/open_new.f90 +++ b/gcc/testsuite/gfortran.dg/open_new.f90 @@ -1,4 +1,4 @@ -! { dg do-run } +! { dg-do run } ! PR 18982: verifies that opening an existing file with ! status="new" is an error program main diff --git a/gcc/testsuite/gfortran.dg/pr15332.f b/gcc/testsuite/gfortran.dg/pr15332.f new file mode 100644 index 00000000000..238553533e2 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr15332.f @@ -0,0 +1,12 @@ +! PR libfortran/15332 +! {do-do run} + character*12 c + + write (c,100) 0, 1 + if (c .ne. 'i = 0, j = 1') call abort + + write (c,100) 0 + if (c .ne. 'i = 0 ') call abort + + 100 format ('i = ',i1,:,', j = ',i1) + end diff --git a/gcc/testsuite/gfortran.dg/pr15754.f90 b/gcc/testsuite/gfortran.dg/pr15754.f90 index 6d8e34f28db..f595d6e2ac6 100644 --- a/gcc/testsuite/gfortran.dg/pr15754.f90 +++ b/gcc/testsuite/gfortran.dg/pr15754.f90 @@ -1,7 +1,7 @@ ! we didn't give a warning if the RHS of an assignment was NULL ! { dg-do-compile } INTEGER, POINTER :: P -I = NULL() ! { dg-warning "NULL appears" "Assignment non-pointer = NULL" } -P = NULL() ! { dg-warning "NULL appears" "Assignment pointer = NULL" } +I = NULL() ! { dg-error "NULL appears" "Assignment non-pointer = NULL" } +P = NULL() ! { dg-error "NULL appears" "Assignment pointer = NULL" } P => NULL() END diff --git a/gcc/testsuite/gfortran.dg/pr15959.f90 b/gcc/testsuite/gfortran.dg/pr15959.f90 new file mode 100644 index 00000000000..b7f3719dfe4 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr15959.f90 @@ -0,0 +1,5 @@ +! { dg-do run } +! Test initializer of character array. PR15959 +character (*), parameter :: a (1:2) = (/'ab', 'abc'/) +if (a(2) .ne. 'abc') call abort() +end diff --git a/gcc/testsuite/gfortran.dg/pr17229.f b/gcc/testsuite/gfortran.dg/pr17229.f new file mode 100644 index 00000000000..b1a4471e410 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr17229.f @@ -0,0 +1,23 @@ +! PR fortran/17229 +! { dg-do run } + integer i + logical l + + l = .false. + i = -1 + if (l) if (i) 999,999,999 + + l = .true. + if (l) if (i) 10,999,999 + go to 999 + + 10 i = 0 + if (l) if (i) 999,20,999 + go to 999 + + 20 i = 1 + if (l) if (i) 999,999,30 + go to 999 + + 999 call abort + 30 end diff --git a/gcc/testsuite/gfortran.dg/pr18025.f90 b/gcc/testsuite/gfortran.dg/pr18025.f90 new file mode 100644 index 00000000000..26d5c01e023 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr18025.f90 @@ -0,0 +1,8 @@ +! PR libfortran/18025 <coudert@clipper.ens.fr> +! { dg-do run } + character(len=80) :: c + write(c, "('#',F0.2,'#')") 1.23 + if (c /= '#1.23#') call abort + write(c, "('#',F0.2,'#')") -1.23 + if (c /= '#-1.23#') call abort + end diff --git a/gcc/testsuite/gfortran.dg/pr19936_1.f90 b/gcc/testsuite/gfortran.dg/pr19936_1.f90 new file mode 100644 index 00000000000..cd5140f21b1 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr19936_1.f90 @@ -0,0 +1,5 @@ +! { dg-do compile } +program pr19936_1 + integer, parameter :: i=4 + print *,(/(i,i=1,4)/) ! { dg-error "Expected VARIABLE" } +end program pr19936_1 diff --git a/gcc/testsuite/gfortran.dg/pr19936_2.f90 b/gcc/testsuite/gfortran.dg/pr19936_2.f90 new file mode 100644 index 00000000000..ad43c943fec --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr19936_2.f90 @@ -0,0 +1,5 @@ +! { dg-do compile } +program pr19936_2 + integer i + print *,(/(i,i=1a,4)/) ! { dg-error "Syntax error in iterator" } +end program pr19936_2 diff --git a/gcc/testsuite/gfortran.dg/pr19936_3.f90 b/gcc/testsuite/gfortran.dg/pr19936_3.f90 new file mode 100644 index 00000000000..6f6f8ba37a9 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr19936_3.f90 @@ -0,0 +1,5 @@ +! { dg-do compile } +program pr19936_3 + integer, parameter :: i = 4 + print *,(/(i,i,4)/) ! { dg-error "Syntax error in COMPLEX" } +end program pr19936_3 diff --git a/gcc/testsuite/gfortran.dg/pr20124.f90 b/gcc/testsuite/gfortran.dg/pr20124.f90 new file mode 100644 index 00000000000..69f4f18b29c --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr20124.f90 @@ -0,0 +1,8 @@ +! { dg-do run } +! pr 20124 + character*80 line + x = -.01 + y = .01 + write(line,'(2f10.2)') x, y + if (line.ne.' -0.01 0.01') call abort + end diff --git a/gcc/testsuite/gfortran.dg/pr20163-2.f b/gcc/testsuite/gfortran.dg/pr20163-2.f new file mode 100644 index 00000000000..c0b2573ed93 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr20163-2.f @@ -0,0 +1,5 @@ + open(10,status="foo",err=100) + call abort + 100 continue + open(10,status="scratch") + end diff --git a/gcc/testsuite/gfortran.dg/pr20257.f90 b/gcc/testsuite/gfortran.dg/pr20257.f90 new file mode 100644 index 00000000000..3808829b486 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr20257.f90 @@ -0,0 +1,9 @@ +! { dg-do run } + integer,parameter :: n = 10000 + real(8) array(10000) + + array(:) = 0 + open (10, status='scratch') + write (10,*) array + close (10) +end diff --git a/gcc/testsuite/gfortran.dg/pr20480.f90 b/gcc/testsuite/gfortran.dg/pr20480.f90 new file mode 100644 index 00000000000..12e53009d91 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr20480.f90 @@ -0,0 +1,9 @@ +! { dg-do run } +! PR libfortran/20480 +! fxcoudert@gcc.gnu.org + character(len=80) c + write (c,'(ES12.3)') 0.0 + if (trim(adjustl(c)) .ne. '0.000E+00') call abort () + write (c,'(EN12.3)') 0.0 + if (trim(adjustl(c)) .ne. '0.000E+00') call abort () + end diff --git a/gcc/testsuite/gfortran.dg/pr20755.f b/gcc/testsuite/gfortran.dg/pr20755.f new file mode 100644 index 00000000000..e2bac5a7dcc --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr20755.f @@ -0,0 +1,10 @@ +! PR libfortran/20755 +! { dg-do run } + character*30 s + + write (s,2000) 0.0, 0.02 + if (s .ne. " 0.00 2.000E-02") call abort + write (s,2000) 0.01, 0.02 + if (s .ne. " 1.000E-02 2.000E-02") call abort + 2000 format (1PG12.3,G12.3) + end diff --git a/gcc/testsuite/gfortran.dg/promotion.f90 b/gcc/testsuite/gfortran.dg/promotion.f90 new file mode 100644 index 00000000000..d1b9b686e58 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/promotion.f90 @@ -0,0 +1,12 @@ +! { dg-do run { target i?86-*-* } } +! { dg-options "-fdefault-integer-8 -fdefault-real-8" } +program a + logical l + integer i + real x + double precision d + if (kind(l) /= 8) call abort + if (kind(i) /= 8) call abort + if (kind(x) /= 8) call abort + if (kind(d) /= 8) call abort +end program a diff --git a/gcc/testsuite/gfortran.dg/real_index_1.f90 b/gcc/testsuite/gfortran.dg/real_index_1.f90 new file mode 100644 index 00000000000..16ceca82774 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/real_index_1.f90 @@ -0,0 +1,7 @@ +! { dg-do run } +! PR 16907 : We didn't support REAL array indices as an extension + integer I, A(10) + A = 2 + I=A(1.0) ! { dg-warning "Extension" } + if (i/=2) call abort () + end diff --git a/gcc/testsuite/gfortran.dg/spec_expr_1.f90 b/gcc/testsuite/gfortran.dg/spec_expr_1.f90 new file mode 100644 index 00000000000..61591c3113c --- /dev/null +++ b/gcc/testsuite/gfortran.dg/spec_expr_1.f90 @@ -0,0 +1,12 @@ +! { dg-do compile } +! PR 20323 +! We didn't verify that character length expressions are specification +! expressions. +function testpresent(arg) + integer, intent(in), optional :: arg + character(len=arg) :: s ! { dg-error "OPTIONAL" } + logical :: testpresent + + testpresent=.true. + +end function testpresent diff --git a/gcc/testsuite/gfortran.dg/stfunc_2.f90 b/gcc/testsuite/gfortran.dg/stfunc_2.f90 new file mode 100644 index 00000000000..75ecb057b05 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/stfunc_2.f90 @@ -0,0 +1,6 @@ +! { dg-do compile } +! PR 20467 : we didn't check if a statement function had the dummy attribute. +SUBROUTINE a(b) + b(c) = 0 ! { dg-error "Unclassifiable statement" } +END SUBROUTINE a + diff --git a/gcc/testsuite/gfortran.dg/string_pad_trunc.f90 b/gcc/testsuite/gfortran.dg/string_pad_trunc.f90 new file mode 100644 index 00000000000..738a181b962 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/string_pad_trunc.f90 @@ -0,0 +1,20 @@ +! { dg-do run } +! PR20713. Pad and truncate string. + +character(len = 6),parameter:: a = 'hello' +character(len = 6),parameter:: b = 'hello *' +character(len = 6),parameter:: c (1:1) = 'hello' +character(len = 11) line + +write (line, '(6A)') a, 'world' +if (line .ne. 'hello world') call abort + +write (line, '(6A)') b, 'world' +if (line .ne. 'hello world') call abort + +write (line, '(6A)') c, 'world' +if (line .ne. 'hello world') call abort + +write (line, '(6A)') c(1), 'world' +if (line .ne. 'hello world') call abort +end diff --git a/gcc/testsuite/gfortran.dg/tiny_1.f90 b/gcc/testsuite/gfortran.dg/tiny_1.f90 new file mode 100644 index 00000000000..e8bfb2d8994 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/tiny_1.f90 @@ -0,0 +1,9 @@ +! { dg-do run } +! Test program inspired by bug report from Walt Brainerd. +! http://gcc.gnu.org/ml/fortran/2005-04/msg00132.html +program tiny1 + real(4) x4 + real(8) x8 + if (minexponent(x4) /= exponent(tiny(x4))) call abort + if (minexponent(x8) /= exponent(tiny(x8))) call abort +end program tiny1 diff --git a/gcc/testsuite/gfortran.dg/tiny_2.f90 b/gcc/testsuite/gfortran.dg/tiny_2.f90 new file mode 100644 index 00000000000..194e6cd3109 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/tiny_2.f90 @@ -0,0 +1,9 @@ +! { dg-do run } +program tiny2 + real(4) x4 + real(8) x8 + x4 = tiny(x4) + x8 = tiny(x8) + if (minexponent(x4) /= exponent(x4)) call abort + if (minexponent(x8) /= exponent(x8)) call abort +end program tiny2 diff --git a/gcc/testsuite/gfortran.dg/write_0_pe_format.f90 b/gcc/testsuite/gfortran.dg/write_0_pe_format.f90 new file mode 100644 index 00000000000..3890c32ecc0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/write_0_pe_format.f90 @@ -0,0 +1,9 @@ +! { dg-do run } +! PR libfortran/20101 +! With format "PE", 0.0 must still have "+00" as exponent +character(len=10) :: c1, c2 +write(c1,"(1pe9.2)") 0.0 +write(c2,"(1pe9.2)") 1.0 +if (trim(adjustl(c1)) .ne. "0.00E+00") call abort() +if (trim(adjustl(c2)) .ne. "1.00E+00") call abort() +end diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/backspace.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/backspace.f90 index 16f5523e353..8781fb2c996 100644 --- a/gcc/testsuite/gfortran.fortran-torture/execute/backspace.f90 +++ b/gcc/testsuite/gfortran.fortran-torture/execute/backspace.f90 @@ -9,6 +9,6 @@ read(10,*)C backspace(10) read(10,*) C - if (C.ne.'b') call abort + if (C.ne.'a') call abort close(10,STATUS='DELETE') end diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/data.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/data.f90 index 81954e222b5..d2d86a2d71c 100644 --- a/gcc/testsuite/gfortran.fortran-torture/execute/data.f90 +++ b/gcc/testsuite/gfortran.fortran-torture/execute/data.f90 @@ -1,13 +1,13 @@ ! Program to test data statement program data - call sub1() - call sub2() - end + call sub1() + call sub2() + end subroutine sub1() integer i type tmp integer, dimension(4)::a - real :: r + real :: r end type type tmp1 type (tmp) t1(4) @@ -58,7 +58,7 @@ if (tmp2(2)%b .ne. 0) call abort end - subroutine sub2() + subroutine sub2() integer a(4,4), b(10) integer i,j,k real r,t diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/integer_select.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/integer_select.f90 index 148cd394e68..765356d2610 100644 --- a/gcc/testsuite/gfortran.fortran-torture/execute/integer_select.f90 +++ b/gcc/testsuite/gfortran.fortran-torture/execute/integer_select.f90 @@ -8,20 +8,20 @@ PROGRAM Test_INTEGER_select SELECT CASE (I) CASE (:-1) - CALL abort + CALL abort CASE (1:) - CALL abort + CALL abort CASE DEFAULT - CONTINUE + CONTINUE END SELECT SELECT CASE (I) CASE (3,2,1) - CALL abort + CALL abort CASE (0) - CONTINUE + CONTINUE CASE DEFAULT - call abort + call abort END SELECT ! Not aborted by here, so it worked @@ -31,40 +31,40 @@ PROGRAM Test_INTEGER_select SELECT CASE (I) CASE (:-1) - CALL abort + CALL abort CASE (1:) - CONTINUE + CONTINUE CASE DEFAULT - CALL abort + CALL abort END SELECT SELECT CASE (I) CASE (3,2,1,:0) - CALL abort + CALL abort CASE (maxI) - CONTINUE + CONTINUE CASE DEFAULT - call abort + call abort END SELECT I = minI SELECT CASE (I) CASE (:-1) - CONTINUE + CONTINUE CASE (1:) - CALL abort + CALL abort CASE DEFAULT - CALL abort + CALL abort END SELECT SELECT CASE (I) CASE (3:,2,1,0) - CALL abort + CALL abort CASE (minI) - CONTINUE + CONTINUE CASE DEFAULT - call abort + call abort END SELECT END diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/integer_select_1.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/integer_select_1.f90 index cd9bb00a98c..18bc79b4358 100644 --- a/gcc/testsuite/gfortran.fortran-torture/execute/integer_select_1.f90 +++ b/gcc/testsuite/gfortran.fortran-torture/execute/integer_select_1.f90 @@ -1,6 +1,6 @@ INTEGER :: I = 1 SELECT CASE (I) - CASE (-3:-5) ! Can never be matched + CASE (-3:-5) ! Can never be matched CALL abort CASE (1) CONTINUE diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_mvbits.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_mvbits.f90 index c9fbe782703..3437e9f0c9d 100644 --- a/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_mvbits.f90 +++ b/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_mvbits.f90 @@ -1,6 +1,6 @@ ! Test the MVBITS intrinsic subroutine INTEGER*4 :: from, to, result -integer*8 :: to8 +integer*8 :: from8, to8 DATA from / z'0003FFFC' / DATA to / z'77760000' / @@ -9,7 +9,8 @@ DATA result / z'7777FFFE' / CALL mvbits(from, 2, 16, to, 1) if (to /= result) CALL abort() -to8 = 0 -call mvbits (b'1011'_8*2_8**32, 33, 3, to8, 2) ! { dg-warning "" "" } -if (to8 /= b'10100'_8) call abort ! { dg-warning "" "" } +to8 = 0_8 +from8 = b'1011'*2_8**32 +call mvbits (from8, 33, 3, to8, 2) +if (to8 /= b'10100') call abort end diff --git a/gcc/testsuite/lib/c-torture.exp b/gcc/testsuite/lib/c-torture.exp index f7b547a0708..375ff2c9464 100644 --- a/gcc/testsuite/lib/c-torture.exp +++ b/gcc/testsuite/lib/c-torture.exp @@ -14,9 +14,6 @@ # along with this program; if not, write to the Free Software # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@gnu.org. - # This file was written by Rob Savoye. (rob@cygnus.com) load_lib file-format.exp diff --git a/gcc/testsuite/lib/file-format.exp b/gcc/testsuite/lib/file-format.exp index 7be398eeb3a..a1aa484455c 100644 --- a/gcc/testsuite/lib/file-format.exp +++ b/gcc/testsuite/lib/file-format.exp @@ -32,6 +32,13 @@ proc gcc_target_object_format { } { } elseif { [string match "*-*-darwin*" $target_triplet] } { # Darwin doesn't necessarily have objdump, so hand-code it. set gcc_target_object_format_saved mach-o + } elseif { [string match "hppa*-*-hpux*" $target_triplet] } { + # HP-UX doesn't necessarily have objdump, so hand-code it. + if { [string match "hppa*64*-*-hpux*" $target_triplet] } { + set gcc_target_object_format_saved elf + } else { + set gcc_target_object_format_saved som + } } else { set objdump_name [find_binutils_prog objdump] set open_file [open objfmtst.c w] @@ -66,6 +73,9 @@ proc gcc_target_object_format { } { pe { set gcc_target_object_format_saved pe } + som { + set gcc_target_object_format_saved som + } default { verbose "Unknown file format: $objformat" 3 set gcc_target_object_format_saved unknown diff --git a/gcc/testsuite/lib/objc-torture.exp b/gcc/testsuite/lib/objc-torture.exp index ec05da91d0d..73cbc6a30a0 100644 --- a/gcc/testsuite/lib/objc-torture.exp +++ b/gcc/testsuite/lib/objc-torture.exp @@ -14,9 +14,6 @@ # along with this program; if not, write to the Free Software # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@gnu.org. - # This file was written by Rob Savoye. (rob@cygnus.com) load_lib file-format.exp diff --git a/gcc/testsuite/lib/target-supports-dg.exp b/gcc/testsuite/lib/target-supports-dg.exp index e3ad1d540fa..1f2242fdc5d 100644 --- a/gcc/testsuite/lib/target-supports-dg.exp +++ b/gcc/testsuite/lib/target-supports-dg.exp @@ -32,7 +32,7 @@ proc dg-require-weak { args } { # test. proc dg-require-visibility { args } { - set visibility_available [ check_visibility_available ] + set visibility_available [ check_visibility_available [lindex $args 1 ] ] if { $visibility_available == -1 } { upvar name name unresolved "$name" diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index f2577c18106..8bf98930bc0 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -87,6 +87,12 @@ proc check_weak_available { } { return 1 } + # HP-UX 10.X doesn't support it + + if { [regexp "hppa.*hpux10" $target_triplet] } { + return 0 + } + # ELF and ECOFF support it. a.out does with gas/gld but may also with # other linkers, so we should try it @@ -97,19 +103,21 @@ proc check_weak_available { } { ecoff { return 1 } a.out { return 1 } mach-o { return 1 } + som { return 1 } unknown { return -1 } default { return 0 } } } ############################### -# proc check_visibility_available { } +# proc check_visibility_available { what_kind } ############################### # The visibility attribute is only support in some object formats # This proc returns 1 if it is supported, 0 if not. +# The argument is the kind of visibility, default/protected/hidden/internal. -proc check_visibility_available { } { +proc check_visibility_available { what_kind } { global visibility_available_saved global tool global target_triplet @@ -119,18 +127,29 @@ proc check_visibility_available { } { return 0 } - if {![info exists visibility_available_saved] } { - set lines [get_compiler_messages visibility object { - void f() __attribute__((visibility("hidden"))); - void f() {} - }] - if [string match "" $lines] then { - set visibility_available_saved 1 - } else { - set visibility_available_saved 0 + if [string match "" $what_kind] { set what_kind "hidden" } + + if { [info exists visibility_available_saved] } { + verbose "Saved result is <$visibility_available_saved>" 1 + if { [ lsearch -exact $visibility_available_saved $what_kind ] != -1 } { + return 1 + } elseif { [ lsearch -exact $visibility_available_saved "!$what_kind" ] != -1 } { + return 0 } } - return $visibility_available_saved + + set lines [get_compiler_messages visibility object " + void f() __attribute__((visibility(\"$what_kind\"))); + void f() {} + "] + if [string match "" $lines] then { + set answer 1 + lappend visibility_available_saved $what_kind + } else { + set answer 0 + lappend visibility_available_saved "!$what_kind" + } + return $answer } ############################### diff --git a/gcc/testsuite/objc.dg/stabs-1.m b/gcc/testsuite/objc.dg/stabs-1.m index 9c38b916728..cb8a6d26269 100644 --- a/gcc/testsuite/objc.dg/stabs-1.m +++ b/gcc/testsuite/objc.dg/stabs-1.m @@ -2,7 +2,7 @@ /* Contributed by Ziemowit Laski <zlaski@apple.com> */ /* { dg-do compile } */ -/* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* alpha*-*-* ia64-*-* } { "*" } { "" } } */ +/* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* alpha*-*-* hppa*64*-*-* ia64-*-* } { "*" } { "" } } */ /* { dg-options "-gstabs" } */ @interface MyClass @@ -15,4 +15,4 @@ } @end -/* { dg-final { scan-assembler ".text\"?\n\t.stabs.*100,0,0,(\\.)?L?Letext\[0-9\]*\n(\\.)?L?Letext" } } */ +/* { dg-final { scan-assembler "(.SUBSPA.*\[\$\]CODE\[\$\]|.text\"?)\n\t.stabs.*100,0,0,(\\.)?L?L\[\$\]?etext\[0-9\]*\n(\\.)?L?L\[\$\]?etext" } } */ diff --git a/gcc/testsuite/treelang/ChangeLog b/gcc/testsuite/treelang/ChangeLog index 59db3538710..348ffd6d3cf 100644 --- a/gcc/testsuite/treelang/ChangeLog +++ b/gcc/testsuite/treelang/ChangeLog @@ -1,3 +1,22 @@ +2005-04-20 Release Manager + + * GCC 4.0.0 released. + +2005-03-11 James A. Morrison <phython@gcc.gnu.org> + + Backport recent test cases added to mainline: + 2005-02-26 James A. Morrison <phython@gcc.gnu.org> + + * compile/var_defs: Add uninitialized variables. + + 2005-02-26 James A. Morrison <phython@gcc.gnu.org> + + * compile/extrafunc.tree, compile/extravar.tree: New tests. + + 2005-02-26 James A. Morrison <phython@gcc.gnu.org> + + * compile/unsigned.tree: New test. + 2005-02-24 James A. Morrison <phython@gcc.gnu.org> PR other/19896 diff --git a/gcc/testsuite/treelang/compile/extrafunc.tree b/gcc/testsuite/treelang/compile/extrafunc.tree new file mode 100644 index 00000000000..6682a118a04 --- /dev/null +++ b/gcc/testsuite/treelang/compile/extrafunc.tree @@ -0,0 +1,24 @@ +// { dg-do compile } +// { dg-options "-O2 -fdump-tree-optimized -Wunused-function" } +// Check to see that unused functions get removed at -O2 and +// above. +static int foo (int bar); +static int baz (int aaa); +external_definition int ext (int bbb); + +foo +{ + return bar; +} + +baz // { dg-warning "defined but not used" } +{ + return foo (aaa); +} + +ext +{ + return foo (bbb); +} + +// { dg-final { scan-tree-dump-not "baz" "optimized" } } diff --git a/gcc/testsuite/treelang/compile/extravar.tree b/gcc/testsuite/treelang/compile/extravar.tree new file mode 100644 index 00000000000..5c6b5867b8c --- /dev/null +++ b/gcc/testsuite/treelang/compile/extravar.tree @@ -0,0 +1,13 @@ +// { dg-do compile } +// { dg-options "-fdump-tree-vars -O1 -Wunused-variable" } +external_definition int bar (int aaa, int ddd); + +static int foo = -3; // { dg-warning "defined but not used" } + +bar +{ + automatic int ccc; + + return aaa + ddd + +3; +} +// { dg-final { scan-tree-dump-not "ccc" "vars" } } diff --git a/gcc/testsuite/treelang/compile/unsigned.tree b/gcc/testsuite/treelang/compile/unsigned.tree new file mode 100644 index 00000000000..d10eacf7755 --- /dev/null +++ b/gcc/testsuite/treelang/compile/unsigned.tree @@ -0,0 +1,19 @@ +// { dg-do compile } +// { dg-options "-fdump-tree-generic" } +external_reference void abort (); +external_reference void exit (int status); +external_definition int main (int argc, int argv); + +main +{ + automatic unsigned int bar = 2147483649; + automatic unsigned int baz = 2147483649; + + if (bar == baz) { + abort (); + } else { + exit (0); + } + return +1; +} +// { dg-final { scan-tree-dump-not "\\\(int\\\)" "generic" } } diff --git a/gcc/testsuite/treelang/compile/var_defs.tree b/gcc/testsuite/treelang/compile/var_defs.tree index aaab0d9099e..49f9cd0385b 100644 --- a/gcc/testsuite/treelang/compile/var_defs.tree +++ b/gcc/testsuite/treelang/compile/var_defs.tree @@ -1,4 +1,5 @@ // { dg-do compile } +// { dg-options "-Wuninitialized -O" } external_definition void boring (int arg0); external_definition char condition (char arg1, char arg2); external_definition int first_nonzero (int arg5, int arg6); @@ -14,11 +15,12 @@ condition if (arg1) { automatic int i; - return arg1; + return i + 1; // { dg-warning "uninitialized" } } else { - return 0; + automatic int j; + return j; // { dg-warning "uninitialized" } } } |