diff options
Diffstat (limited to 'gcc/testsuite')
65 files changed, 795 insertions, 1061 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2dfc38fff8c..9ab9ada96e9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,515 @@ +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 Joseph S. Myers <joseph@codesourcery.com> + + * gcc.dg/cpp/separate-1.c, gcc.dg/noncompile/971104-1.c, + gcc.dg/noncompile/990416-1.c: Adjust expected messages for new + parser. + +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 + * gcc.c-torture/execute/20050224-1.c: New test. + + PR c++/20175 + * g++.dg/warn/Wbraces2.C: New test. + +2005-02-23 Mark Mitchell <mark@codesourcery.com> + + PR c++/19878 + * g++.dg/init/const2.C: New test. + +2005-02-23 Hans-Peter Nilsson <hp@axis.com> + + PR tree-optimization/20100 + * gcc.c-torture/execute/pr20100-1.c: New test. + +2005-02-23 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> + + * gfortran.dg/implicit_3.f90: New test. + + * gfortran.dg/deftype_1.f90: New test. + +2005-02-23 Alexandre Oliva <aoliva@redhat.com> + + * g++.dg/lookup/anon2.C: Don't let access checks make it look like + the test passes. + * g++.dg/other/anon3.C: Accept a warning. + +2005-02-23 Kazu Hirata <kazu@cs.umass.edu> + + * gcc.dg/pr20017.c: Fix a comment typo. + +2005-02-23 Bud Davis <bdavis@gfortran.org> + + * gfortran.dg/list_read_4.f90: Change to f90 comments. + +2005-02-23 Eric Botcazou <ebotcazou@libertysurf.fr> + + PR ada/19902 + * ada/acats/tests/cxa/cxa3004.a: Remove. + * ada/acats/tests/cxb/cxb30061.am: Likewise. + +2005-02-22 Mark Mitchell <mark@codesourcery.com> + + PR c++/20073 + * g++.dg/init/const1.C: New test. + + PR c++/19991 + * g++.dg/parse/constant7.C: New test. + + PR c++/20152 + * g++.dg/parse/error27.C: New test. + * g++.dg/template/qualttp15.C: Adjust error markers. + * g++.old-deja/g++.other/struct1.C: Likewise. + + PR c++/20153 + * g++.dg/template/error17.C: New test. + + PR c++/20148 + * g++.dg/parser/error26.C: New test. + +2005-02-22 Diego Novillo <dnovillo@redhat.com> + + PR tree-optimization/20100 + PR tree-optimization/20115 + * gcc.dg/pr20115.c: New test. + * gcc.dg/pr20115-1.c: New test. + * gcc.dg/pr20100.c: New test. + * gcc.dg/tree-ssa/20040517-1.c: Expect virtual operands for + call-clobbered variables after alias1. + +2005-02-22 Bud Davis <bdavis@gfortran.org> + + * gfortran.dg/list_read_4.f90: new test. + +2005-02-22 Kazu Hirata <kazu@cs.umass.edu> + + PR rtl-optimization/20017. + * gcc.dg/pr20017.c: New. + +2005-02-22 Devang Patel <dpatel@apple.com> + + PR 19952 + * g++.dg/tree-ssa/pr19952.C: New test. + +2005-02-22 Mark Mitchell <mark@codesourcery.com> + + PR c++/19883 + * g++.dg/parse/constant6.C: New test. + +2005-02-22 Uros Bizjak <uros@kss-loka.si> + + * g++.dg/charset/asm1.c: Check for IBM1047 code set, not IBM-1047. + * g++.dg/charset/asm2.c: Likewise. + * g++.dg/charset/asm3.c: Likewise. + * g++.dg/charset/asm4.c: Likewise. + * g++.dg/charset/asm5.c: Likewise. + * g++.dg/charset/attribute1.c: Likewise. + * g++.dg/charset/attribute2.c: Likewise. + * g++.dg/charset/extern1.cc: Likewise. + * g++.dg/charset/extern2.cc: Likewise. + * g++.dg/charset/extern3.cc: Likewise. + * g++.dg/charset/function.cc: Likewise. + * g++.dg/charset/string.c: Likewise. + * g++.dg/charset/charset.exp: Likewise. + * lib/target-supports.exp (check_iconv_available): Fix comment. + +2005-02-22 Uros Bizjak <uros@kss-loka.si> + + * gcc.dg/charset/builtin1.c: Use dg-require-iconv "IBM1047". + * gcc.dg/charset/asm1.c: Check for IBM1047 code set, not IBM-1047. + * gcc.dg/charset/asm2.c: Likewise. + * gcc.dg/charset/asm3.c: Likewise. + * gcc.dg/charset/asm4.c: Likewise. + * gcc.dg/charset/asm5.c: Likewise. + * gcc.dg/charset/asm6.c: Likewise. + * gcc.dg/charset/attribute1.c: Likewise. + * gcc.dg/charset/attribute2.c: Likewise. + * gcc.dg/charset/builtin1.c: Likewise. + * gcc.dg/charset/extern.c: Likewise. + * gcc.dg/charset/function.c: Likewise. + * gcc.dg/charset/string.c: Likewise. + * gcc.dg/charset/charset.exp: Likewise. + +2005-02-21 Bud Davis <bdavis9659@comcast.net> + + PR fortran/20086 + * gfortran.dg/pr20086.f90: New test. + +2005-02-21 Alexandre Oliva <aoliva@redhat.com> + + PR tree-optimization/19786 + * g++.dg/tree-ssa/pr19786.C: New. + +2005-02-21 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> + + * lib/gfortran-dg.exp (gfortran-dg-test): Split long regexps. + +2005-02-21 Jeff Law <law@redhat.com> + + * gcc.dg/tree-ssa/20041122-1.c: New test for missing optimization. + +2005-02-20 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> + + * gfortran.dg/do_iterator: Split loop, markup all lines for + which an error locus is printed. + * gfortran.dg/pr17708.f90: Markup all lines for which an error + locus is printed. + * gfortran.dg/select_4.f90: Likewise. + * lib/gfortran-dg.exp (gfortran-dg-test): Handle gfortran error + locuses in the various permutations. + +2005-02-20 Dorit Naishlos <dorit@il.ibm.com> + + PR tree-optimization/19951 + * g++.dg/vect: New directory. + * g++.dg/vect/vect.exp: New file. + * g++.dg/vect/pr19951.cc: New testcase. + * g++.dg/dg.exp: Also prune vectorizer tests. + +2005-02-20 Zack Weinberg <zack@codesourcery.com> + + PR 18785 + * gcc.dg/charset/builtin1.c: New test. + +2005-02-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de> + + PR c++/19299 + * g++.dg/inherit/volatile1.C: New test. + + PR c++/19440 + * g++.dg/template/dtor4.C: New test. + +2005-02-19 Steven G. Kargl <kargls@comcast.net> + + * gfortran.dg/int_1.f90: New test. + +2005-02-19 Devang Patel <dpatel@apple.com> + + * gcc.dg/cpp/mac-eol-at-eof.c: New test. + +2005-02-19 Steven G. Kargl <kargls@comcast.net> + + * gfortran.dg/achar_1.f90: New test. + +2005-02-19 Hans-Peter Nilsson <hp@axis.com> + + * gcc.c-torture/execute/20020720-1.x: Don't XFAIL cris-*-*. + +2005-02-19 Zdenek Dvorak <dvorakz@suse.cz> + Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/19828 + * gcc.dg/tree-ssa/loop-7.c: New test. + * gcc.c-torture/execute/20050218-1.c: New test. + +2005-02-19 Jakub Jelinek <jakub@redhat.com> + + PR c/20043 + * gcc.dg/transparent-union-1.c: New test. + * gcc.dg/transparent-union-2.c: New test. + +2005-02-18 James E Wilson <wilson@specifixinc.com> + + PR tree-optimization/18977 + * gcc.c-torture/execute/loop-ivopts-1.c: New testcase. + +2005-02-18 Ulrich Weigand <uweigand@de.ibm.com> + + PR target/20054 + * gcc.dg/pr20054.c: New test. + +2005-01-20 Giovanni Bajo <giovannibajo@gcc.gnu.org> + + PR c++/19508 + * g++.dg/ext/attrib20.C: New test. + +2004-02-18 Andrew Pinski <pinskia@physics.uc.edu> + + PR middle-end/20030 + * gfortran.fortran-torture/execute/character_passing.f90: New test. + +2005-02-18 Alexandre Oliva <aoliva@redhat.com> + + PR c++/20008 + * g++.dg/opt/switch4.C: New. + +2005-02-18 Jakub Jelinek <jakub@redhat.com> + + PR c++/20023 + PR tree-optimization/20009 + * gcc.c-torture/compile/20050217-1.c: New test. + * g++.dg/opt/switch3.C: New test. + + PR tree-optimization/18947 + * gcc.c-torture/compile/20050215-1.c: New test. + * gcc.c-torture/compile/20050215-2.c: New test. + * gcc.c-torture/compile/20050215-3.c: New test. + +2005-02-17 Alexandre Oliva <aoliva@redhat.com> + + PR c++/20028 + * g++.dg/template/crash34.C: New. + + PR c++/20022 + * g++.dg/other/access3.C: New. + +2005-02-17 Ira Rosen <irar@il.ibm.com> + + * gcc.dg/vect/vect-98.c: New test. + +2005-02-16 Kazu Hirata <kazu@cs.umass.edu> + + PR tree-optimization/19967 + * gcc.dg/pr19967.c: New. + +2005-02-16 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/19857 + * gcc.dg/tree-ssa/20050215-1.c: New test. + * gcc.c-torture/execute/20050215-1.c: New test. + +2005-02-15 Eric Christopher <echristo@redhat.com> + + * gcc.dg/cpp/20050215-1.c: New file. + +2005-02-15 James A. Morrison <phython@gcc.gnu.org> + + PR tree-optimization/15785 + * gcc.dg/pr15785-1.c: New test. + +2005-02-15 Alexandre Oliva <aoliva@redhat.com> + + PR c++/17788 + * g++.dg/init/ctor4.C: New. + * g++.old-deja/g++.bugs/900205_04.C: Adjust. + +2005-02-15 Joseph S. Myers <joseph@codesourcery.com> + + * gcc.dg/overflow-warn-1.c, gcc.dg/overflow-warn-2.c, + gcc.dg/overflow-warn-3.c, gcc.dg/overflow-warn-4.c: New tests. + +2005-02-15 Andreas Schwab <schwab@suse.de> + + * ada/acats/tests/cxb/cxb30131.c: Include <stdlib.h> to properly + declare malloc. + +2005-02-15 Andreas Krebbel <krebbel1@de.ibm.com> + + * gcc.misc-tests/linkage.exp (s390): Check for 64bit added. + +2005-02-14 Diego Novillo <dnovillo@redhat.com> + + PR tree-optimization/19853 + * gcc.c-torture/compile/pr19853.c: New test. + +2005-02-14 Nathan Sidwell <nathan@codesourcery.com> + + PR c++/19608 + * g++.dg/parse/local-class1.C: New. + + PR c++/19895 + * g++.dg/parse/ptrmem3.C: New. + + PR c++/19884 + * g++.old-deja/g++.oliva/template6.C: Add another case. + * g++.dg/template/explicit6.C: New. + +2005-02-14 Alexandre Oliva <aoliva@redhat.com> + + PR c++/17816 + * g++.dg/other/redecl2.C: New. + +2005-02-14 Nathan Sidwell <nathan@codesourcery.com> + + PR c++/19891 + * g++.dg/abi/covariant4.C: New. + +2005-02-13 James A. Morrison <phython@gcc.gnu.org> + + * gcc.dg/pr15784-1.c, gcc.dg/pr15784-2.c, gcc.dg/pr15784-3.c: New tests. + +2005-02-12 Dorit Naishlos <dorit@il.ibm.com> + + * gcc.dg/vect/vect-96.c: Fix typo. + +2005-02-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> + + PR c++/14479 + PR c++/19487 + * g++.dg/template/enum5.C: New test. + +2005-02-12 Ira Rosen <irar@il.ibm.com> + + * gcc.dg/vect/vect-97.c: New test. + +2005-02-12 Ira Rosen <irar@il.ibm.com> + + * gcc.dg/vect/vect-96.c: New test. + +2005-02-12 Uros Bizjak <uros@kss-loka.si> + + * gcc.dg/builtins-34.c: Also check ldexp*. + +2005-02-12 Hans-Peter Nilsson <hp@bitrange.com> + + * gcc.dg/tree-ssa/20040703-1.c: Quote decimal dot. + +2005-02-11 Janis Johnson <janis187@us.ibm.com> + + * lib/gcc-dg.exp: (dg-require-weak, dg-require-visibility, + dg-require-alias, dg-require-gc-sections, dg-require-profiling, + dg-require-dll, dg-require-iconv, dg-require-named-sections, + dg-require-effective-target, dg-skip-if, dg-xfail-if, selector_opd, + selector_list, selector_expression, dg-process-target): Move to new + file target-supports-dg.exp. + * lib/target-supports-dg.exp: New. + + * lib/target-supports.exp (check_effective_target_broken_cplxf_arg): + New. + +2005-02-11 Jakub Jelinek <jakub@redhat.com> + + PR c++/19666 + * gcc/testsuite/g++.dg/other/ptrmem6.C: New test. + + PR middle-end/19858 + * gcc.c-torture/compile/20050210-1.c: New test. + +2005-02-11 Mark Mitchell <mark@codesourcery.com> + + PR c++/19755 + * g++.dg/warn/Wbraces1.C: New test. + +2005-02-10 Richard Guenther <rguenth@gcc.gnu.org> + + * gcc.dg/builtins-52.c: New testcase. + +2005-02-10 Jakub Jelinek <jakub@redhat.com> + + PR c/19342 + * gcc.c-torture/execute/20050119-1.c: New test. + +2005-02-09 Mark Mitchell <mark@codesourcery.com> + + PR c++/19811 + * g++.dg/init/delete1.C: New test. + +2005-02-09 Andrew Pinski <pinskia@physics.uc.edu> + + PR c++/18470 + * g++.dg/template/static12.C: New test. + +2005-02-09 Mark Mitchell <mark@codesourcery.com> + + PR c++/19787 + * g++.dg/conversion/ambig1.C: New test. + + PR c++/19739 + * g++.dg/ext/attrib19.C: New test. + + PR c++/19732 + * g++.dg/parse/dtor5.C: New test. + + PR c++/19762 + * g++.dg/template/dtor3.C: New test. + + PR c++/19826 + * g++.dg/template/static11.C: New test. + * g++.dg/template/crash2.C: Remove dg-error marker. + +2005-02-09 Janis Johnson <janis187@us.ibm.com> + + PR C++/18491 + * g++.old-deja/g++.mike/p10769a.C: Remove. + +2005-02-09 Roger Sayle <roger@eyesopen.com> + + * gcc.dg/builtins-48.c: New test case. + * gcc.dg/builtins-49.c: New test case. + * gcc.dg/builtins-50.c: New test case. + * gcc.dg/builtins-51.c: New test case. + +2005-02-09 Ian Lance Taylor <ian@airs.com> + + PR middle-end/19583 + * g++.dg/warn/Wreturn-type-3.C: New test. + +2005-02-09 Richard Guenther <rguenth@gcc.gnu.org> + + PR middle-end/19402 + * gcc.dg/pr19402-1.c: New testcase. + * gcc.dg/pr19402-2.c: likewise. + +2005-02-09 Richard Guenther <rguenth@gcc.gnu.org> + + PR middle-end/19854 + * g++.dg/tree-ssa/tmmti.C: New testcase. + +2005-02-09 Joseph S. Myers <joseph@codesourcery.com> + + * g++.dg/rtti/tinfo1.C: Allow newline after assembler label. + +2005-02-08 Mark Mitchell <mark@codesourcery.com> + + PR c++/19733 + * g++.dg/parse/crash23.C: New test. + * g++.dg/warn/Weff1.C: New test. + +2005-02-09 Joseph S. Myers <joseph@codesourcery.com> + + * gcc.dg/20050209-1.c: New test. + +2005-02-09 Joseph S. Myers <joseph@codesourcery.com> + + PR target/19799 + * gcc.dg/sibcall-3.c, gcc.dg/sibcall-4.c: XFAIL on hppa*64*-*. + +2005-02-08 Mike Stump <mrs@apple.com> + + * g++.dg/pch/import-2.c: New test. + * g++.dg/pch/import-2.hs: New. + * g++.dg/pch/include/import-2a.h: New. + * g++.dg/pch/include/import-2b.h: New. + +2005-02-08 Janis Johnson <janis187@us.ibm.com> + + * gcc.dg/uninit-4.c: XFAIL bogus warning for powerpc64. + +2005-02-08 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> + + * gfortran.dg/substr_1.f90: New test. + +2005-02-07 Richard Guenther <rguenth@gcc.gnu.org> + + PR middle-end/19775 + * gcc.dg/torture/builtin-power-1.c: Disable test for + invalid transformation. + * gcc.dg/builtins-10.c: Likewise. Disable one test we + no longer optimize. + * gcc.dg/builtins-47.c: New testcase. + +2005-02-07 Leehod Baruch <leehod@il.ibm.com> + Dorit Naishlos <dorit@il.ibm.com> + + * testsuite/gcc.dg/vect/vect.exp: Add -ftree-vectorizer-verbose=3. + 2005-02-06 Richard Sandiford <rsandifo@redhat.com> * gcc.c-torture/compile/20050206-1.c: New test. @@ -24,7 +536,7 @@ 2005-02-03 Dorit Naishlos <dorit@il.ibm.com> * gcc.dg/vect/vect-85.c: Remove xfail. - * gcc.dg/vect/vect-86.c: Remove xfail. + * gcc.dg/vect/vect-86.c: Remove xfail. * gcc.dg/vect/vect-87.c: Remove xfail. * gcc.dg/vect/vect-88.c: Remove xfail. @@ -48,7 +560,7 @@ PR c++/19628 * g++/ext/builtin7.C: New. * g++/ext/builtin8.C: New. - + 2005-02-02 Joseph S. Myers <joseph@codesourcery.com> PR c/18502 @@ -202,7 +714,7 @@ * g++.dg/template/static10.C: New test. PR c++/19395 - * g++.dg/parse/error24.C: New test. + * g++.dg/parse/error24.C: New test. PR c++/19367 * g++.dg/lookup/builtin1.C: New test. @@ -323,7 +835,7 @@ 2005-01-26 Greg Parker <gparker@apple.com> Stuart Hastings <stuart@apple.com> - + * gcc.c-torture/execute/20050125-1.c: New. 2005-01-18 Jan Hubicka <jh@suse.cz> @@ -636,7 +1148,7 @@ * ada/acats/tests/c3/c92005b.ada: Likewise. * ada/acats/tests/c3/cxb3012.a: Likewise. * ada/acats/norun.lst: Add c380004 and c953002, add PR - + 2005-01-09 Paul Brook <paul@codesourcery.com> * gfortran.dg/common_2.f90: New file. diff --git a/gcc/testsuite/ada/acats/tests/cxa/cxa3004.a b/gcc/testsuite/ada/acats/tests/cxa/cxa3004.a deleted file mode 100644 index ed2023e37e5..00000000000 --- a/gcc/testsuite/ada/acats/tests/cxa/cxa3004.a +++ /dev/null @@ -1,235 +0,0 @@ --- CXA3004.A --- --- Grant of Unlimited Rights --- --- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687, --- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained --- unlimited rights in the software and documentation contained herein. --- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making --- this public release, the Government intends to confer upon all --- recipients unlimited rights equal to those held by the Government. --- These rights include rights to use, duplicate, release or disclose the --- released technical data and computer software in whole or in part, in --- any manner and for any purpose whatsoever, and to have or permit others --- to do so. --- --- DISCLAIMER --- --- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR --- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED --- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE --- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE --- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A --- PARTICULAR PURPOSE OF SAID MATERIAL. ---* --- --- OBJECTIVE: --- Check that the functions defined in package Ada.Characters.Handling --- for classification of and conversion between Wide_Character and --- Character values produce correct results when given the appropriate --- Character and String inputs. --- --- TEST DESCRIPTION: --- This test demonstrates the functions defined in package --- Ada.Characters.Handling which provide for the classification of and --- conversion between Wide_Characters and Characters, in character --- variables and strings. --- Each of the functions is provided with input values that are of the --- appropriate range. The results of the function processing are --- subsequently evaluated. --- --- APPLICABILITY CRITERIA: --- Applicable to all implementations using the Latin_1 set as the --- definition of Character. --- --- --- CHANGE HISTORY: --- 06 Dec 94 SAIC ACVC 2.0 --- 27 Dec 94 SAIC Corrected variable names. --- ---! - -with Report; -with Ada.Characters.Handling; - -procedure CXA3004 is -begin - - Report.Test ("CXA3004", "Check that the functions defined in package " & - "Ada.Characters.Handling for classification " & - "of and conversion between Wide_Character and " & - "Character values produce correct results " & - "when given the appropriate Character " & - "and String inputs"); - - Test_Block: - declare - - package ACH renames Ada.Characters.Handling; - - Char_End : Integer := 255; - WC_Start : Integer := 256; - Sub_Char : Character := '*'; - - Blank : Character := ' '; - First_Char : Character := Character'First; - Last_Char : Character := Character'Last; - F_Char : Character := 'F'; - - - First_Wide_Char : Wide_Character := Wide_Character'First; - Last_Non_Wide_Char : Wide_Character := Wide_Character'Val(Char_End); - First_Unique_Wide_Char : Wide_Character := Wide_Character'Val(WC_Start); - Last_Wide_Char : Wide_Character := Wide_Character'Last; - - A_String : String (1..3) := First_Char & 'X' & Last_Char; - A_Wide_String : Wide_String (1..3) := First_Wide_Char & - ACH.To_Wide_Character('X') & - ACH.To_Wide_Character(Last_Char); - - Unique_Wide_String : Wide_String (1..2) := First_Unique_Wide_Char & - Last_Wide_Char; - - Mixed_Wide_String : Wide_String (1..6) := ACH.To_Wide_Character('A') & - First_Wide_Char & - Last_Non_Wide_Char & - First_Unique_Wide_Char & - Last_Wide_Char & - ACH.To_Wide_Character('Z'); - - - Basic_Char : Character := 'A'; - Basic_Wide_Char : Wide_Character := 'A'; - Basic_String : String (1..6) := "ABCXYZ"; - Basic_Wide_String : Wide_String (1..6) := "ABCXYZ"; - - begin - - - -- Function Is_Character - - - if not ACH.Is_Character(First_Wide_Char) then - Report.Failed ("Incorrect result from Is_Character - 1"); - end if; - - - if ACH.Is_Character(First_Unique_Wide_Char) or - ACH.Is_Character(Last_Wide_Char) - then - Report.Failed ("Incorrect result from Is_Character - 2"); - end if; - - - -- Function Is_String - - - if not ACH.Is_String(A_Wide_String) then - Report.Failed ("Incorrect result from Is_String - 1"); - end if; - - - if ACH.Is_String(Unique_Wide_String) or - ACH.Is_String(Mixed_Wide_String) - then - Report.Failed ("Incorrect result from Is_String - 2"); - end if; - - - -- Function To_Character - - - -- Use default substitution character in call of To_Character. - - if ACH.To_Character(First_Wide_Char) /= First_Char or - ACH.To_Character(Last_Non_Wide_Char) /= Last_Char - then - Report.Failed ("Incorrect result from To_Character - 1"); - end if; - - - -- Provide a substitution character for use with To_Character. - - if ACH.To_Character(First_Unique_Wide_Char, Blank) /= Blank or - ACH.To_Character(First_Unique_Wide_Char, Sub_Char) /= Sub_Char or - ACH.To_Character(Last_Wide_Char) /= ' ' -- default - then - Report.Failed ("Incorrect result from To_Character - 2"); - end if; - - - -- Function To_String - - - if ACH.To_String(A_Wide_String) /= A_String then - Report.Failed ("Incorrect result from To_String - 1"); - end if; - - - if ACH.To_String(Unique_Wide_String, Sub_Char) /= "**" then - Report.Failed ("Incorrect result from To_String - 2"); - end if; - - - - if ACH.To_String(Mixed_Wide_String, Sub_Char) /= - ('A' & First_Char & Last_Char & "**" & 'Z') or - ACH.To_String(Mixed_Wide_String, Sub_Char) /= - (ACH.To_Character(Mixed_Wide_String(1), Sub_Char) & - ACH.To_Character(Mixed_Wide_String(2), Sub_Char) & - ACH.To_Character(Mixed_Wide_String(3), Sub_Char) & - ACH.To_Character(Mixed_Wide_String(4), Sub_Char) & - ACH.To_Character(Mixed_Wide_String(5), Sub_Char) & - ACH.To_Character(Mixed_Wide_String(6), Sub_Char)) - then - Report.Failed ("Incorrect result from To_String - 3"); - end if; - - - -- Function To_Wide_Character - - - if ACH.To_Wide_Character(Basic_Char) /= Basic_Wide_Char then - Report.Failed ("Incorrect result from To_Wide_Character"); - end if; - - - -- Function To_Wide_String - - - if not (ACH.To_Wide_String(Basic_String) = Basic_Wide_String) then - Report.Failed ("Incorrect result from To_Wide_String"); - end if; - - - -- Functions Used In Combination - - if not ACH.Is_Character (ACH.To_Wide_Character ( - ACH.To_Character(First_Wide_Char))) - then - Report.Failed ("Incorrect result from functions in combination - 1"); - end if; - - - if not ACH.Is_String(ACH.To_Wide_String(ACH.To_String(A_Wide_String))) - then - Report.Failed ("Incorrect result from functions in combination - 2"); - end if; - - - if ACH.To_String(ACH.To_Wide_Character('A') & - ACH.To_Wide_Character(F_Char) & - ACH.To_Wide_Character('Z')) /= "AFZ" - then - Report.Failed ("Incorrect result from functions in combination - 3"); - end if; - - - exception - when others => Report.Failed ("Exception raised in Test_Block"); - end Test_Block; - - - Report.Result; - -end CXA3004; diff --git a/gcc/testsuite/ada/acats/tests/cxb/cxb30061.am b/gcc/testsuite/ada/acats/tests/cxb/cxb30061.am deleted file mode 100644 index d31345a8eb1..00000000000 --- a/gcc/testsuite/ada/acats/tests/cxb/cxb30061.am +++ /dev/null @@ -1,404 +0,0 @@ --- CXB30061.AM --- --- Grant of Unlimited Rights --- --- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687, --- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained --- unlimited rights in the software and documentation contained herein. --- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making --- this public release, the Government intends to confer upon all --- recipients unlimited rights equal to those held by the Government. --- These rights include rights to use, duplicate, release or disclose the --- released technical data and computer software in whole or in part, in --- any manner and for any purpose whatsoever, and to have or permit others --- to do so. --- --- DISCLAIMER --- --- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR --- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED --- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE --- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE --- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A --- PARTICULAR PURPOSE OF SAID MATERIAL. ---* --- --- OBJECTIVE: --- Check that the function To_C maps between the Ada type Wide_Character --- and the C type wchar_t. --- --- Check that the function To_Ada maps between the C type wchar_t and --- the Ada type Wide_Character. --- --- Check that the function Is_Nul_Terminated returns True if the --- wchar_array parameter contains wide_nul, and otherwise False. --- --- Check that the function To_C produces a correct wchar_array result, --- with lower bound of 0, and length dependent upon the Item and --- Append_Nul parameters. --- --- Check that the function To_Ada produces a correct wide_string result, --- with lower bound of 1, and length dependent upon the Item and --- Trim_Nul parameters. --- --- Check that the function To_Ada raises Terminator_Error if the --- parameter Trim_Nul is set to True, but the actual Item parameter --- does not contain the wide_nul wchar_t. --- --- TEST DESCRIPTION: --- This test uses a variety of Wide_Character, wchar_t, Wide_String, and --- wchar_array objects to test versions of the To_C, To_Ada, and --- Is_Nul_Terminated functions. --- --- This test assumes that the following characters are all included --- in the implementation defined type Interfaces.C.wchar_t: --- ' ', ',', '.', '0'..'9', 'a'..'z' and 'A'..'Z'. --- --- APPLICABILITY CRITERIA: --- This test is applicable to all implementations that provide --- package Interfaces.C. If an implementation provides --- package Interfaces.C, this test must compile, execute, and --- report "PASSED". --- --- SPECIAL REQUIREMENTS: --- The file CXB30060.C must be compiled with a C compiler. --- Implementation dialects of C may require alteration of --- the C program syntax (see individual C files). --- --- Note that the compiled C code must be bound with the compiled Ada --- code to create an executable image. An implementation must provide --- the necessary commands to accomplish this. --- --- Note that the C code included in CXB30060.C conforms --- to ANSI-C. Modifications to these files may be required for other --- C compilers. An implementation must provide the necessary --- modifications to satisfy the function requirements. --- --- TEST FILES: --- The following files comprise this test: --- --- CXB30060.C --- CXB30061.AM --- --- CHANGE HISTORY: --- 07 Sep 95 SAIC Initial prerelease version. --- 09 May 96 SAIC Incorporated reviewer comments for ACVC 2.1. --- 13 Sep 99 RLB Replaced (bogus) Unchecked_Conversions with a --- C function character generator. --- ---! - -with Report; -with Interfaces.C; -- N/A => ERROR -with Ada.Characters.Latin_1; -with Ada.Characters.Handling; -with Ada.Exceptions; -with Ada.Strings.Wide_Fixed; -with Impdef; - -procedure CXB30061 is -begin - - Report.Test ("CXB3006", "Check that the functions To_C and To_Ada " & - "produce correct results"); - - Test_Block: - declare - - use Interfaces, Interfaces.C; - use Ada.Characters, Ada.Characters.Latin_1, Ada.Characters.Handling; - use Ada.Strings.Wide_Fixed; - - First_Character, - Last_Character : Character; - TC_wchar_t, - TC_Low_wchar_t, - TC_High_wchar_t : wchar_t := wchar_t'First; - TC_Wide_String : Wide_String(1..8) := (others => Wide_Character'First); - TC_wchar_array : wchar_array(0..7) := (others => C.wide_nul); - - -- The function Char_Gen returns a character corresponding to its - -- argument. - -- Value 0 .. 9 ==> '0' .. '9' - -- Value 10 .. 19 ==> 'A' .. 'J' - -- Value 20 .. 29 ==> 'k' .. 't' - -- Value 30 ==> ' ' - -- Value 31 ==> '.' - -- Value 32 ==> ',' - - function Char_Gen (Value : in int) return wchar_t; - - -- Use the user-defined C function char_gen as a completion to the - -- function specification above. - - pragma Import (Convention => C, - Entity => Char_Gen, - External_Name => Impdef.CXB30060_External_Name); - - begin - - -- Check that the functions To_C and To_Ada map between the Ada type - -- Wide_Character and the C type wchar_t. - - if To_C(To_Wide_Character(Ada.Characters.Latin_1.NUL)) /= - Interfaces.C.wide_nul - then - Report.Failed("Incorrect result from To_C with NUL character input"); - end if; - - First_Character := Report.Ident_Char('k'); - Last_Character := Report.Ident_Char('t'); - for i in First_Character..Last_Character loop - if To_C(Item => To_Wide_Character(i)) /= - Char_Gen(Character'Pos(i) - Character'Pos('k') + 20) - then - Report.Failed("Incorrect result from To_C with lower case " & - "alphabetic wide character input"); - end if; - end loop; - - First_Character := Report.Ident_Char('A'); - Last_Character := Report.Ident_Char('J'); - for i in First_Character..Last_Character loop - if To_C(Item => To_Wide_Character(i)) /= - Char_Gen(Character'Pos(i) - Character'Pos('A') + 10) - then - Report.Failed("Incorrect result from To_C with upper case " & - "alphabetic wide character input"); - end if; - end loop; - - First_Character := Report.Ident_Char('0'); - Last_Character := Report.Ident_Char('9'); - for i in First_Character..Last_Character loop - if To_C(Item => To_Wide_Character(i)) /= - Char_Gen(Character'Pos(i) - Character'Pos('0')) - then - Report.Failed("Incorrect result from To_C with digit " & - "wide character input"); - end if; - end loop; - - if To_C(Item => To_Wide_Character(' ')) /= Char_Gen(30) - then - Report.Failed("Incorrect result from To_C with space " & - "wide character input"); - end if; - - if To_C(Item => To_Wide_Character('.')) /= Char_Gen(31) - then - Report.Failed("Incorrect result from To_C with dot " & - "wide character input"); - end if; - - if To_C(Item => To_Wide_Character(',')) /= Char_Gen(32) - then - Report.Failed("Incorrect result from To_C with comma " & - "wide character input"); - end if; - - if To_Ada(Interfaces.C.wide_nul) /= - To_Wide_Character(Ada.Characters.Latin_1.NUL) - then - Report.Failed("Incorrect result from To_Ada with wide_nul " & - "wchar_t input"); - end if; - - for Code in int range - int(Report.Ident_Int(20)) .. int(Report.Ident_Int(29)) loop - -- 'k' .. 't' - if To_Ada(Item => Char_Gen(Code)) /= - To_Wide_Character(Character'Val (Character'Pos('k') + (Code - 20))) - then - Report.Failed("Incorrect result from To_Ada with lower case " & - "alphabetic wchar_t input"); - end if; - end loop; - - for Code in int range - int(Report.Ident_Int(10)) .. int(Report.Ident_Int(19)) loop - -- 'A' .. 'J' - if To_Ada(Item => Char_Gen(Code)) /= - To_Wide_Character(Character'Val (Character'Pos('A') + (Code - 10))) - then - Report.Failed("Incorrect result from To_Ada with upper case " & - "alphabetic wchar_t input"); - end if; - end loop; - - for Code in int range - int(Report.Ident_Int(0)) .. int(Report.Ident_Int(9)) loop - -- '0' .. '9' - if To_Ada(Item => Char_Gen(Code)) /= - To_Wide_Character(Character'Val (Character'Pos('0') + (Code))) - then - Report.Failed("Incorrect result from To_Ada with digit " & - "wchar_t input"); - end if; - end loop; - - if To_Ada(Item => Char_Gen(30)) /= ' ' then - Report.Failed("Incorrect result from To_Ada with space " & - "char input"); - end if; - if To_Ada(Item => Char_Gen(31)) /= '.' then - Report.Failed("Incorrect result from To_Ada with dot " & - "char input"); - end if; - if To_Ada(Item => Char_Gen(32)) /= ',' then - Report.Failed("Incorrect result from To_Ada with comma " & - "char input"); - end if; - - -- Check that the function Is_Nul_Terminated produces correct results - -- whether or not the wchar_array argument contains the - -- Ada.Interfaces.C.wide_nul character. - - TC_Wide_String := "abcdefgh"; - if Is_Nul_Terminated(Item => To_C(TC_Wide_String, Append_Nul => False)) - then - Report.Failed("Incorrect result from Is_Nul_Terminated when no " & - "wide_nul wchar_t is present"); - end if; - - if not Is_Nul_Terminated(To_C(TC_Wide_String, Append_Nul => True)) then - Report.Failed("Incorrect result from Is_Nul_Terminated when the " & - "wide_nul wchar_t is present"); - end if; - - - - -- Now that we've tested the character/char versions of To_Ada and To_C, - -- use them to test the string versions. - - declare - i : size_t := 0; - j : integer := 1; - Incorrect_Conversion : Boolean := False; - - TC_No_wide_nul : constant wchar_array := To_C(TC_Wide_String, - False); - TC_wide_nul_Appended : constant wchar_array := To_C(TC_Wide_String, - True); - begin - - -- Check that the function To_C produces a wchar_array result with - -- lower bound of 0, and length dependent upon the Item and - -- Append_Nul parameters (if Append_Nul is True, length is - -- Item'Length + 1; if False, length is Item'Length). - - if TC_No_wide_nul'First /= 0 or TC_wide_nul_Appended'First /= 0 then - Report.Failed("Incorrect lower bound from Function To_C"); - end if; - - if TC_No_wide_nul'Length /= TC_Wide_String'Length then - Report.Failed("Incorrect length returned from Function To_C " & - "when Append_Nul => False"); - end if; - - if TC_wide_nul_Appended'Length /= TC_Wide_String'Length + 1 then - Report.Failed("Incorrect length returned from Function To_C " & - "when Append_Nul => True"); - end if; - - if not Is_Nul_Terminated(TC_wide_nul_Appended) then - Report.Failed("No wide_nul appended to the wide_string " & - "parameter during conversion to wchar_array " & - "by function To_C"); - end if; - - for TC_char in Report.Ident_Char('a')..Report.Ident_Char('h') loop - if TC_No_wide_nul(i) /= To_C(To_Wide_Character(TC_char)) or - TC_wide_nul_Appended(i) /= To_C(To_Wide_Character(TC_char)) then - -- Use single character To_C. - Incorrect_Conversion := True; - end if; - i := i + 1; - end loop; - - if Incorrect_Conversion then - Report.Failed("Incorrect result from To_C with wide_string input " & - "and wchar_array result"); - end if; - - - -- Check that the function To_Ada produces a wide_string result with - -- lower bound of 1, and length dependent upon the Item and - -- Trim_Nul parameters (if Trim_Nul is False, length is Item'Length; - -- if False, length will be the length of the slice of Item prior to - -- the first wide_nul). - - declare - TC_No_NUL_Wide_String : constant Wide_String := - To_Ada(Item => TC_wide_nul_Appended, Trim_Nul => True); - - TC_NUL_Appended_Wide_String : constant Wide_String := - To_Ada(TC_wide_nul_Appended, False); - - begin - - if TC_No_NUL_Wide_String'First /= 1 or - TC_NUL_Appended_Wide_String'First /= 1 - then - Report.Failed("Incorrect lower bound from Function To_Ada"); - end if; - - if TC_No_NUL_Wide_String'Length /= TC_Wide_String'Length then - Report.Failed("Incorrect length returned from Function " & - "To_Ada when Trim_Nul => True"); - end if; - - if TC_NUL_Appended_Wide_String'Length /= - TC_Wide_String'Length + 1 - then - Report.Failed("Incorrect length returned from Function " & - "To_Ada when Trim_Nul => False"); - end if; - - for TC_Character in Wide_Character'('a') .. Wide_Character'('h') loop - if TC_No_NUL_Wide_String(j) /= TC_Character or - TC_NUL_Appended_Wide_String(j) /= TC_Character - then - Report.Failed("Incorrect result from To_Ada with " & - "char_array input, index = " & - Integer'Image(j)); - end if; - j := j + 1; - end loop; - - end; - - - -- Check that the function To_Ada raises Terminator_Error if the - -- parameter Trim_Nul is set to True, but the actual Item parameter - -- does not contain the wide_nul wchar_t. - - begin - TC_Wide_String := To_Ada(TC_No_wide_nul, Trim_Nul => True); - Report.Failed("Terminator_Error not raised when Item " & - "parameter of To_Ada does not contain the " & - "wide_nul wchar_t, but parameter Trim_Nul " & - "=> True"); - Report.Comment - (To_String(TC_Wide_String) & " printed to defeat optimization"); - exception - when Terminator_Error => null; -- OK, expected exception. - when others => - Report.Failed("Incorrect exception raised by function " & - "To_Ada when the Item parameter does not " & - "contain the wide_nul wchar_t, but " & - "parameter Trim_Nul => True"); - end; - - end; - - exception - when The_Error : others => - Report.Failed - ("The following exception was raised in the Test_Block: " & - Ada.Exceptions.Exception_Name(The_Error)); - end Test_Block; - - Report.Result; - -end CXB30061; diff --git a/gcc/testsuite/ada/acats/tests/cxb/cxb30131.c b/gcc/testsuite/ada/acats/tests/cxb/cxb30131.c index 7bebe551c6d..6cbbdd131b0 100644 --- a/gcc/testsuite/ada/acats/tests/cxb/cxb30131.c +++ b/gcc/testsuite/ada/acats/tests/cxb/cxb30131.c @@ -54,10 +54,11 @@ */ #include <string.h> +#include <stdlib.h> char *stringdup (char *s) { - char *result = (char *) malloc(sizeof(char)*(strlen(s)+1)); + char *result = malloc(sizeof(char)*(strlen(s)+1)); return strcpy(result,s); } diff --git a/gcc/testsuite/g++.dg/charset/asm1.c b/gcc/testsuite/g++.dg/charset/asm1.c index 9c0ff2866b0..7076d128566 100644 --- a/gcc/testsuite/g++.dg/charset/asm1.c +++ b/gcc/testsuite/g++.dg/charset/asm1.c @@ -1,5 +1,5 @@ /* { dg-do compile { target *-*-* } } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler ".ascii bar" } } { dg-final { scan-assembler ".ascii foo" } } */ diff --git a/gcc/testsuite/g++.dg/charset/asm2.c b/gcc/testsuite/g++.dg/charset/asm2.c index 8d8dbbb524d..8ae2212fd26 100644 --- a/gcc/testsuite/g++.dg/charset/asm2.c +++ b/gcc/testsuite/g++.dg/charset/asm2.c @@ -1,7 +1,7 @@ /* Test for complex asm statements. Make sure it compiles then test for some of the asm statements not being translated. */ /* { dg-do compile { target i?86-*-* } } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler "std" } } { dg-final { scan-assembler "cld" } } { dg-final { scan-assembler "rep" } } diff --git a/gcc/testsuite/g++.dg/charset/asm3.c b/gcc/testsuite/g++.dg/charset/asm3.c index cd850c3e81f..59c8d59ff39 100644 --- a/gcc/testsuite/g++.dg/charset/asm3.c +++ b/gcc/testsuite/g++.dg/charset/asm3.c @@ -1,6 +1,6 @@ /* Simple asm test. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler "foo" } } */ extern int bar; diff --git a/gcc/testsuite/g++.dg/charset/asm4.c b/gcc/testsuite/g++.dg/charset/asm4.c index fa93f40fdaf..a4bb01401a9 100644 --- a/gcc/testsuite/g++.dg/charset/asm4.c +++ b/gcc/testsuite/g++.dg/charset/asm4.c @@ -1,6 +1,6 @@ /* Test for string translation. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler-not "translate" } } */ void foo (void) { diff --git a/gcc/testsuite/g++.dg/charset/asm5.c b/gcc/testsuite/g++.dg/charset/asm5.c index 91316224f0c..ae2ec485d80 100644 --- a/gcc/testsuite/g++.dg/charset/asm5.c +++ b/gcc/testsuite/g++.dg/charset/asm5.c @@ -1,6 +1,6 @@ /* Test for string translation. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler "foo" } } */ int main() { diff --git a/gcc/testsuite/g++.dg/charset/attribute1.c b/gcc/testsuite/g++.dg/charset/attribute1.c index 993c7934c80..799630030ba 100644 --- a/gcc/testsuite/g++.dg/charset/attribute1.c +++ b/gcc/testsuite/g++.dg/charset/attribute1.c @@ -1,6 +1,6 @@ /* Test for attribute non-translation. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler "foo" } } */ int walrus __attribute__ ((section (".foo"))); diff --git a/gcc/testsuite/g++.dg/charset/attribute2.c b/gcc/testsuite/g++.dg/charset/attribute2.c index 3cb766aa63a..dcb28f2da27 100644 --- a/gcc/testsuite/g++.dg/charset/attribute2.c +++ b/gcc/testsuite/g++.dg/charset/attribute2.c @@ -2,7 +2,7 @@ If error recovery is ever testable then "foobar" should be translated. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } */ int foo __attribute__ ((walrus)); /* { dg-error "walrus" "ignored" } */ char x[] = "foobar"; diff --git a/gcc/testsuite/g++.dg/charset/charset.exp b/gcc/testsuite/g++.dg/charset/charset.exp index 7a74217dec3..6bb19593944 100644 --- a/gcc/testsuite/g++.dg/charset/charset.exp +++ b/gcc/testsuite/g++.dg/charset/charset.exp @@ -30,7 +30,7 @@ load_lib target-supports.exp # If a testcase doesn't have special options, use these. global DEFAULT_CHARSETCFLAGS if ![info exists DEFAULT_CHARSETCFLAGS] then { - set DEFAULT_CHARSETCFLAGS "-fexec-charset=IBM-1047" + set DEFAULT_CHARSETCFLAGS "-fexec-charset=IBM1047" } # Initialize `dg'. diff --git a/gcc/testsuite/g++.dg/charset/extern1.cc b/gcc/testsuite/g++.dg/charset/extern1.cc index 2a68ab7cf78..09284ad1ed2 100644 --- a/gcc/testsuite/g++.dg/charset/extern1.cc +++ b/gcc/testsuite/g++.dg/charset/extern1.cc @@ -1,6 +1,6 @@ /* Test extern statments not being translated. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } */ extern "C" { diff --git a/gcc/testsuite/g++.dg/charset/extern2.cc b/gcc/testsuite/g++.dg/charset/extern2.cc index 82157a6fea4..3a8f4e82d7e 100644 --- a/gcc/testsuite/g++.dg/charset/extern2.cc +++ b/gcc/testsuite/g++.dg/charset/extern2.cc @@ -1,5 +1,5 @@ /* Check that we push the declaration and then continue translation. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler-not "foobar" } } */ extern "C" { char *foo = "foobar"; } diff --git a/gcc/testsuite/g++.dg/charset/extern3.cc b/gcc/testsuite/g++.dg/charset/extern3.cc index 5e46ca6facf..05a0c3e42bc 100644 --- a/gcc/testsuite/g++.dg/charset/extern3.cc +++ b/gcc/testsuite/g++.dg/charset/extern3.cc @@ -1,5 +1,5 @@ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler-not "abcdefghijklmnopqrstuvwxyz" } } */ extern char *bar; diff --git a/gcc/testsuite/g++.dg/charset/function.cc b/gcc/testsuite/g++.dg/charset/function.cc index ab4c2bcba0e..5aba6511bd0 100644 --- a/gcc/testsuite/g++.dg/charset/function.cc +++ b/gcc/testsuite/g++.dg/charset/function.cc @@ -1,5 +1,5 @@ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler-not "\"foobar\"" } } */ const char *str; diff --git a/gcc/testsuite/g++.dg/charset/string.c b/gcc/testsuite/g++.dg/charset/string.c index 375e28a2ed6..f720773dd57 100644 --- a/gcc/testsuite/g++.dg/charset/string.c +++ b/gcc/testsuite/g++.dg/charset/string.c @@ -1,5 +1,5 @@ /* Simple character translation test. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler-not "string foobar" } } */ char *foo = "string foobar"; diff --git a/gcc/testsuite/g++.dg/dg.exp b/gcc/testsuite/g++.dg/dg.exp index f809f10f2db..f4ec94c6ee1 100644 --- a/gcc/testsuite/g++.dg/dg.exp +++ b/gcc/testsuite/g++.dg/dg.exp @@ -39,6 +39,7 @@ set tests [prune $tests $srcdir/$subdir/gcov/*] set tests [prune $tests $srcdir/$subdir/pch/*] set tests [prune $tests $srcdir/$subdir/special/*] set tests [prune $tests $srcdir/$subdir/tls/*] +set tests [prune $tests $srcdir/$subdir/vect/*] # Main loop. dg-runtest $tests "" $DEFAULT_CXXFLAGS diff --git a/gcc/testsuite/g++.dg/lookup/anon2.C b/gcc/testsuite/g++.dg/lookup/anon2.C index 4cd64aecb49..d556ba0034a 100644 --- a/gcc/testsuite/g++.dg/lookup/anon2.C +++ b/gcc/testsuite/g++.dg/lookup/anon2.C @@ -1,6 +1,9 @@ // { dg-do compile } // { dg-options "" } -class { int i; } a; // { dg-error "private|anonymous type" } -void foo() { a.i; } // { dg-error "context" } +// Make sure we issue a diagnostic if a type with no linkage is used +// to declare a a variable that has linkage. +struct { int i; } a; // { dg-warning "anonymous type" } + +void foo() { a.i; } diff --git a/gcc/testsuite/g++.dg/other/anon3.C b/gcc/testsuite/g++.dg/other/anon3.C index 87cbfb544cd..87116eb8901 100644 --- a/gcc/testsuite/g++.dg/other/anon3.C +++ b/gcc/testsuite/g++.dg/other/anon3.C @@ -4,4 +4,4 @@ // { dg-do compile } -enum { a = 3 } x; +enum { a = 3 } x; // { dg-warning "anonymous type" } diff --git a/gcc/testsuite/g++.dg/rtti/tinfo1.C b/gcc/testsuite/g++.dg/rtti/tinfo1.C index 581d3c71c97..037ee35fc8f 100644 --- a/gcc/testsuite/g++.dg/rtti/tinfo1.C +++ b/gcc/testsuite/g++.dg/rtti/tinfo1.C @@ -1,6 +1,6 @@ // Test if a local definition is in a linkonce/comdat section. // { dg-do compile } -// { dg-final { scan-assembler "_ZTIP9CTemplateIhE\[: \t\]" } } +// { dg-final { scan-assembler "_ZTIP9CTemplateIhE\[: \t\n\]" } } // { dg-final { scan-assembler-not ".globl\[ \]+_ZTIP9CTemplateIhE" } } // { dg-final { scan-assembler-not ".section\[^\n\r\]*_ZTIP9CTemplateIhE\[^\n\r\]*" } } diff --git a/gcc/testsuite/g++.dg/template/crash2.C b/gcc/testsuite/g++.dg/template/crash2.C index 8bf7b450df2..a02787a46fa 100644 --- a/gcc/testsuite/g++.dg/template/crash2.C +++ b/gcc/testsuite/g++.dg/template/crash2.C @@ -5,7 +5,7 @@ class A { public: static const EnumType size = max; // { dg-error "" } - int table[size]; // { dg-error "" } + int table[size]; }; template <class EnumType> const EnumType A<EnumType>::size; diff --git a/gcc/testsuite/g++.dg/template/qualttp15.C b/gcc/testsuite/g++.dg/template/qualttp15.C index 1b1f3bb725d..0f97c32fcb8 100644 --- a/gcc/testsuite/g++.dg/template/qualttp15.C +++ b/gcc/testsuite/g++.dg/template/qualttp15.C @@ -17,8 +17,8 @@ template <class T> struct X<T::template B> T z; }; -template <class T> struct X<T::template B> -{ // { dg-error "redefinition" } +template <class T> struct X<T::template B> // { dg-error "redefinition" } +{ T z; }; diff --git a/gcc/testsuite/g++.dg/template/qualttp20.C b/gcc/testsuite/g++.dg/template/qualttp20.C index 5a9c61c4304..ae20d762902 100644 --- a/gcc/testsuite/g++.dg/template/qualttp20.C +++ b/gcc/testsuite/g++.dg/template/qualttp20.C @@ -1,4 +1,5 @@ // { dg-do compile } +// { dg-options "-pedantic -pedantic-errors" } // Copyright (C) 2001 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 15 Dec 2001 <nathan@codesourcery.com> @@ -16,7 +17,7 @@ struct AS template <typename T> struct B1 : T { typedef typename T::L __restrict__ r;// { dg-error "'__restrict__' qualifiers cannot" "" } - typedef typename T::myT __restrict__ p;// { dg-warning "ignoring '__restrict__'" "" { xfail *-*-* } } + typedef typename T::myT __restrict__ p;// { dg-error "ignoring '__restrict__'" } // The following are DR 295 dependent typedef typename T::myT volatile *myvolatile; diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C index e5f59ab63bc..a2c84fadb9e 100644 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C +++ b/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C @@ -9,19 +9,23 @@ // keywords: default constructor, inheritance -struct struct0 { +// In ISO C++ 1998, such a derived class is not ill-formed, but if the +// implicitly-declared constructor is used, then it is implicitly +// defined and found to be ill-formed. + +struct struct0 { // { dg-error "note" } int data_member; struct0 (int, void *); // suppresses implicit default constructor }; -struct0::struct0 (int, void *) +struct0::struct0 (int, void *) // { dg-error "note" } { } -struct struct0_derived_struct_0 : public struct0 { // { dg-error "" } +struct struct0_derived_struct_0 : public struct0 { // { dg-error "" } }; -// struct0_derived_struct_0 object; // would give g++ error if compiled +struct0_derived_struct_0 object; int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p10769a.C b/gcc/testsuite/g++.old-deja/g++.mike/p10769a.C deleted file mode 100644 index 89cc31d0fff..00000000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p10769a.C +++ /dev/null @@ -1,46 +0,0 @@ -// { dg-do run } -// { dg-options "-Wno-pmf-conversions" } -// prms-id: 10769 - -#define PMF2PF(PMF) ((void (*)())(PMF)) - -int ok = 0; - -class A { -public: - void f1a() { ok += 3; } - void f1b() { ok += 5; } - void f2a() { ok += 7; } - void f2b() { } - static void (*table[2][2])(); - void main(); -} a; - -void (*A::table[2][2])() - = { { PMF2PF(&A::f1a), PMF2PF(&A::f1b) }, - { PMF2PF(&A::f2a), PMF2PF(&A::f1b) }, - }; - -void -dispatch (A *obj, int i, int j) -{ - (*(void (*)(A *))A::table[i][j])(obj); -} - -void A::main() { - dispatch (&a, 0, 0); - void (A::*mPtr)() = &A::f1a; - - (*(void (*)(A*))PMF2PF(mPtr))(&a); - (*(void (*)(A*))PMF2PF(f2a))(&a); // { dg-bogus "" "" { xfail *-*-* } } -} - -int main() { - a.A::main(); - dispatch (&a, 0, 1); - void (A::*mPtr)() = &A::f1b; - - (*(void (*)(A*))PMF2PF(a.*mPtr))(&a); - (*(void (*)(A*))PMF2PF(a.f2a))(&a); // { dg-bogus "" "" { xfail *-*-* } } - return ok != 3+3+5+5+7+7; -} diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/template6.C b/gcc/testsuite/g++.old-deja/g++.oliva/template6.C index f31d677afb0..270d67695f6 100644 --- a/gcc/testsuite/g++.old-deja/g++.oliva/template6.C +++ b/gcc/testsuite/g++.old-deja/g++.oliva/template6.C @@ -6,4 +6,7 @@ // simplified from bug report by Meenaradchagan Vishnu <mvishnu@fore.com> template <typename> struct foo {}; -template <> void foo(); // { dg-error "" } bad specialization +template <> void foo(); // { dg-error "not a template function" } bad specialization + +struct baz {}; +template <> void baz (); // { dg-error "not a template function" } bad specialization diff --git a/gcc/testsuite/g++.old-deja/g++.other/struct1.C b/gcc/testsuite/g++.old-deja/g++.other/struct1.C index f4fa322bd1f..b1f943f604f 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/struct1.C +++ b/gcc/testsuite/g++.old-deja/g++.other/struct1.C @@ -9,34 +9,34 @@ class Y { // { dg-error "" } previous definition }; -class Y -{ // { dg-error "" } redefinition +class Y // { dg-error "" } redefinition +{ }; template<class T> class X { // { dg-error "" } previous definition }; -template<class T> class X -{ // { dg-error "" } redefinition +template<class T> class X // { dg-error "" } redefinition +{ }; template<class T> class X<T *> { // { dg-error "" } previous definition }; -template<class T> class X<T *> -{ // { dg-error "" } redefinition +template<class T> class X<T *> // { dg-error "" } redefinition +{ }; template<> class X<int> { // { dg-error "" } previous definition }; -template<> class X<int> -{ // { dg-error "" } redefinition +template<> class X<int> // { dg-error "" } redefinition +{ }; template<> class X<int *> { // { dg-error "" } previous definition }; -template<> class X<int *> -{ // { dg-error "" } redefinition +template<> class X<int *> // { dg-error "" } redefinition +{ }; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem5.C b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem5.C index 4b7d5f9f572..54e975edab6 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem5.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem5.C @@ -14,4 +14,4 @@ struct Null { int *pd = NULL; int (*pf)() = NULL; int Null::*pmd = NULL; -int (Null::*pmf)() = NULL; // { dg-bogus "" "" { xfail *-*-* } } - cannot convert - +int (Null::*pmf)() = NULL; diff --git a/gcc/testsuite/gcc.c-torture/execute/20020720-1.x b/gcc/testsuite/gcc.c-torture/execute/20020720-1.x index 7afd9e44879..c693128a791 100644 --- a/gcc/testsuite/gcc.c-torture/execute/20020720-1.x +++ b/gcc/testsuite/gcc.c-torture/execute/20020720-1.x @@ -29,7 +29,7 @@ set torture_eval_before_compile { set compiler_conditional_xfail_data { "This test fails to optimize completely on certain platforms." \ { "xtensa-*-*" "sh-*-*" "arm*-*-*" "strongarm*-*-*" "xscale*-*-*" \ - "h8300*-*-*" "cris-*-*" "frv-*-*" "powerpc-*-*spe" } \ + "h8300*-*-*" "frv-*-*" "powerpc-*-*spe" } \ { "*" } \ { "-O0" } } diff --git a/gcc/testsuite/gcc.dg/asm-b.c b/gcc/testsuite/gcc.dg/asm-b.c index c3b0edd4284..ce68cabe300 100644 --- a/gcc/testsuite/gcc.dg/asm-b.c +++ b/gcc/testsuite/gcc.dg/asm-b.c @@ -1,8 +1,8 @@ /* { dg-do run { target powerpc-*-* i?386-*-* x86_64-*-* } } */ /* { dg-options "-O1" } */ -/* Test to make sure that inline-asm causes the tree optimizers to get the - V_MAY_DEFs and clobber memory. */ -/* Test from Jakub Jelinek, modified by Andrew Pinski to work on all powerpc targets. */ +/* 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; diff --git a/gcc/testsuite/gcc.dg/builtins-10.c b/gcc/testsuite/gcc.dg/builtins-10.c index 9e5a4583fc3..53158a0f852 100644 --- a/gcc/testsuite/gcc.dg/builtins-10.c +++ b/gcc/testsuite/gcc.dg/builtins-10.c @@ -14,11 +14,12 @@ extern double exp(double); extern double log(double); extern double sqrt(double); extern double pow(double,double); +extern double fabs(double); void test(double x) { - if (sqrt(pow(x,4.0)) != x*x) - link_error (); + /*if (sqrt(pow(x,4.0)) != x*x) + link_error (); */ if (pow(sqrt(x),4.0) != x*x) link_error (); @@ -29,7 +30,7 @@ void test(double x) void test2(double x, double y, double z) { - if (sqrt(pow(x,y)) != pow(x,y*0.5)) + if (sqrt(pow(x,y)) != pow(fabs(x),y*0.5)) link_error (); if (log(pow(x,y)) != y*log(x)) diff --git a/gcc/testsuite/gcc.dg/builtins-34.c b/gcc/testsuite/gcc.dg/builtins-34.c index 0055f329dd5..f2625d5ef59 100644 --- a/gcc/testsuite/gcc.dg/builtins-34.c +++ b/gcc/testsuite/gcc.dg/builtins-34.c @@ -12,14 +12,17 @@ extern double exp10(double); extern double exp2(double); extern double pow10(double); extern double expm1(double); +extern double ldexp(double, int); extern float exp10f(float); extern float exp2f(float); extern float pow10f(float); extern float expm1f(float); +extern float ldexpf(float, int); extern long double exp10l(long double); extern long double exp2l(long double); extern long double pow10l(long double); extern long double expm1l(long double); +extern long double ldexpl(long double, int); double test1(double x) @@ -42,6 +45,11 @@ double test4(double x) return expm1(x); } +double test5(double x, int exp) +{ + return ldexp(x, exp); +} + float test1f(float x) { return exp10f(x); @@ -62,6 +70,11 @@ float test4f(float x) return expm1f(x); } +float test5f(float x, int exp) +{ + return ldexpf(x, exp); +} + long double test1l(long double x) { return exp10l(x); @@ -82,3 +95,7 @@ long double test4l(long double x) return expm1l(x); } +long double test5l(long double x, int exp) +{ + return ldexpl(x, exp); +} diff --git a/gcc/testsuite/gcc.dg/charset/asm1.c b/gcc/testsuite/gcc.dg/charset/asm1.c index d7578d418f6..dfd14018613 100644 --- a/gcc/testsuite/gcc.dg/charset/asm1.c +++ b/gcc/testsuite/gcc.dg/charset/asm1.c @@ -1,5 +1,5 @@ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler ".ascii bar" } } { dg-final { scan-assembler ".ascii foo" } } */ diff --git a/gcc/testsuite/gcc.dg/charset/asm2.c b/gcc/testsuite/gcc.dg/charset/asm2.c index bfca86c8e96..a9a9c011b2b 100644 --- a/gcc/testsuite/gcc.dg/charset/asm2.c +++ b/gcc/testsuite/gcc.dg/charset/asm2.c @@ -2,7 +2,7 @@ If we ever get a good way to test error recovery the string "foobar" should be translated. */ /* { dg-do compile } */ -/* { dg-require-iconv "IBM-1047" } */ +/* { dg-require-iconv "IBM1047" } */ asm (not_a_string); /* { dg-error "(parse error|syntax error|expected string literal) before" "not_a_string" } */ char x[] = "foobar"; diff --git a/gcc/testsuite/gcc.dg/charset/asm3.c b/gcc/testsuite/gcc.dg/charset/asm3.c index 8d8dbbb524d..8ae2212fd26 100644 --- a/gcc/testsuite/gcc.dg/charset/asm3.c +++ b/gcc/testsuite/gcc.dg/charset/asm3.c @@ -1,7 +1,7 @@ /* Test for complex asm statements. Make sure it compiles then test for some of the asm statements not being translated. */ /* { dg-do compile { target i?86-*-* } } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler "std" } } { dg-final { scan-assembler "cld" } } { dg-final { scan-assembler "rep" } } diff --git a/gcc/testsuite/gcc.dg/charset/asm4.c b/gcc/testsuite/gcc.dg/charset/asm4.c index cd850c3e81f..59c8d59ff39 100644 --- a/gcc/testsuite/gcc.dg/charset/asm4.c +++ b/gcc/testsuite/gcc.dg/charset/asm4.c @@ -1,6 +1,6 @@ /* Simple asm test. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler "foo" } } */ extern int bar; diff --git a/gcc/testsuite/gcc.dg/charset/asm5.c b/gcc/testsuite/gcc.dg/charset/asm5.c index fa93f40fdaf..a4bb01401a9 100644 --- a/gcc/testsuite/gcc.dg/charset/asm5.c +++ b/gcc/testsuite/gcc.dg/charset/asm5.c @@ -1,6 +1,6 @@ /* Test for string translation. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler-not "translate" } } */ void foo (void) { diff --git a/gcc/testsuite/gcc.dg/charset/asm6.c b/gcc/testsuite/gcc.dg/charset/asm6.c index 91316224f0c..ae2ec485d80 100644 --- a/gcc/testsuite/gcc.dg/charset/asm6.c +++ b/gcc/testsuite/gcc.dg/charset/asm6.c @@ -1,6 +1,6 @@ /* Test for string translation. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler "foo" } } */ int main() { diff --git a/gcc/testsuite/gcc.dg/charset/attribute1.c b/gcc/testsuite/gcc.dg/charset/attribute1.c index 993c7934c80..799630030ba 100644 --- a/gcc/testsuite/gcc.dg/charset/attribute1.c +++ b/gcc/testsuite/gcc.dg/charset/attribute1.c @@ -1,6 +1,6 @@ /* Test for attribute non-translation. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler "foo" } } */ int walrus __attribute__ ((section (".foo"))); diff --git a/gcc/testsuite/gcc.dg/charset/attribute2.c b/gcc/testsuite/gcc.dg/charset/attribute2.c index 4ce95a51f84..ef1f35f3ed1 100644 --- a/gcc/testsuite/gcc.dg/charset/attribute2.c +++ b/gcc/testsuite/gcc.dg/charset/attribute2.c @@ -2,7 +2,7 @@ If error recovery is ever testable then "foobar" should be translated. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } */ int foo __attribute__ ((walrus)); /* { dg-error "walrus" "ignored" } */ char x[] = "foobar"; diff --git a/gcc/testsuite/gcc.dg/charset/charset.exp b/gcc/testsuite/gcc.dg/charset/charset.exp index ad75cb55af8..bc2c65db910 100644 --- a/gcc/testsuite/gcc.dg/charset/charset.exp +++ b/gcc/testsuite/gcc.dg/charset/charset.exp @@ -30,7 +30,7 @@ load_lib target-supports.exp # If a testcase doesn't have special options, use these. global DEFAULT_CHARSETCFLAGS if ![info exists DEFAULT_CHARSETCFLAGS] then { - set DEFAULT_CHARSETCFLAGS "-fexec-charset=IBM-1047" + set DEFAULT_CHARSETCFLAGS "-fexec-charset=IBM1047" } # Initialize `dg'. diff --git a/gcc/testsuite/gcc.dg/charset/extern.c b/gcc/testsuite/gcc.dg/charset/extern.c index 5e46ca6facf..05a0c3e42bc 100644 --- a/gcc/testsuite/gcc.dg/charset/extern.c +++ b/gcc/testsuite/gcc.dg/charset/extern.c @@ -1,5 +1,5 @@ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler-not "abcdefghijklmnopqrstuvwxyz" } } */ extern char *bar; diff --git a/gcc/testsuite/gcc.dg/charset/function.c b/gcc/testsuite/gcc.dg/charset/function.c index ab4c2bcba0e..5aba6511bd0 100644 --- a/gcc/testsuite/gcc.dg/charset/function.c +++ b/gcc/testsuite/gcc.dg/charset/function.c @@ -1,5 +1,5 @@ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler-not "\"foobar\"" } } */ const char *str; diff --git a/gcc/testsuite/gcc.dg/charset/string.c b/gcc/testsuite/gcc.dg/charset/string.c index 375e28a2ed6..f720773dd57 100644 --- a/gcc/testsuite/gcc.dg/charset/string.c +++ b/gcc/testsuite/gcc.dg/charset/string.c @@ -1,5 +1,5 @@ /* Simple character translation test. */ /* { dg-do compile } - { dg-require-iconv "IBM-1047" } + { dg-require-iconv "IBM1047" } { dg-final { scan-assembler-not "string foobar" } } */ char *foo = "string foobar"; diff --git a/gcc/testsuite/gcc.dg/cpp/separate-1.c b/gcc/testsuite/gcc.dg/cpp/separate-1.c index 71dcfef7f1d..8698147d521 100644 --- a/gcc/testsuite/gcc.dg/cpp/separate-1.c +++ b/gcc/testsuite/gcc.dg/cpp/separate-1.c @@ -12,4 +12,4 @@ int FOO( /* { dg-error "parse error|syntax error|expected" "error on this line" ), bar; int baz FOO /* { dg-error "parse error|syntax error|expected" "error on this line" } */ -; /* { dg-warning "no type or storage class" "warning on this line" } */ +; diff --git a/gcc/testsuite/gcc.dg/noncompile/971104-1.c b/gcc/testsuite/gcc.dg/noncompile/971104-1.c index 4b02d7174df..722b71c784f 100644 --- a/gcc/testsuite/gcc.dg/noncompile/971104-1.c +++ b/gcc/testsuite/gcc.dg/noncompile/971104-1.c @@ -25,5 +25,5 @@ static void up(int sem){ ({ "MUTEX ", "BARB_SEM 1", "BARB_SEM 2", "CUST_SEM 1", "CUST_SEM 2", "WAIT_SEM 1", "WAIT_SEM 2", "WAIT_SEM 3", "WAIT_SEM 4"} /* { dg-error "parse error|syntax error|expected" } */ - [( sb.sem_num )]) ); + [( sb.sem_num )]) ); /* { dg-error "expected" } */ } diff --git a/gcc/testsuite/gcc.dg/noncompile/990416-1.c b/gcc/testsuite/gcc.dg/noncompile/990416-1.c index a0e02e20638..49f5569394e 100644 --- a/gcc/testsuite/gcc.dg/noncompile/990416-1.c +++ b/gcc/testsuite/gcc.dg/noncompile/990416-1.c @@ -3,7 +3,7 @@ typedef int word_type; static void copy_reg (unsigned int reg, frame_state *udata, /* { dg-error "parse|syntax|expected" } */ - frame_state *target_udata) + frame_state *target_udata) /* { dg-error "expected" } */ { word_type *preg = get_reg_addr (reg, udata, 0); /* { dg-error "undeclared|function|without a cast" } */ word_type *ptreg = get_reg_addr (reg, target_udata, 0); /* { dg-error "undeclared|without a cast" } */ diff --git a/gcc/testsuite/gcc.dg/sibcall-3.c b/gcc/testsuite/gcc.dg/sibcall-3.c index d4b1b6f9b63..490e193541f 100644 --- a/gcc/testsuite/gcc.dg/sibcall-3.c +++ b/gcc/testsuite/gcc.dg/sibcall-3.c @@ -5,7 +5,7 @@ Copyright (C) 2002 Free Software Foundation Inc. Contributed by Hans-Peter Nilsson <hp@bitrange.com> */ -/* { dg-do run { xfail arc-*-* avr-*-* c4x-*-* cris-*-* h8300-*-* ip2k-*-* m32r-*-* m68hc1?-*-* m681?-*-* m680*-*-* m68k-*-* mcore-*-* mn10300-*-* ns32k-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa-*-* } } */ +/* { dg-do run { xfail arc-*-* avr-*-* c4x-*-* cris-*-* h8300-*-* hppa*64*-*-* ip2k-*-* m32r-*-* m68hc1?-*-* m681?-*-* m680*-*-* m68k-*-* mcore-*-* mn10300-*-* ns32k-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa-*-* } } */ /* { dg-options "-O2 -foptimize-sibling-calls" } */ /* The option -foptimize-sibling-calls is the default, but serves as diff --git a/gcc/testsuite/gcc.dg/sibcall-4.c b/gcc/testsuite/gcc.dg/sibcall-4.c index b092440e1ad..7237310b3a0 100644 --- a/gcc/testsuite/gcc.dg/sibcall-4.c +++ b/gcc/testsuite/gcc.dg/sibcall-4.c @@ -5,7 +5,7 @@ Copyright (C) 2002 Free Software Foundation Inc. Contributed by Hans-Peter Nilsson <hp@bitrange.com> */ -/* { dg-do run { xfail arc-*-* avr-*-* c4x-*-* cris-*-* h8300-*-* ip2k-*-* m32r-*-* m68hc1?-*-* m681?-*-* m680*-*-* m68k-*-* mcore-*-* mn10300-*-* ns32k-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa-*-* } } */ +/* { dg-do run { xfail arc-*-* avr-*-* c4x-*-* cris-*-* h8300-*-* hppa*64*-*-* ip2k-*-* m32r-*-* m68hc1?-*-* m681?-*-* m680*-*-* m68k-*-* mcore-*-* mn10300-*-* ns32k-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa-*-* } } */ /* { dg-options "-O2 -foptimize-sibling-calls" } */ /* The option -foptimize-sibling-calls is the default, but serves as diff --git a/gcc/testsuite/gcc.dg/torture/builtin-power-1.c b/gcc/testsuite/gcc.dg/torture/builtin-power-1.c index 45566118a81..7cdc00c23fb 100644 --- a/gcc/testsuite/gcc.dg/torture/builtin-power-1.c +++ b/gcc/testsuite/gcc.dg/torture/builtin-power-1.c @@ -63,7 +63,7 @@ void test(double d1, double d2, double d3, || FN##l(powl(ld1,ld2)) != powl(ld1,ld2/N)) \ link_failure_##FN##_pow() - ROOT_POW(sqrt,2); + /*ROOT_POW(sqrt,2); Invalid. */ /*ROOT_POW(cbrt,3); Intentionally not implemented. */ /* Test pow(pow(x,y),z) -> pow(x,y*z). */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c b/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c index 5f99be2874e..4b09b536d13 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O1 -fdump-tree-ssa-vops" } */ +/* { dg-options "-O1 -fdump-tree-alias1-vops" } */ extern void abort (void); int a; @@ -17,5 +17,4 @@ void bar (void) malloc functions may clobber global memory. Only the function result does not alias any other pointer. Hence, we must have a VDEF for a before and after the call to foo(). */ -/* { dg-final { scan-tree-dump-times "V_MAY_DEF" 1 "ssa"} } */ - +/* { dg-final { scan-tree-dump-times "V_MAY_DEF" 1 "alias1"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20040703-1.c b/gcc/testsuite/gcc.dg/tree-ssa/20040703-1.c index 8f6ae167d3d..25e470a59b6 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/20040703-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/20040703-1.c @@ -9,4 +9,4 @@ float foo(float x) } /* We should *not* fold the arithmetic. */ -/* { dg-final { scan-tree-dump-times "0.0" 0 "dom2"} } */ +/* { dg-final { scan-tree-dump-times "0\\.0" 0 "dom2"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c b/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c index ef8f9607056..bc4039f878f 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c @@ -13,5 +13,5 @@ void f(char *a) 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"} } */ +/* 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/uninit-4.c b/gcc/testsuite/gcc.dg/uninit-4.c index c51d00802b7..3a8d917df28 100644 --- a/gcc/testsuite/gcc.dg/uninit-4.c +++ b/gcc/testsuite/gcc.dg/uninit-4.c @@ -23,7 +23,7 @@ extern struct operation cpp_lex (void); void cpp_parse_expr (void) { - int rprio; /* { dg-bogus "rprio" "uninitialized variable warning" } */ + int rprio; /* { dg-bogus "rprio" "uninitialized variable warning PR19833" { xfail { powerpc*-*-* && lp64 } } } */ struct operation op; for (;;) diff --git a/gcc/testsuite/gcc.dg/vect/vect.exp b/gcc/testsuite/gcc.dg/vect/vect.exp index 55525f41fab..3f52ed68e19 100644 --- a/gcc/testsuite/gcc.dg/vect/vect.exp +++ b/gcc/testsuite/gcc.dg/vect/vect.exp @@ -23,7 +23,8 @@ load_lib gcc-dg.exp set DEFAULT_VECTCFLAGS "" # These flags are used for all targets. -lappend DEFAULT_VECTCFLAGS "-O2" "-ftree-vectorize" "-fdump-tree-vect-stats" +lappend DEFAULT_VECTCFLAGS "-O2" "-ftree-vectorize" \ + "-ftree-vectorizer-verbose=3" "-fdump-tree-vect-stats" # If the target system supports vector instructions, the default action # for a test is 'run', otherwise it's 'compile'. Save current default. diff --git a/gcc/testsuite/gcc.misc-tests/linkage.exp b/gcc/testsuite/gcc.misc-tests/linkage.exp index 375378d0f16..ade04113c13 100644 --- a/gcc/testsuite/gcc.misc-tests/linkage.exp +++ b/gcc/testsuite/gcc.misc-tests/linkage.exp @@ -48,11 +48,14 @@ if [isnative] then { set native_cflags "-xarch=v9" } } - if [istarget "s390x-*-linux*"] { + if [istarget "s390*-*-linux*"] { set file_string [exec file "linkage-x.o"] if [ string match "*32-bit*" $file_string ] { set native_cflags "-m31" } + if [ string match "*64-bit*" $file_string ] { + set native_cflags "-m64" + } } elseif [istarget "x86_64-*-linux*"] { set file_string [exec file "linkage-x.o"] if [ string match "*32-bit*" $file_string ] { diff --git a/gcc/testsuite/gfortran.dg/do_iterator.f90 b/gcc/testsuite/gfortran.dg/do_iterator.f90 index 982568e3909..0e11aa23339 100644 --- a/gcc/testsuite/gfortran.dg/do_iterator.f90 +++ b/gcc/testsuite/gfortran.dg/do_iterator.f90 @@ -1,8 +1,12 @@ ! { dg-do compile } ! various checks which verify that we don't change do-iterators -DO I=1,5 - I=1 ! { dg-error "cannot be redefined" "changing do-iterator 1" } +DO I=1,5 ! { dg-error "cannot be redefined" "changing do-iterator 1" } + I=1 ! { dg-error "cannot be redefined" "changing do-iterator 1" } +END DO +DO I=1,5 ! { dg-error "cannot be redefined" "changing do-iterator 2" } READ(5,*) I ! { dg-error "cannot be redefined" "changing do-iterator 2" } +END DO +DO I=1,5 ! { dg-error "cannot be redefined" "changing do-iterator 3" } READ(5,*,iostat=i) j ! { dg-error "cannot be redefined" "changing do-iterator 3" } ENDDO END diff --git a/gcc/testsuite/gfortran.dg/pr17708.f90 b/gcc/testsuite/gfortran.dg/pr17708.f90 index 7485da8bb07..b696b0c2757 100644 --- a/gcc/testsuite/gfortran.dg/pr17708.f90 +++ b/gcc/testsuite/gfortran.dg/pr17708.f90 @@ -2,8 +2,8 @@ program test j = 0 do 10 i=1,3 - if(i == 2) goto 10 ! { dg-warning "" "" } + if(i == 2) goto 10 ! { dg-warning "jumps to END" } j = j+1 -10 enddo +10 enddo ! { dg-warning "jumps to END" } if (j/=2) call abort end diff --git a/gcc/testsuite/gfortran.dg/select_4.f90 b/gcc/testsuite/gfortran.dg/select_4.f90 index 8fb661f7c22..dbced6e4c66 100644 --- a/gcc/testsuite/gfortran.dg/select_4.f90 +++ b/gcc/testsuite/gfortran.dg/select_4.f90 @@ -4,15 +4,15 @@ program select_5 integer i select case(i) - case (20:30) - case (25:) ! { dg-error "overlaps with CASE" "" } + case (20:30) ! { dg-error "overlaps with CASE" } + case (25:) ! { dg-error "overlaps with CASE" } end select select case(i) - case (30) - case (25:) ! { dg-error "overlaps with CASE" "" } + case (30) ! { dg-error "overlaps with CASE" } + case (25:) ! { dg-error "overlaps with CASE" } end select select case(i) - case (20:30) - case (25) ! { dg-error "overlaps with CASE" "" } + case (20:30) ! { dg-error "overlaps with CASE" } + case (25) ! { dg-error "overlaps with CASE" } end select end program select_5 diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp index 6e09639b1cf..9f55b02cb93 100644 --- a/gcc/testsuite/lib/gcc-dg.exp +++ b/gcc/testsuite/lib/gcc-dg.exp @@ -17,6 +17,7 @@ load_lib dg.exp load_lib file-format.exp load_lib target-supports.exp +load_lib target-supports-dg.exp load_lib scanasm.exp load_lib scantree.exp load_lib prune.exp @@ -298,157 +299,6 @@ proc gcc-dg-debug-runtest { target_compile trivial opt_opts testcases } { } } -# If this target does not support weak symbols, skip this test. - -proc dg-require-weak { args } { - set weak_available [ check_weak_available ] - if { $weak_available == -1 } { - upvar name name - unresolved "$name" - } - if { $weak_available != 1 } { - upvar dg-do-what dg-do-what - set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] - } -} - -# If this target does not support the "visibility" attribute, skip this -# test. - -proc dg-require-visibility { args } { - set visibility_available [ check_visibility_available ] - if { $visibility_available == -1 } { - upvar name name - unresolved "$name" - } - if { $visibility_available != 1 } { - upvar dg-do-what dg-do-what - set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] - } -} - -# If this target does not support the "alias" attribute, skip this -# test. - -proc dg-require-alias { args } { - set alias_available [ check_alias_available ] - if { $alias_available == -1 } { - upvar name name - unresolved "$name" - } - if { $alias_available < 2 } { - upvar dg-do-what dg-do-what - set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] - } -} - -# If this target's linker does not support the --gc-sections flag, -# skip this test. - -proc dg-require-gc-sections { args } { - if { ![ check_gc_sections_available ] } { - upvar dg-do-what dg-do-what - set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] - } -} - -# If this target does not support profiling, skip this test. - -proc dg-require-profiling { args } { - if { ![ check_profiling_available ${args} ] } { - upvar dg-do-what dg-do-what - set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] - } -} - -# If this target does not support DLL attributes skip this test. - -proc dg-require-dll { args } { - global target_triplet - # As a special case, the mcore-*-elf supports these attributes. - # All Symbian OS targets also support these attributes. - if { [string match "mcore-*-elf" $target_triplet] - || [string match "*-*-symbianelf" $target_triplet]} { - return - } - # PE/COFF targets support dllimport/dllexport. - if { [gcc_target_object_format] == "pe" } { - return - } - - upvar dg-do-what dg-do-what - set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] -} - -proc dg-require-iconv { args } { - if { ![ check_iconv_available ${args} ] } { - upvar dg-do-what dg-do-what - set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] - } -} - -# If this target does not support named sections skip this test. - -proc dg-require-named-sections { args } { - if { ![ check_named_sections_available ] } { - upvar dg-do-what dg-do-what - set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] - } -} - -# If the target does not match the required effective target, skip this test. - -proc dg-require-effective-target { args } { - set args [lreplace $args 0 0] - if { ![is-effective-target [lindex $args 0]] } { - upvar dg-do-what dg-do-what - set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] - } -} - -# Skip the test (report it as UNSUPPORTED) if the target list and -# included flags are matched and the excluded flags are not matched. -# -# The first argument is the line number of the dg-skip-if directive -# within the test file. Remaining arguments are as for xfail lists: -# message { targets } { include } { exclude } -# -# This tests against multilib flags plus either the default flags for this -# group of tests or flags specified with a previous dg-options command. - -proc dg-skip-if { args } { - set args [lreplace $args 0 0] - - set selector "target [join [lindex $args 1]]" - if { [dg-process-target $selector] == "S" } { - # The target list matched; now check the flags. The DejaGnu proc - # check_conditional_xfail will look at the options in compiler_flags, - # so set that up for this test based on flags we know about. Start - # the list with a dummy tool name so the list will match "*" if - # there are no flags. - - global compiler_flags - upvar dg-extra-tool-flags extra_tool_flags - - set compiler_flags " toolname " - append compiler_flags $extra_tool_flags - set dest [target_info name] - if [board_info $dest exists multilib_flags] { - append compiler_flags "[board_info $dest multilib_flags] " - } - - # The target list might be an effective-target keyword, so replace - # the original list with "*-*-*". - if [check_conditional_xfail [lreplace $args 1 1 "*-*-*"]] { - upvar dg-do-what dg-do-what - set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] - } - - # Any value in this variable was left over from an earlier test. - set compiler_flags "" - } -} - # Prune any messages matching ARGS[1] (a regexp) from test output. proc dg-prune-output { args } { global additional_prunes @@ -461,23 +311,6 @@ proc dg-prune-output { args } { lappend additional_prunes [lindex $args 1] } -# Like check_conditional_xfail, but callable from a dg test. - -proc dg-xfail-if { args } { - # Don't change anything if we're already skipping the test. - upvar dg-do-what dg-do-what - if { [lindex ${dg-do-what} 1] == "N" } { - return - } - - set args [lreplace $args 0 0] - set selector "target [join [lindex $args 1]]" - if { [dg-process-target $selector] == "S" } { - global compiler_conditional_xfail_data - set compiler_conditional_xfail_data [lreplace $args 1 1 "*-*-*"] - } -} - # We need to make sure that additional_* are cleared out after every # test. It is not enough to clear them out *before* the next test run # because gcc-target-compile gets run directly from some .exp files @@ -515,117 +348,4 @@ if { [info procs saved-dg-test] == [list] } { } } -# Intercept the call to the DejaGnu version of dg-process-target to -# support use of an effective-target keyword in place of a list of -# target triplets to xfail or skip a test. -# -# selector is one of: -# xfail target-triplet-1 ... -# xfail effective-target-keyword -# xfail selector-expression -# target target-triplet-1 ... -# target effective-target-keyword -# target selector-expression -# -# For a target list the result is "S" if the target is selected, "N" otherwise. -# For an xfail list the result is "F" if the target is affected, "P" otherwise. -# -# A selector expression appears within curly braces and uses a single logical -# operator: !, &&, or ||. An operand is another selector expression, an -# effective-target keyword, or a list of target triplets within quotes or -# curly braces. - -if { [info procs saved-dg-process-target] == [list] } { - rename dg-process-target saved-dg-process-target - - # Evaluate an operand within a selector expression. - proc selector_opd { op } { - set selector "target" - lappend selector $op - set answer [ expr { [dg-process-target $selector] == "S" } ] - verbose "selector_opd: `$op' $answer" 2 - return $answer - } - - # Evaluate a target triplet list within a selector expression. - # Unlike other operands, this needs to be expanded from a list to - # the same string as "target". - proc selector_list { op } { - set selector "target [join $op]" - set answer [ expr { [dg-process-target $selector] == "S" } ] - verbose "selector_list: `$op' $answer" 2 - return $answer - } - - # Evaluate a selector expression. - proc selector_expression { exp } { - if { [llength $exp] == 2 } { - if [string match "!" [lindex $exp 0]] { - set op1 [lindex $exp 1] - set answer [expr { ! [selector_opd $op1] }] - } else { - # Assume it's a list of target triplets. - set answer [selector_list $exp] - } - } elseif { [llength $exp] == 3 } { - set op1 [lindex $exp 0] - set opr [lindex $exp 1] - set op2 [lindex $exp 2] - if [string match "&&" $opr] { - set answer [expr { [selector_opd $op1] && [selector_opd $op2] }] - } elseif [string match "||" $opr] { - set answer [expr { [selector_opd $op1] || [selector_opd $op2] }] - } else { - # Assume it's a list of target triplets. - set answer [selector_list $exp] - } - } else { - # Assume it's a list of target triplets. - set answer [selector_list $exp] - } - - verbose "selector_expression: `$exp' $answer" 2 - return $answer - } - - proc dg-process-target { args } { - verbose "replacement dg-process-target: `$args'" 2 - - # Extract the 'what' keyword from the argument list. - set selector [string trim [lindex $args 0]] - if [regexp "^xfail " $selector] { - set what "xfail" - } elseif [regexp "^target " $selector] { - set what "target" - } else { - error "syntax error in target selector \"$selector\"" - } - - # Extract the rest of the list, which might be a keyword. - regsub "^${what}" $selector "" rest - set rest [string trim $rest] - - if [is-effective-target-keyword $rest] { - # The selector is an effective target keyword. - if [is-effective-target $rest] { - return [expr { $what == "xfail" ? "F" : "S" }] - } else { - return [expr { $what == "xfail" ? "P" : "N" }] - } - } - - if [string match "{*}" $rest] { - if [selector_expression [lindex $rest 0]] { - return [expr { $what == "xfail" ? "F" : "S" }] - } else { - return [expr { $what == "xfail" ? "P" : "N" }] - } - } - - # The selector is not an effective-target keyword, so process - # the list of target triplets. - return [saved-dg-process-target $selector] - } -} - set additional_prunes "" diff --git a/gcc/testsuite/lib/gfortran-dg.exp b/gcc/testsuite/lib/gfortran-dg.exp index 2387403030b..247df02bd0c 100644 --- a/gcc/testsuite/lib/gfortran-dg.exp +++ b/gcc/testsuite/lib/gfortran-dg.exp @@ -1,4 +1,4 @@ -# Copyright (C) 2004 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,11 +25,47 @@ proc gfortran-dg-test { prog do_what extra_tool_flags } { set comp_output [lindex $result 0] set output_file [lindex $result 1] - # Put the error message on the same line as the line number - # FIXME: Add a colon after line number - # Remove the line of source code with the error and - # the number pointing to error - regsub -all "\n\n\[^\n\]*\n *\[0-9\]*\n" $comp_output ": " comp_output + # gfortran error messages look like this: + # In file [name]:[line] + # + # some code + # 1 + # Error: Some error at (1) and (2) + # or + # In file [name]:[line] + # + # some code + # 1 + # In file [name]:[line2] + # + # some other code + # 2 + # Error: Some error at (1) and (2) + # or + # In file [name]:[line] + # + # some code and some more code + # 1 2 + # Error: Some error at (1) and (2) + # + # We collapse these to look like: + # [name]:[line]: Error: Some error at (1) and (2) + # or + # [name]:[line]: Error: Some error at (1) and (2) + # [name]:[line2]: Error: Some error at (1) and (2) + # We proceed in two steps: first we deal with the form with two + # different locus lines, then with the form with only one locus line. + # + # Note that these regexps only make sense in the combinations used below. + # Note also that is imperative that we first deal with the form with + # two loci. + set locus_regexp " In file (\[^\n\]*)\n\n\[^\n\]*\n\[^\n\]*\n" + set diag_regexp "(\[^\n\]*)\n" + + set two_loci "$locus_regexp$locus_regexp$diag_regexp" + set single_locus "$locus_regexp$diag_regexp" + regsub -all $two_loci $comp_output "\\1: \\3\n\\2: \\3\n" comp_output + regsub -all $single_locus $comp_output "\\1: \\2\n" comp_output return [list $comp_output $output_file] } diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 4a91b943d6d..f2577c18106 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -386,6 +386,92 @@ proc check_vmx_hw_available { } { return $vmx_hw_available_saved } +# GCC 3.4.0 for powerpc64-*-linux* included an ABI fix for passing +# complex float arguments. This affects gfortran tests that call cabsf +# in libm built by an earlier compiler. Return 1 if libm uses the same +# argument passing as the compiler under test, 0 otherwise. +# +# When the target name changes, replace the cached result. + +proc check_effective_target_broken_cplxf_arg { } { + global et_broken_cplxf_arg_saved + global et_broken_cplxf_arg_target_name + global tool + + # Skip the work for targets known not to be affected. + if { ![istarget powerpc64-*-linux*] } { + return 0 + } elseif { [is-effective-target ilp32] } { + return 0 + } + + if { ![info exists et_broken_cplxf_arg_target_name] } { + set et_broken_cplxf_arg_target_name "" + } + + # If the target has changed since we set the cached value, clear it. + set current_target [current_target_name] + if { $current_target != $et_broken_cplxf_arg_target_name } { + verbose "check_effective_target_broken_cplxf_arg: `$et_broken_cplxf_arg_target_name'" 2 + set et_broken_cplxf_arg_target_name $current_target + if [info exists et_broken_cplxf_arg_saved] { + verbose "check_effective_target_broken_cplxf_arg: removing cached result" 2 + unset et_broken_cplxf_arg_saved + } + } + + if [info exists et_broken_cplxf_arg_saved] { + verbose "check_effective_target_broken_cplxf_arg: using cached result" 2 + } else { + set et_broken_cplxf_arg_saved 0 + # This is only known to affect one target. + if { ![istarget powerpc64-*-linux*] || ![is-effective-target lp64] } { + set et_broken_cplxf_arg_saved 0 + verbose "check_effective_target_broken_cplxf_arg: caching 0" 2 + return $et_broken_cplxf_arg_saved + } + + # Set up, compile, and execute a C test program that calls cabsf. + set src cabsf[pid].c + set exe cabsf[pid].x + + set f [open $src "w"] + puts $f "#include <complex.h>" + puts $f "extern void abort (void);" + puts $f "float fabsf (float);" + puts $f "float cabsf (_Complex float);" + puts $f "int main ()" + puts $f "{" + puts $f " _Complex float cf;" + puts $f " float f;" + puts $f " cf = 3 + 4.0fi;" + puts $f " f = cabsf (cf);" + puts $f " if (fabsf (f - 5.0) > 0.0001) abort ();" + puts $f " return 0;" + puts $f "}" + close $f + + set lines [${tool}_target_compile $src $exe executable "-lm"] + file delete $src + + if [string match "" $lines] { + # No error message, compilation succeeded. + set result [${tool}_load "./$exe" "" ""] + set status [lindex $result 0] + remote_file build delete $exe + + verbose "check_effective_target_broken_cplxf_arg: status is <$status>" 2 + + if { $status != "pass" } { + set et_broken_cplxf_arg_saved 1 + } + } else { + verbose "check_effective_target_broken_cplxf_arg: compilation failed" 2 + } + } + return $et_broken_cplxf_arg_saved +} + proc check_alpha_max_hw_available { } { global alpha_max_hw_available_saved global tool diff --git a/gcc/testsuite/treelang/ChangeLog b/gcc/testsuite/treelang/ChangeLog index c60765b837c..4f7fd02b5e9 100644 --- a/gcc/testsuite/treelang/ChangeLog +++ b/gcc/testsuite/treelang/ChangeLog @@ -1,3 +1,28 @@ +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 + * execute/execute.exp: New file. + * execute/funccall.tree, execute/funccall-2.tree, execute/initial.tree, + execute/main.tree, execute/static.tree: New tests. + +2005-02-24 James A. Morrison <phython@gcc.gnu.org> + + PR other/19897 + * compile/exit.tree, compile/extref.tree, compile/function-1.tree, + compile/syntax-1.tree: New tests. + 2004-10-02 James A. Morrison <phython@gcc.gnu.org> * compile/autofunc.tree: New File. 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" } } } |